【经验】通过简易IIC实现RL78系列MCU的EEPROM控制
串行EEPROM控制方法按照硬件接口的不同可以分为两种:IIC和SPI。本文介绍通过简易IIC来实现对瑞萨RL78系列MCU的EEPROM控制。
通过串行接口IIC00,使用IIC 主控设备收发信功能进行EEPROM 的控制(写入、读出)操作。考虑到此控制作为API的使用,尽量以中断进行处理。本文将就实现过程中的规格要求、操作步骤做简要介绍,最后也结合实际的操作示例给予加深说明。
一、规格
• 对EEPROM的存取是通过将存取用信息值设定到结构体,然后调用函数来处理的。
• 考虑到作为API的动作,EEPROM的控制尽量使用中断进行处理。
• 作为操作对象的EEPROM,可以从2K~512K位中选择1种。(默认选择16K位的R1EX24016A。主函数也是对应此款芯片进行的测试处理。)
• 对应于选择的EEPROM进行存取控制。
• 在EEPROM读出过程中进行了复位,EEPROM在SDA信号输出低电平的状态下重新开始时,本应用也支持这种从总线占有状态到总线释放的操作。
• 使用的简易IIC通道以通道00为标准,但也考虑到了能够方便地变更指定。
硬件配置如下:
图1:硬件配置
在硬件配置过程中有以下三点需注意:
1)上述硬件配置图是为了表示硬件连接情况的简化图。在实际电路设计时,请进行适当的引脚处理,以满足电气特性的要求(输入专用引脚请注意分别通过电阻上拉到VDD或是下拉到VSS)。
2)引脚名以EVSS开始的引脚,请连接至VSS,引脚名以EVDD开始的引脚,请连接至VDD。
3)请将VDD设置为大于在LVD上设定的复位解除电压(VLVI)。
二、操作概要
应用中,通过串行接口IIC00,使用IIC 主控设备收发信功能进行EEPROM的控制(写入、读出)操作。考虑到此控制作为API的使用,尽量以中断进行处理。
(1)对串行阵列单元0的通道0以简易IIC模式进行初始设定。
<设定条件>
设定运行时钟为CK00(24MHz)。
设定运行模式为简易IIC。
设定传送结束中断。
设定数据和时钟的相位为类型1。
设定数据长度为8位,停止位为1位,无校验位,MSB优先传送。
设定传送时钟为快速模式的387kHz。
设定SO00,CKO00为1。
设定P30/SCL00引脚为传送时钟输出用,P50/SDA00引脚为数据发送/接收用。
(2)设定定时器阵列单元的通道2为100μs 的间隔定时器,用于确认写入完成。
(3)将使用的EEPROM(16K位)的信息值复制到处理用信息值的结构体中。
(4)发行停止条件,使总线处于开放状态。
(5)准备出256字节的写入数据(递增形式)。
(6)设定存取用信息值(结构体g_PARAI)。
(7)从EEPROM的0x400 地址开始写入256 字节的数据。
(8)读出包括已写入数据前后各1 字节在内的数据。
(9)准备出相同的16个字节的数据(0xkk)。(kk=00,11,22……77)
(10)从EEPROM的0xk00地址开始写入这16个字节。
(11)使k的值从0~7改变,重复(9)~(10)的操作。
(12)读出包括(9)~(10)中已写入数据前后各8字节在内的共32字节的数据。
需注意,本参考例程是使用RL78/G13的简易IIC 通过IIC 总线控制EEPROM(R1EX24016,R1EX24032)的例子。对使用的通道或EEPROM变更时请详细评价再使用。
在使用的项目中,使用[Compile Options]的[Macro definition]功能指定使用的简易IIC的通道和产品的引脚数。Macro definition[0]选择了IIC00作为使用的简易IIC的通道。例如,当使用通道20时,把这个设置变更为[IIC20=1]。
Macro definition[1]指定使用的产品的引脚数。在确认以Macro definition[0]指定的通道在目标产品中是否存在的基础上使用。变更这些设置时,点击[Macro definition]右侧的按钮,打开Text Edit页面,在此处进行编辑。
三、IIC时序操作示例
1、IIC通信概要
图2:IIC通信
发送地址:为了指定传送对象(从属设备),此操作为IIC通信中主控设备最初进行的发送动作。发生开始条件后,以1字节的数据发送地址(7位)和传送方向(1位)。
收发数据:发送地址后,此操作为向传送对象(从属设备)发送数据,或从目标从属设备接收数据的动作。对目标从属设备的全部数据发送或接收完成后,发生停止条件,释放总线。
备注:简易IIC功能只对应单主控通信。此外,不受理从属设备发出的等待。
2、主控设备→从属设备通信1(开始条件~地址~数据)
图3:IIC通信时序图(主控设备→从属设备通信示例)
①如果IICmn的初始设定(此处预先设置了SCRmn寄存器的TxEmn=1,RxEmn=0)完成了的话,设定SOm寄存器的SOmn位为0,使SDA信号下降,以产生开始条件。
②经过开始条件的保持时间(标准模式下为4.0μs,快速模式下为0.6μs)后,设置SOm寄存器的CKOmn位为0,使SCL信号下降。
③为了进行通信,设置SOEm 寄存器的SOEmn位为1,以允许输出。
④设置SSm 寄存器的SSmn位为1,使通道n为动作允许状态。
⑤向SIOr 寄存器写入从属设备的地址后,通信启动。
⑥一旦从属设备地址发送完成,就会产生INTIICr。
⑦通过SSRmn寄存器的PEF 位对从属设备的ACK应答进行确认。如果PEF位为0,则向SIOr寄存器写入发送数据。如果PEF位为1,则中止发送。
3、从属设备→主控设备通信1(开始条件~地址~数据)
图5:IIC通信时序图(从属设备→主控设备通信示例)
①如果IICmn的初始设定(此处预先设置了SCRmn寄存器的TxEmn=1,RxEmn=0)完成了的话,设定SOm寄存器的SOmn位为0,使SDA信号下降,以产生开始条件。
②经过开始条件的保持时间(标准模式下为4.0μs,快速模式下为0.6μs)后,设置SOm 寄存器的CKOmn位为0,使SCL信号下降。
③为了进行通信,设置SOEm寄存器的SOEmn位为1,以允许输出。
④设置SSm 寄存器的SSmn位为1,使通道n为动作允许状态。
⑤向SIOr 寄存器写入从属设备的地址后,通信启动。
⑥一旦从属设备地址的发送完成,就会产生INTIICr。通过SSRmn寄存器的PEF 位对从属设备的ACK应答进行确认。
⑦为了切换通信方向,设置IICmn的动作为禁止状态。
⑧变更SCRmn寄存器的TxEmn=0,RxEmn=1。
⑨设置IICmn为动作允许状态。
⑩通过向SIOr寄存器虚写数据(0FFH),启动接收。
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 2
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
【经验】瑞萨CS+软件工具开发RL78 MCU入门教程
使用瑞萨单片机RL78编程时,编译器CS+自带启动文件,启动文件中定义了堆栈首地址,errno,调用硬件初始化,清除RAM等。
设计经验 发布时间 : 2017-08-20
RL78自编程升级程序操作指南
RL78/G13 系列微控制器(MCU)可以对它们内部的flash 进行编程。本文提供了以R5F100LE微控制器为参考的flash 自编程应用的概述。
设计经验 发布时间 : 2016-07-18
【经验】如何使用RL78/G14定时器RD的PWM功能——操作步骤篇
瑞萨RL78/G14系列MCU整合了高级定时器模块“Timer RD”、“Timer RG”及“Timer RJ”,具有脉冲波调制(PWM)功能,能够输出(6个)具有用户指定振幅的三相波形。
设计经验 发布时间 : 2016-07-09
微控制器EFM32LG系列内部带有模拟比较器(ACMP)功能,当比较器两个输入端输入的电压值相同时,其输出是高电平还是低电平?
当EFM32LG系列微控制器的模拟比较器的两个输入端输入的电压值相同时,其输出的电平是模拟比较器上一次比较输出的状态。
技术问答 发布时间 : 2017-05-05
微控制器EFM32LG系列内部带有模拟比较器(ACMP)功能,当模拟比较器正常工作时,可以切换输入通道吗?
微控制器EFM32LG系列的模拟比较器在正常工作时可以切换输入通道,其同相输入通道和反相输入通道都可以任意在可选项中切换通道。
技术问答 发布时间 : 2017-05-05
Silicon Labs EFM32系列32位低功耗MCU Cortex系列微控制器采用的软件接口标准CMSIS有哪些特性?
嵌入式系统越来越复杂,开发和软件测试的工作量也显著增加,为了减少开发时间并且降低产品中存在的风险,软件重用已经越来越普遍。为了各种软件产品间的配合,ARM同各大 微控制器供应商、工具供应商和软件解决方案提供商一起开发了CMSIS,一个涵盖了大多数Cortex-M处理器和Cortex-M微控制器产品的软件框架。 CMSIS的设计目标和特性包括以下几点: 1、提高软件的可用性。 2、提高软件的兼容性。 3、独立的工具链特性。 4、开放性。 5、易用性。
技术问答 发布时间 : 2017-10-10
EFM32系列微控制器GPIO的最大翻转速度为多少?
EFM32系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHZ时,GPIO最大翻转速度大约为5.3MHz。
技术问答 发布时间 : 2017-05-05
EFM32系列微控制器能否使用1.8V电源供电?
EFM32系列微控制器不能直接使用1.8V电源供电。EFM32系列微控制器的最大上电复位阈值大约为1.98V,即上电过程中电压小于1.98V时,MCU一直处于复位状态。但当上电复位完成以后,供电电压高于1.85V时可以正常运行,当供电电压低于1.85V时将产生掉电复位。
技术问答 发布时间 : 2017-05-05
Silicon Labs 32位低功耗MCU EFM32G232F128系列微控制器GPIO的最大翻转速度为多少?
EFM32G232F128系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz。
技术问答 发布时间 : 2017-10-10
对于Silicon Labs C8051F 微控制器的定时器 Timer 0 或 Timer 1, 可以使用的外部输入时钟的最大频率是多少?
定时器外部输入时钟源频率的限制实际上取决于系统时钟 SYSCLK的频率。一个脉冲信号必须稳定维持至少2个系统时钟周期才能被识别,无论是高电平还是低电平。这意味着在理想条件下(准确的50%占空比),外部输入时钟频率的最快为系统时钟频率的1/4。然而实际上并没有具有占空比精确为50%的信号。假如信号的占空比接近50%,则外部输入时钟的频率绝对最大值应该是系统时钟频率的1/5。
技术问答 发布时间 : 2017-10-10
对于Silicon Labs 8051 微控制器的定时器 Timer 0 或 Timer 1, 可以使用的外部输入时钟的最大频率是多少?
定时器外部输入时钟源的频率的限制实际上取决于系统时钟 SYSCLK的频率。一个脉冲信号必须稳定维持至少2个系统时钟周期才能被识别,无论是高电平还是低电平。这意味 着在理想条件下(准确的50%占空比),外部输入时钟频率的最快为系统时钟频率的1/4。然而实际上并没有具有占空比精确为50%的信号。假如信号的占空比接近50%,则 外部输入时钟的频率绝对最大值应该是系统时钟频率的1/5。
技术问答 发布时间 : 2017-10-10
Silicon Labs(芯科科技) AN219 数字信号处理器微控制器的应用 应用笔记
型号- C8051F360-GQ,C8051F127-GQR,C8051F127-GQ,C8051F368-GQ,C8051F123-GQ,C8051F365-GMR,C8051F364-GQ,C8051F360-C-GQR,C8051F363,C8051F121,C8051F362,C8051F120,C8051F365,C8051F123,C8051F364,C8051F122,C8051F367,C8051F125,C8051F366,C8051F124,C8051F369,C8051F127,C8051F368,C8051F126,C8051F120-GQ,C8051F124-GQ,C8051F125-GQR,C8051F363-GQ,C8051F367-GM,C8051F361-C-GQR,C8051F126-GQR,C8051F125-GQ,C8051F121-GQR,C8051F362-GM,C8051F121-GQ,C8051F366-GQ,C8051F12X,C8051F365-C-GMR,C8051F120-GQR,C8051F36X,C8051F124-GQR,C8051F361-GQ,C8051F361,C8051F360,C8051F361-GQR,C8051F126-GQ,C8051F367-GMR,C8051F365-GM,C8051F122-GQ,C8051F123-GQR,C8051F369-GM,C8051F368-GQR,C8051F360-GQR
对于Silicon Labs 8051微控制器的定时器Timer 0 或 Timer 1,可以使用的外部输入时钟的最大频率是多少?
定时器外部输入时钟源的频率的限制实际上取决于系统时钟SYSCLK的频率。一个脉冲信号必须稳定维持至少2个系统时钟周期才能被识别,无论是高电平还是低电平。这意味着在理想条件下(准确的50%占空比),外部输入时钟频率的最快为系统时钟频率的1/4。然而实际上并没有具有占空比精确为50%的信号。假如信号的占空比接近50%,则外部输入时钟的频率绝对最大值应该是系统时钟频率的1/5。
技术问答 发布时间 : 2017-09-12
电子商城
现货市场
服务
支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。
提交需求>
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论