
摘要
本文介绍了高精度实时时钟SD2403AP在路灯控制器上的应用,通过读取标准时间而确定开关灯的时间,并显示实时时间
要害词:RTC 高精度 实时时钟 智能路灯控制器
电子世界错综复杂的信息让时间成为电子产品的一个重要依据,在各个电子领域,其有效的而及时准确地传达信息,方便了人们的计算操纵。如:以准确地时间来区分事件的先后,以便查找或排除故障,并可以通过时间段的差别来计算某事物的使用量。
下面就来介绍下深圳市兴威帆电子技术有限公司的SD2403AP的详细应用
1. SD2403AP特性
※ 1.0uA 功耗(VBAT =3.0V,Ta=25℃)。
※ 工作电压:1.8~5.5V,工作温度:-40℃~+85℃。
※ 标准 IIC 总线接口方式,最高速度 400KHZ(4.5V~5.5V)。
※ 年、月、日、星期、时、分、秒的 BCD 码输入/输出,并可通过独立的地址访问各时间寄存器。
※ 闰年自动调整功能(从 2000 年~2099 年)。
※ 内置 12 字节通用 SRAM 寄存器。
※ 内置报警中断,频率中断,倒计时中断。
※ 可设定并自动重置的单路报警中断功能(时间范围最长设至 100 年),年、月、日、星期、时、分、秒报警共有 96 种组合方式,并有单事件报警和周期性报警两种中断输出模式。
※ 周期性频率中断输出:从 64HZ~1/16HZ~1 秒共十二种方波脉冲。
※ 自动重置的 8 位倒计时定时器,可选的 3 种时钟源(64HZ、1HZ、1/60HZ)。
※ 内置时钟精度数字调整功能。
※ 具有一个后备电池输入脚 VBAT,芯片依据差别的电压自动从 VDD切换到 VBAT或从VBAT切换到 VDD。
※ 在 VBAT 模式下,芯片具有中断输出允许或禁止的功能,IIC 总线 0.5 秒自动复位功能(从 START 命令开始计时)。
※ 内置三个时钟数据写掩护位,VBAT模式 IIC 总线通信禁止,上电复位电路及指示位。
※ 内置电源稳压,内部计时电压可低至 1.5V。
※ 芯片管脚抗静电(ESD)%26gt;4KV。
※ 内置晶振,时钟精度为%26plusmn;5PPM(在 25℃%26plusmn;1℃下),即年误差小于 2.5 分钟。

