时钟芯片SD2200ELP与AVR单片机的接口设计
发布时间:2008/9/4 0:00:00 访问次数:484
摘要 sd2200elp是深圳兴威帆电子技术有限公司生产的高精度实时时钟芯片。本文给出了时钟芯片sd2200elp与atmegal6的接口设计,并实现了avr的twi总线对sd2200elp进行时钟和e2prom的读/写操作的c语言程序,具有很强的实用性和通用性。
在提升机制动闸瓦间隙实时在线检测的设计中,需要保存故障时间和故障数据。大部分仪器仪表中都要使用时钟芯片,但是很多的实时时钟芯片(如pcf8563)没有掉电保护,须外接晶振和电池,比较麻烦。而深圳兴威帆电子技术有限公司生产的sd2200elp是内置32 kbe2prom的串行实时时钟芯片,不需要外接器件支持,连线简单、可靠,提供的数据精确,断电后也能继续工作。微控制器采用atmel公司的atmegal6单片机,利用at-megai6的硬件twi接口可直接对sd2200elp进行操作,无需软件模拟i2c方式,使用方便、可靠。
1 sd2200l简介
sd2200l系列(包括sd2200b/c/d/e/flp)是一种具有内置晶振、支持i2c总线的高精度实时时钟芯片。sd2200elp是sd2200l系列中的一种,该芯片可保证时钟精度为±5ppm(在-10~50℃下),即年误差小于2.5min。芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的偏差;内置32kb串行非易失性e2prom;可在3.0~5.5v下工作,擦写次数可达100万次,数据保存时间为十年;内置一次性电池,可保证在外部掉电情况下时钟使用寿命超过五年。sd2200l系列内部结构如图l所示。
2 硬件设计
sd2200elp既有实时芯片的功能,又可以存储数据到内置e2prrom中。因为sd2200elp是i2c总线接口方式,所以其硬件接口设计非常简单,可以大大简化单片机外围器件。avr的twi总线实质上就是i2c总线,只是名称不一样。图2中intl脚为sd2200elp的定时中断输出,与atmegal6的外部中断intl相连接(intl配置为下降滑触发方式),sda、scl为两线式串行引脚,分别与atmegal6的twl(pcl、pco)相连。
3 软件设计
如果外围器件是i2c接口类型,而单片机没有i2c接口,那么必须用软件模拟的方式来实现。avr单片机功能很强,它带有twi接口,可以直接利用atmegal6的硬件i2c接口来对外围i2c器件进行操作,非常方便、有效。这样可以节省模拟i2c程序,为用户编程省去很多麻烦。下面是使用atmegal6对内置e2prom的实时时钟芯片sd2200elp读/写的程序设计,均是在iccavr开发环境下编写。
3.1 atrnegal6的twi总线接口
两线接口twi很适合于典型的处理器应用。twi协议允许系统设计者只用两根双向传输线就可以将128个不同的设备互连到一起。这两根线是时钟线scl和数据线sda。外部硬件只需2个上拉电阻,每根线上1个。所有连接到总线上的设备都有自己的地址。twi协议解决了总线仲裁的问题,twi总线的连接如图3所示。
twi总线可以工作于4种不同的模式:主机发送器(mt)、主机接收器(mr)、从机发送器(st)以及从机接收器(sr)。在后面将介绍的连续读e2prom操作中就使用了mt和mr模式。
3.2 实时时钟读取
实时时钟操作指令格式如下:
其中高4位称为“器件代码”,它代表实时时钟的器件地址,固定为“0110”。c2、c1、c0构成对实时时钟操作的8条指令。
实时数据寄存器是一个56位的存储器,它以bcd码方式存储,包括年、月、日、星期、时、分、秒的数据。实时数据的读/写操作都通过发送或接收年(实时数据读写方式1)数据的第一位“lsb”开始执行的。
3.3 e2prom的读/写
sd2200elp的e2prom操作指令与实时时钟的器件代码是不一样的。当cpu要对sd12200l中的e2prom进行操作时,首先发出开始信号给sd2200l,然后cpu发出包括4位器件代码10lo、3位页选码000、1位读/写指令的8位数据(即“从器件地址”)。一位读/写指令表明进行何种操作(读操作
摘要 sd2200elp是深圳兴威帆电子技术有限公司生产的高精度实时时钟芯片。本文给出了时钟芯片sd2200elp与atmegal6的接口设计,并实现了avr的twi总线对sd2200elp进行时钟和e2prom的读/写操作的c语言程序,具有很强的实用性和通用性。
在提升机制动闸瓦间隙实时在线检测的设计中,需要保存故障时间和故障数据。大部分仪器仪表中都要使用时钟芯片,但是很多的实时时钟芯片(如pcf8563)没有掉电保护,须外接晶振和电池,比较麻烦。而深圳兴威帆电子技术有限公司生产的sd2200elp是内置32 kbe2prom的串行实时时钟芯片,不需要外接器件支持,连线简单、可靠,提供的数据精确,断电后也能继续工作。微控制器采用atmel公司的atmegal6单片机,利用at-megai6的硬件twi接口可直接对sd2200elp进行操作,无需软件模拟i2c方式,使用方便、可靠。
1 sd2200l简介
sd2200l系列(包括sd2200b/c/d/e/flp)是一种具有内置晶振、支持i2c总线的高精度实时时钟芯片。sd2200elp是sd2200l系列中的一种,该芯片可保证时钟精度为±5ppm(在-10~50℃下),即年误差小于2.5min。芯片内置时钟精度调整功能,可以在很宽的范围内校正时钟的偏差;内置32kb串行非易失性e2prom;可在3.0~5.5v下工作,擦写次数可达100万次,数据保存时间为十年;内置一次性电池,可保证在外部掉电情况下时钟使用寿命超过五年。sd2200l系列内部结构如图l所示。
2 硬件设计
sd2200elp既有实时芯片的功能,又可以存储数据到内置e2prrom中。因为sd2200elp是i2c总线接口方式,所以其硬件接口设计非常简单,可以大大简化单片机外围器件。avr的twi总线实质上就是i2c总线,只是名称不一样。图2中intl脚为sd2200elp的定时中断输出,与atmegal6的外部中断intl相连接(intl配置为下降滑触发方式),sda、scl为两线式串行引脚,分别与atmegal6的twl(pcl、pco)相连。
3 软件设计
如果外围器件是i2c接口类型,而单片机没有i2c接口,那么必须用软件模拟的方式来实现。avr单片机功能很强,它带有twi接口,可以直接利用atmegal6的硬件i2c接口来对外围i2c器件进行操作,非常方便、有效。这样可以节省模拟i2c程序,为用户编程省去很多麻烦。下面是使用atmegal6对内置e2prom的实时时钟芯片sd2200elp读/写的程序设计,均是在iccavr开发环境下编写。
3.1 atrnegal6的twi总线接口
两线接口twi很适合于典型的处理器应用。twi协议允许系统设计者只用两根双向传输线就可以将128个不同的设备互连到一起。这两根线是时钟线scl和数据线sda。外部硬件只需2个上拉电阻,每根线上1个。所有连接到总线上的设备都有自己的地址。twi协议解决了总线仲裁的问题,twi总线的连接如图3所示。
twi总线可以工作于4种不同的模式:主机发送器(mt)、主机接收器(mr)、从机发送器(st)以及从机接收器(sr)。在后面将介绍的连续读e2prom操作中就使用了mt和mr模式。
3.2 实时时钟读取
实时时钟操作指令格式如下:
其中高4位称为“器件代码”,它代表实时时钟的器件地址,固定为“0110”。c2、c1、c0构成对实时时钟操作的8条指令。
实时数据寄存器是一个56位的存储器,它以bcd码方式存储,包括年、月、日、星期、时、分、秒的数据。实时数据的读/写操作都通过发送或接收年(实时数据读写方式1)数据的第一位“lsb”开始执行的。
3.3 e2prom的读/写
sd2200elp的e2prom操作指令与实时时钟的器件代码是不一样的。当cpu要对sd12200l中的e2prom进行操作时,首先发出开始信号给sd2200l,然后cpu发出包括4位器件代码10lo、3位页选码000、1位读/写指令的8位数据(即“从器件地址”)。一位读/写指令表明进行何种操作(读操作
上一篇:串口光纤通信的组网方式