新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 带RTC的I2C总线铁电存储器FM31256的设计

带RTC的I2C总线铁电存储器FM31256的设计

作者:时间:2018-08-28来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201808/387851.htm

图2 I2C总线通信基本格式

严格按I2C总线的时序和数据格式操作,其访问操作过程可描述为如下步骤: 启动—从机地址—应答—目标地址—应答—(启动—从机地址—应答)—数据(单或多字节)—应答—停止(注: 从机地址中包含了读写命令;括号中的步骤为当前地址读和连续地址读命令所特有的)。这里对应答信号作些说明。应答脉冲发生在第8个数据位传送之后。在这个状态下,发送方须释放SDA让接收方驱动;当接收方发出低电平时,表示正常应答,当发出高电平时,表示无应答。不应答有两种情况: 一是数据传送出错,无应答使发送方终止当前操作,以便重新寻址;二是接收方有意不作应答,以结束当前操作。

在对SFR操作时,首先发送的命令字节为“1 1 0 1 X A1 A0 R/W”,目标地址为单字节范围(00H~18H)。的32 KB存储单元地址为0000H~7FFFH,对其进行操作时,首先发送的命令字节为“1 0 1 0 X A1 A0 R/W”,目标地址长度为双字节,即RAM区的寻址能力为0~65 535。FM31系列存储器具有内部地址锁存和自动累加功能,当对连续地址区进行读/写操作时,只须发送存储区首地址。

3 在电磁铸轧电源控制中的应用

将FM31256应用在电磁铸轧电源控制装置当中,实现主控系统的看门狗复位、给定参数、实时时钟及故障记录保存的功能。

作为一种解决微处理器因干扰而死机问题的有效方法,看门狗的作用是必不可少的。针对控制对象,需要对A、B、C三相控制装置进行调节,包括设定正弦波的频率和幅值、反馈系数、PID参数、过流延时、开放延时和关断延时等;将这些给定的参数及时写入铁电存储器FM31256的存储单元中,使之掉电后仍能保存。当系统发生故障时,例如控制装置中晶闸管周围温度超过额定温度,装置就会发出报警信号,并将发生故障的准确时间、实际温度值记录在FM31256的存储单元中,以便系统查询;同时,FM31256的事件计数器加1计数。同样,利用串行标识区可锁定的功能,可将电磁铸轧电源控制装置的序列号写入其中,非常安全可靠。

3.1 硬件原理

电磁铸轧电源控制装置应用FM31256的硬件接口电路如图3所示。从图3中可以看出,系统以超低功耗MSP430系列芯片MSP430F149作为控制器;FM31256作为参数存储单元,与处理器之间采用I2C总线进行通信。由于MSP430F149没有I2C总线接口,所以任取2个I/O口模拟。实时时钟在VDD掉电以后自动切换到后备电源VBAK。

图3 FM31256与MSP430F149的硬件接口电路

32.768 kHz晶振等效于6 pF电容。若将SFR的01H单元对应的OSCEN位设为0,同时置00H单元的CAL位为1,使CAL引脚输出512 Hz的脉冲信号,则可检测晶振工作是否正常,因为512 Hz是晶振频率的64分频。制PCB板时须注意: X1和X2晶振引脚均为高阻引脚,两引脚之间的距离须小于5 mm;即使信号位于板内层,也不允许信号线靠近X1和X2引脚。在晶振引脚周围使用接地保护环,内部或板反面使用接地保护敷铜。

3.2 存储区访问程序设计

对FM31256存储器访问操作过程中,微处理器处于主机地位,器件始终处于从机地位。根据上述对FM31256的分析,可以把所有的通信过程归纳为3种类型: ① 单脉冲,如Start、Stop、Ack、Nack;② 字节发送,如从机地址、目标地址和数据传送;③ 字节接收,如读操作中的数据传送。因此只要把这些操作以子程序的形式编写好,所有的通信操作就可通过调用这些子程序来完成。这里以MSP430F149微处理器的嵌入式C语言编写。设微处理器端口P6.6为数据线(SDA);P5.4为时钟线(SCL)。

限于篇幅,本文不作详细介绍,只给出模拟I2C总线及字节写入、读出的部分C语言程序:

#defineRTC_SDABIT6

#defineRTC_SCLBIT4

void FM31256_Start(void) {/*FM31256启动程序*/

P6OUT |=RTC_SDA;// SDA=1

P5OUT |=RTC_SCL;// SCL=1

delay(IIC_DELAY);

P6OUT =~ RTC_SDA;// SDA=0

delay(IIC_DELAY);

P5OUT =~ RTC_SCL;// SCL=0}

void FM31256_Stop( void ) {/*FM31256停止程序*/

P6OUT =~ RTC_SDA;// SDA=0

delay(IIC_DELAY);

P5OUT |=RTC_SCL;// SCL=1

delay(IIC_DELAY);

P6OUT |=RTC_SDA;// SDA=1

delay(IIC_DELAY);}

void FM31256_Send_Ack( void ) {/*FM31256应答程序*/

P5OUT =~ RTC_SCL;// SCL=0

P6OUT =~ RTC_SDA;// SDA=0



关键词: FM31256 MSP430单片机

评论


相关推荐

技术专区

关闭