您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

I2C串行芯片X1288及其在电子电能表中的应用

时间:2007-1-20栏目:电子通信论文

1、AL0:报警选择位。X1288中有两个报警寄存器,若其中的某一报警时间与实时时钟相同时,相应的AL1或AL0位将变为“1”;当读取SR的值后,该位又变为“0”。

RWEL:时钟/控制寄存器(CCR)写入控制位。对CCR进行写操作时,必须先使该位为“1”。

WEL:CCR和E2PROM的写入控制位。在对CCR和E2PROM进行写操作时,必须先使该位为“1”。同理,如果要写入时钟和控制寄存器,也必须先写“02h”至SR(使RWEL为“1”),再写“06h” (使WEL为“1”)。

RTCF:掉电标志位。当全部电源(包括VCC和VBACK)失效后,该位变为 “1”;而在系统再次上电后,如果要对RTC进行第一次有效写操作,则应首先将使该位为“0”。

需要说明的是,虽然SR中的第3、4位没有使用,但这些位必须置“0”。

图4

    3.2 实时时钟(RTC)

实时时钟寄存器的地址0030h~0037h分别对应秒、分、时、日、月、年、星期和百分秒,并采用BCD码表示。通过启动一条读命令并确定相应的地址,即可读取时间信息。因为时钟是连续运行的,而每次读操作都需要一定的时间,这就有可能在读操作过程中使时间发生改变。本器件是由读命令将时间锁存在分立的锁存器中,因而可以避免读操作过程中时间发生变化。当一次读出并不是由读操作引起时,系统将发出报警。

可以通过向RTC寄存器中写入数据来设定时间和日期。通过一次不完全连续的写操作可避免改变当前时间,在RTC数据输入字节之前的ACK位时,时钟的下降沿会将当前的时间值装载到分立的缓冲器中,以使时钟继续运行。而此时新的串行输入数据将取代缓冲器的值。当有效的写操作结束后,系统产生停止位时,这个新值才被装载到RTC寄存器中。向RTC写入单个字节并不对其它字节的数据产生影响。

当X1288在VCC和VBACK都失效以后,即使再次上电后,其时钟也将停止增加,直到在时钟寄存器中进行至少一个字节的写操作以后。

读出和设定时钟应注意:百分秒寄存器(SSEC)是只读的;小时寄存器(HR)中的MIL位是12/24时制选择位“1”为24时制,“0”为12时制,H21位是AM/PM标志位“1”代表PM,“0”代表AM;星期中的七天只用三位(DY0~2)来计数,其值在0~6之间循环,数字所代表星期中的哪一天可由设计者决定,缺省值为0。

3.3 控制寄存器

表2所示是4个控制寄存器的命令字列表,其中的DTR是数字化微调寄存器,它的作用是调整每秒的计数值和ppm误差,以便在长时间内获得更好的计时精度。DTR2是符号位,“1”为正补偿,“0”为负补偿;DTR1、DTR0可分别提供10ppm、20ppm的补偿。由DTR0~DTR2三位可表示-30ppm~+30ppm的补偿范围。

表2 控制寄存器

地址 名称 7 6 5 4 3 2 1 0 缺省值 0013h DTR 0 0 0 0 0 DTR2 DTR1 DTR0 00h 0012h ATR 0 0 ATR5 ATR4 ATR3 ATR2 ATR1 ATR0 00h 0011h INT IM AL1E AL0E FO1 FO0 只读 只读 只读 00h 0010h BL BP2 BP1 BP0 WD1 WD0 只读 只读 只读 00h

ATR寄存器用来微调X1和X2之间的片内负载电容,其范围从+116ppm~-37ppm,具体电容值的大小可由下式计算:

CART=[(ATR的十进制值)×0.25]+11.0pF

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页