3. SD2403AP引脚定义
管脚
名 称
功 能
特 征
1
VBAT
备用电源(电池)输入脚。当VBAT电源失效时VBAT为 IC提供电源。
1.8V~5.5V,不消时应将
其接 GND。
2、3
NC
没有与芯片内部连接
悬空或接地
4
GND
负电源(GND)
5
SDA
串行数据输入/输出脚,此管脚通常用一电阻上拉至 VDD,并与其它漏极开路或集电器开路输出的器件通过线与方式连接。。
N 沟道开路输出, CMOS 输入;当VBAT引脚的后备电源被激活时,该引脚被禁止
6
SCL
串行时钟输入脚,由于在 SCL 上升/下降沿处理信号,要特别注意 SCL 信号的上升/下降升降时间,
应严格遵守说明书。
CMOS 输入。 VBAT 当引脚的后备电源被激活时,该引脚被禁止。
7
INT
报警中断输出脚,根据控制寄存器来设置其工作的模式,它可通过重写控制寄存器来禁止。
N沟道开路输出
8
VDD
正电源
1.8~5.5V
4. 中断(08H~13H地址)
本文用到了时钟的定时功能,详细如下:
SD2403AP有3种差别的中断,它们由控制寄存器2(10H)中的位INTAE、 INTFE、INTDE位来使能:
中断允许位(1=允许,0=禁止)
中断名
中断标记位(1=有中断,0=无中断)
1
INTAE
报警中断
INTAF
2
INTFE
频率中断
无
3
INTDE
倒计时中断
INTDF
当报警中断孕育发生时,置中断标记位INTAF为1;当倒计时中断孕育发生时, 置中断标记位INTDF为1;频率中断没有标记位。标记位被置1后,需要手动清除。
三种中断都是以INT脚为输出脚, 通过控制寄存器2中的INTS1、INTS0位来选择确定INT脚输出何种中断:
INT脚中断输出选通表
INTS1
INTS0
描 述
0
0
0
禁止输出,高阻态
1
0
1
报警中断输出
2
1
0
频率中断输出
3
1
1
倒计时中断输出
报警中断
当INTAE=1时报警中断被允许,报警中断何时发生由时间报警寄存器(07H~0EH)来确定。这其中07H~0DH依次用于存放报警时间的秒、分钟、小时、星期、日、月、年数据,除小时报警数据寄存器的最高位始终为%26rdquo;0%26rdquo; 、星期位的定义差别以外,其它的格式与实时时钟寄存器相同。
0EH为时间报警允许寄存器,如下:
D7
D6
D5
D4
D3
D2
D1
D0
位名(值)
0
EAY
EAMO
EAD
EAW
EAH
EAMN
EAS
报警允许
-
年
月
日
星期
小时
分钟
秒
注:1=允许,0=禁止。 时间报警允许寄存器的使能位是用于确定哪些时间报警寄存器(秒、分钟等)需要与实时时钟寄存器之间作比较。当实时时钟运行时,一旦被允许的报警寄存器均与对应的实时时钟寄存器相匹配,就会触发一次报警中断,同时报警中断标记位INTAF位被置%26rdquo;1%26rdquo;
当设置 INTS1=0、INTS0=1时,即允许报警中断从INT脚输出。该报警中断有两种模式,即单事件报警和周期性报警, 模式的选定由控制寄存器2中的报警中断模式位IM的值来定:
IM=0 ,单事件报警,输出低电平直至INTAF位清零
IM=1 ,周期性报警,输出低电平有效、宽度为250MS的周期性脉冲直至INTAF位清零
为清除报警中断,可通过写操纵将控制寄存器1的INTAF位置%26rdquo;0%26rdquo;。但当ARST位置为%26rdquo;1%26rdquo;,则在控制寄存器1被读取时,INTAF位会自动清零。
●智能路灯控制器设计
本文接纳大家使用普遍ATMEL89C51单片机做主控芯片。通过对时间的调用配合光感信号达到对路灯的开关智能控制,该系统可广泛应用于道路灯、霓虹灯、航标灯、夜景灯、高速公路照明灯、庭院灯及所有室外照明灯具的控制,其系统框图如下
硬件设计

