SD2068IIC串行接口的实时时钟ICV3.21IIC串行接口的实时时钟IC-SD2068Ver3.21.概述SD2068是一种具有标准IIC接口的实时时钟芯片,CPU可使用该接口通过5位地址寻址来读写片内32字节寄存器的数据(包括时间寄存器、报警寄存器、控制寄存器、通用SRAM寄存器)。SD2068内置单路定时/报警中断输出,报警中断时间最长可设至100年。SD2068内置时钟精度数字调整功能,可以在很宽的范围内校正时钟的偏差(-189ppm~+189ppm,分辨力为3.05ppm),并通过外置的温度传感器可设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能。SD2068具有一个后备电池输入脚VBAT,当芯片检测到主电源VDD掉到后备电池电压以下,芯片会自动转为由接在VBAT的后备电池供电。2.特性低功耗:1.0μA典型值(VBAT=3.0V,Ta=25℃)。工作电压:1.8~5.5V,工作温度:-40℃~+85℃。标准IIC总线接口方式,最高速度400KHZ(4.5V~5.5V)。年、月、日、星期、时、分、秒的BCD码输入/输出,并可通过独立的地址访问各时间寄存器。闰年自动调整功能(从2000年~2099年)。可选择12/24小时制式.内置年、月、日、星期、时、分、秒共7字节的报警数据寄存器及1字节的报警允许寄存器。内置12字节通用SRAM寄存器可用于存储用户的一般数据。三种中断均可选择从INT脚输出,并具有两个中断标志位.可设定并自动重置的单路报警中断功能(时间范围最长设至100年),年、月、日、星期、时、分、秒报警共有96种组合方式,并有单事件报警和周期性报警两种中断输出模式.周期性频率中断输出:从32768Hz~1/16Hz……1秒共十五种方波脉冲.自动重置的8位倒计时定时器,可选的4种时钟源(4096HZ、64HZ、1HZ、1/60HZ)。内置时钟精度数字调整功能,可通过程序来调整走时的快慢。用户采用外置的温度传感器,设定适应温度变化的调整值,可实现在宽温范围内高精度的计时功能。具有一个后备电池输入脚VBAT,芯片依据不同的电压自动从VDD切换到VBAT或从VBAT切换到VDD。在VBAT模式下,芯片具有中断输出允许或禁止的功能,可满足在备用电池供电时输出中断的需要。内置IIC总线0.5秒自动复位功能(从Start命令开始计时),保证时钟数据的有效性及可靠性,避免IIC总线挂死问题。内置三个时钟数据写保护位,避免对数据的误写操作,可更好地保护时钟数据。内置VBAT模式IIC总线通信禁止功能,从而避免在电池供电时CPU对时钟操作所消耗的电池电量,也可避免在主电源上、下电的过程中因CPU的I/O端口所输出的不受控的杂波信号对时钟芯片的误写操作,进一步提高时钟芯片的可靠性。内置上电复位电路及指示位。内置电源稳压,内部计时电压可低至1.5V。芯片管脚抗静电(ESD)4KV。芯片在兴威帆的评估板上可通过4KV的群脉冲(EFT)干扰。CMOS工艺封装形式:SOP8/TSSOP8。SD2068IIC串行接口的实时时钟ICV3.223.原理框图4.管脚定义封装形式:SOP8/TSSOP8表1SD2068管脚功能表脚号名称功能特征1OSCIN晶振的输入0~1.5V输入2OSCOUT晶振的输出0~1.5V输出3VBAT备用电源(电池)输入脚.当VDD电源失效时VBAT为IC提供电源.(VBAT与电池之间的接法请参见本资料中的“应用参考电路”章节)1.5V~5.5V,不用时应将其接GND.4GND负电源(GND)5SDA串行数据输入/输出脚,此管脚通常用一电阻上拉至VDD,并与其它漏极开路或集电器开路输出的器件通过线与方式连接.N沟道开路输出,CMOS输入;当VBAT引脚的后备电源被激活时,该引脚被禁止.6SCL串行时钟输入脚,由于在SCL上升/下降沿处理信号,要特别注意SCL信号的上升/下降升降时间,应严格遵守说明书。CMOS输入.当VBAT引脚的后备电源被激活时,该引脚被禁止.7INT报警中断输出脚,根据控制寄存器来设置其工作的模式,它可通过重写控制寄存器来禁止.N-沟道开路输出8VDD正电源1.8V~5.5VSD2068IIC串行接口的实时时钟ICV3.235.寄存器5.1寄存器列表地址寄存器段寄存器名称BIT数值范围(十进制)缺省值(二进制)D7D6D5D4D3D2D1D000H实时时钟寄存器秒0S40S20S10S8S4S2S10-59XXXX-XXXX01H分钟0MN40MN20MN10MN8MN4MN2MN10-59XXXX-XXXX02H小时12_/240H20P/A_H10H8H4H2H10-23XXXX-XXXX03H星期00000W4W2W10-6XXXX-XXXX04H日00D20D10D8D4D2D11-31XXXX-XXXX05H月000MO10MO8MO4MO2MO11-12XXXX-XXXX06H年Y80Y40Y20Y10Y8Y4Y2Y10-99XXXX-XXXX07H时间报警寄存器秒报警0AS40AS20AS10AS8AS4AS2AS10-590000-000008H分钟报警0AMN40AMN20AMN10AMN8AMN4AMN2AMN10-590000-000009H小时报警00AH20AP/A_AH10AH8AH4AH2AH10-230000-00000AH星期报警0AW6AW5AW4AW3AW2AW1AW0N/A0000-00000BH日报警00AD20AD10AD8AD4AD2AD11-310000-00000CH月报警000AMO10AMO8AMO4AMO2AMO11-120000-00000DH年报警AY7AY6AY5AY4AY3AY2AY1AY00-990000-00000EH报警允许0EAYEAMOEADEAWEAHEAMNEASN/A0000-00000FH控制寄存器CTR1WRTC30INTAFINTDF0WRTC20RTCFN/A0000-000010HCTR2WRTC1IMINTS1INTS0FOBATINTDEINTAEINTFEN/A0000-000011HCTR3ARST0TDS1TDS0FS3FS2FS1FS0N/A0000-000012H时间调整0F6F5F4F3F2F1F0N/A0000-000013H倒计时定时器TD7TD6TD5TD4TD3TD2TD1TD00-2550000-000014~1FH通用RAM(12Bytes)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0N/AXXXX-XXXX5.2实时时钟数据寄存器(00H~06H)实时时钟数据寄存器是7字节的存储器,它以BCD码方式存贮包括年、月、日、星期、时、分、秒的数据。年数据[06H地址](00~99):设置千年(20XX)的后两位数字(00~99),通过自动日历功能计至2099年。(注意:2000年为闰年)月数据[05H地址(01~12):每月包含的天数通过自动日历功能来更改。1,3,5,7,8,10,12:1~314,6,9,11:1~302(闰年):1~292(普通):1~28日数据[04H地址](01~31)星期数据[03H地址](00~06):七进制计数器,00对应星期天,01对应星期一,依次类推.小时数据[02H地址](00~23或00~11):小时的最高位12_/24是12或24小时制选择位。当12_/24=1时,24小时制;当12_/24=0时,12小时制。SD2068IIC串行接口的实时时钟ICV3.2412小时制时,H20为AM/PM指示位,H20=0为AM,H20=1为PM,见下表:(位H20H10H8H4H2H1)注意:当读取小时数据时,要屏蔽掉小时的最高位12_/24,否则在24小时制时会因为12_/24=1而显示不对.分数据[01H地址](00~59)秒数据[00H地址](00~59)例如:设置时间为2006年12月20日星期三18点19分20秒(24小时制),则寄存器00~07H的赋值应分别为20h、19h、98h、03h、20h、12h、06h。要特别注意此处小时位的赋值,因为是24小时制式,小时的12_/24位=1,所以小时的赋值为98h(10011000B).也请注意在24小时制时,当小时数据读出后,其最高位为1,所以要将读到的数据最高位置0,否则小时数据不对。注:1.在上电复位时,芯片内部不对实时时钟数据寄存器作清零或置位处理。2.当写实时时间数据时(00H~06H),不可以单独对7个时间数据中的某一位进行写操作,否则可能会引起时间数据的错误进位,所以要修改其中某一个数据,应一次性写入全部7个实时时钟数据.3.当芯片收到读实时时钟数据命令,则所有实时时钟数据被锁存(时钟走时并不受影响),此功能可以避免时间数据的错读现象。5.3中断(08H~13H地址)SD2068有3种不同的中断,它们由控制寄存器2(10H)中的位INTAE、INTFE、INTDE位来使能:中断允许位/标志位列表序号中断允许位(1=允许,0=禁止)中断名中断标志位(1=有中断,0=无中断)1INTAE报警中断INTAF2INTFE频率中断无3INTDE倒计时中断INTDF当报警中断产生时,置中断标志位INTAF为1;当倒计时中断产生时,置中断标志位INTDF为1;频率中断没有标志位.标志位被置1后,需要手动清除.三种中断都是以INT脚为输出脚,通过控制寄存器2中的INTS1、INTS0位来选择确定INT脚输出何种中断:SD2068IIC串行接口的实时时钟ICV3.25INT脚中断输出选通表序号INTS1INTS0描述000禁止输出,高阻态101报警中断输出210频率中断输出311倒计时中断输出(1)报警中断当INTAE=1时报警中断被允许,报警中断何时发生由时间报警寄存器(07H~0EH)来确定。这其中07H~0DH依次用于存放报警时间的秒、分钟、小时、星期、日、月、年数据,除小时报警数据寄存器的最高位始终为”0”、星期位的定义不同以外,其它的格式与实时时钟寄存器相同。0EH为时间报警允许寄存器,如下:BITD7D6D5D4D3D2D1D0位名(值)0EAYEAMOEADEAWEAHEAMNEAS报警允许-年(0DH)月(0CH)日(0BH)星期(0AH)小时(09H)分钟(08H)秒(07H)注:1=允许,0=禁止.时间报警允许寄存器的使能位是用于确定哪些时间报警寄存器(秒、分钟等)需要与实时时钟寄存器之间作比较。当实时时钟运行时,一旦被允许的报警寄存器均与对应的实时时钟寄存器相匹配,就会触发一次报警中断,同时报警中断标志位INTAF位被置”1”.特别:1.当日报警与星期报警均被允许即EAD=EAW=1时,只有日报警有效,而星期报警无效,所以时间报警中断共有96种组合方式。2.星期报警寄存器的数据格式与实时时钟数据星期的格式不同,星期报警寄存器的位AW6.AW5.AW4.AW3.AW2.AW1.AW0分别对应星期六.星期五.星期四.星期三.星期二.星期一.星期日,并可多位置1,例如AW6,AW1=1,其它位为0,则对应在星期六.星期一会有报警.每一次对时间报警允许寄存器的写入都会清INTAF为0.当设置INTS1=0、INTS0=1时,即允许报警中断从INT脚输出.该报警中断有两种模式,即单事件报警和周期性报警,模式的选定由控制寄存器2中的报警中断模式位IM的值来定:IM位报警中断模式INT脚0单事件报警输出低电平直至INTAF位清零1周期性报警输出低电平有效、宽度为250ms的周期性脉冲直至中断允许位清零为清除报警中断,可通过写操作将控制寄存器1的INTAF位置”0”.但当ARST位置为”1”,则在控制寄存器1被读取时,INTAF位会自动清零.举例:1.设寄存器0EH=00000001B,秒报警寄存器07H=20h,位INTAE=1、IM=1、INTS1=0、INTS0=1,则每当时间秒数据进位到20h