图中,主要给出SD2403AP的详细接线电路,OUT为各位的控制信号。可接三极管后放大给继电器输出,从而控制路灯的开关。
在此设计中MCU通过P3.4,P3.5模仿IIC总线与SD2403AP进行通信,并通过INT读出中断信号,本设计设置的每天早上6:30(此时间可以由用户通过KEY键进行修改)定时关掉OUT1路的输出。OUT2,OUT3等由光芒控制。现以OUT1的关断做例子分析
软件设计
摆设SD2403AP在06:30输出一个低电平的信号,MCU通过轮循的方式查到此电平并设置OUT1为0,从而关断继电器并关段路灯等。
这里将写入SD2403AP的寄存器列出来,如表:
地址
寄存器名称
D7
D6
D5
D4
D3
D2
D1
D0
数值范围
00H
秒
0
S40
S20
S10
S8
S4
S2
S1
0-59
01H
分钟
0
MN40
MN20
MN10
MN8
MN4
MN2
MN1
0-59
02H
小时
12_/24
0
H20 P/A_
H10
H8
H4
H2
H1
0-23
03H
星期
0
0
0
0
0
W4
W2
W1
0-6
04H
日
0
0
D20
D10
D8
D4
D2
D1
1-31
05H
月
0
0
0
MO10
MO8
MO4
MO2
MO1
1-12
06H
年
Y80
Y40
Y20
Y10
Y8
Y4
Y2
Y1
0-99
07H
秒报警
0
AS40
AS20
AS10
AS8
AS4
AS2
AS1
0-59
08H
分钟报警
0
AMN40
AMN20
AMN10
AMN8
AMN4
AMN2
AMN1
0-59
09H
小时报警
0
0
AH20 AP/A_
AH10
AH8
AH4
AH2
AH1
0-23
0AH
星期报警
0
AW6
AW5
AW4
AW3
AW2
AW1
AW0
N/A
0BH
日报警
0
0
AD20
AD10
AD8
AD4
AD2
AD1
1-31
0CH
月报警
0
0
0
AMO10
AMO8
AMO4
AMO2
AMO1
1-12
0DH
年报警
AY80
AY40
AY20
AY10
AY8
AY4
AY2
AY1
0-99
0EH
报警允许
0
EAY
EAMO
EAD
EAW
EAH
EAMN
EAS
N/A
0FH
CTR1
WRTC3
0
INTFA
INTDF
0
WRTC2
0
RTCF
N/A
10H
CTR2
WRTC1
IM
INTS1
INTS0
FOBAT
INTDE
INTAE
INTFE
N/A
11H
CTR3
ARST
0
TDS1
TDS0
FS3
FS2
FS1
FS0
N/A
12H
时间调整
0
F6
F5
F4
F3
F2
F1
F0
N/A
13H
倒计时定时器
TD7
TD6
TD5
TD4
TD3
TD2
TD1
TD0
0-255
14H~1FH
(12BYTE)
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
N/A
读时间的时候用到的是00H%26mdash;%26mdash;06H里面的数值,为BCD码。
控制寄存器和中断在07%26mdash;%26mdash;13H。
本设计设置的中断涉及的寄存器有08H,09H,EH,FH,10H
部分软件如下:
TIMEWRITE_ON:
SETB SDA
SETB SCL
LCALL DELAY
CLR SDA
LCALL DELAY
CLR SCL
LCALL DELAY ;I2C START
MOV R6,#64H
LCALL SEND
MOV R6,#10H ;设置时钟数据的内部起始地址为10H
LCALL SEND
MOV R6,#80H ;置10H的WRTC1为1
LCALL SEND
CLR SDA
SETB SCL
LCALL DELAY
SETB SDA
LCALL DELAY ;I2C STOP
LCALL IICSTART ;详细步伐同上I2C START,此处略
MOV R6,#64H ;发送时钟SD2400的器件地址(写)
LCALL SEND
MOV R6,#0FH ;设置时钟数据的内部起始地址为0FH
LCALL SEND
MOV R6,#84H ;置0FH的WRTC2。WRTC3为1
LCALL SEND
LCALL IICSTOP ;同上,I2CSTOP
SEND: MOV A, R6 ;发送一个字节
MOV R2,#08H
SEND1: MOV C,ACC。7
MOV SDA,C
LCALL DELAY
SETB SCL
LCALL DELAY
CLR SCL
LCALL DELAY ;SEND A BIT
RL A
DJNZ R2,SEND1
SETB SDA ;置输入状态
SETB SCL
LCALL DELAY
MOV C,SDA
JC ERROR
CLR SCL
LCALL DELAY
RET ;READ A BIT
ERROR: LJMP 0000H
2,写2403的中断控制寄存器以实现6:30输出一个低电平
LCALL TIMEWRITE_ON
LCALL IICSTART
MOV R6,#64H ;发送时钟SD2400的器件地址(写)
LCALL SEND
MOV R6,#10H ;设置时钟数据的内部起始地址为10H
LCALL SEND
MOV R6,#92H ;ALARM
LCALL SEND
LCALL IICSTOP
LCALL IICSTART
MOV R6,#64H ;发送时钟SD2400的器件地址(写)
LCALL SEND
MOV R6,#0EH ;设置时钟数据的内部起始地址为0E
LCALL SEND
MOV R6,#06H ;报警允许小时,分钟
LCALL SEND
LCALL IICSTOP
LCALL IICSTART
MOV R6,#64H ;发送时钟SD2400的器件地址(写)
LCALL SEND
MOV R6,#08H ;设置分钟报警地址
LCALL SEND
MOV R6,#30H ;MINUTE
LCALL SEND
MOV R6,#06H ;HOUR
LCALL SEND
LCALL IICSTOP
LCALL TIMEWRITE_OFF
●结语
SD2403AP是一款高精度实时时钟芯片,在此智能路灯控制器中发挥着重要的作用。其芯片可以广泛用于消费和财产领域的诸多平台,如电子式电力丈量仪(数字式电力表)、数码相机、数码摄像机、游戏机、DVD录像机、便携电话等产品
参 考 文 献
[1] 沙占友,王彦朋,孟志永,单片机外围电路设计,电子财产出版社,2003.1
[2] SD2403APIDATASHEET,深圳兴威帆电子技术有限公司,2008
发布日期:2009-9-24 【返回】