《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 解决方案 > 高精度RTC SD2403AP在智能路灯控制器上的运用

高精度RTC SD2403AP在智能路灯控制器上的运用

2015-11-04
关键词: RTC SD2403

摘要
  本文介绍了高精度实时时钟SD2403AP在路灯控制器上的应用,通过读取标准时间而确定开关灯的时间,并显示实时时间

  关键词:RTC  高精度  实时时钟  智能路灯控制器

  ●引言

  电子世界错综复杂的信息让时间成为电子产品的一个重要依据,在各个电子领域,其有效的而及时准确地传达信息,方便了人们的计算操作。如:以准确地时间来区分事件的先后,以便查找或排除故障,并可以通过时间段的不同来计算某事物的使用量。
  下面就来介绍下深圳市兴威帆电子技术有限公司的SD2403AP的具体应用

  ●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)>4KV。
  ※  内置晶振,时钟精度为±5PPM(在 25℃±1℃下),即年误差小于 2.5 分钟。

  2.   SD2403AP原理框图

aad7c4d8ae4ee4f91ac2f1b1f659b4de.jpg

3.   SD2403AP引脚定义

捕获00.JPG

4.   中断(08H~13H地址)

  本文用到了时钟的定时功能,具体如下:
  SD2403AP有3种不同的中断,它们由控制寄存器2(10H)中的位INTAE、 INTFE、INTDE位来使能:

捕获000.JPG

       当报警中断产生时,置中断标志位INTAF为1;当倒计时中断产生时, 置中断标志位INTDF为1;频率中断没有标志位。标志位被置1后,需要手动清除。
三种中断都是以INT脚为输出脚, 通过控制寄存器2中的INTS1、INTS0位来选择确定INT脚输出何种中断:
  INT脚中断输出选通表

捕获121.JPG

报警中断
  当INTAE=1时报警中断被允许,报警中断何时发生由时间报警寄存器(07H~0EH)来确定。这其中07H~0DH依次用于存放报警时间的秒、分钟、小时、星期、日、月、年数据,除小时报警数据寄存器的最高位始终为”0” 、星期位的定义不同以外,其它的格式与实时时钟寄存器相同。
0EH为时间报警允许寄存器,如下:

捕获212.JPG

       时间报警允许寄存器的使能位是用于确定哪些时间报警寄存器(秒、分钟等)需要与实时时钟寄存器之间作比较。当实时时钟运行时,一旦被允许的报警寄存器均与对应的实时时钟寄存器相匹配,就会触发一次报警中断,同时报警中断标志位INTAF位被置”1”

  当设置 INTS1=0、INTS0=1时,即允许报警中断从INT脚输出。该报警中断有两种模式,即单事件报警和周期性报警, 模式的选定由控制寄存器2中的报警中断模式位IM的值来定:
  IM=0 ,单事件报警,输出低电平直至INTAF位清零
  IM=1 ,周期性报警,输出低电平有效、宽度为250MS的周期性脉冲直至INTAF位清零
为清除报警中断,可通过写操作将控制寄存器1的INTAF位置”0”。但当ARST位置为”1”,则在控制寄存器1被读取时,INTAF位会自动清零。

●智能路灯控制器设计
  本文采用大家使用普遍ATMEL89C51单片机做主控芯片。通过对时间的调用配合光感信号达到对路灯的开关智能控制,该系统可广泛应用于道路灯、霓虹灯、航标灯、夜景灯、高速公路照明灯、庭院灯及所有室外照明灯具的控制,其系统框图如下

捕获.JPG

硬件设计

8dbd1e8f102d66875e4b025eaac521aa.jpg


       图中,主要给出SD2403AP的具体接线电路,OUT为各位的控制信号。可接三极管后放大给继电器输出,从而控制路灯的开关。
   在此设计中MCU通过P3.4,P3.5模拟IIC总线与SD2403AP进行通信,并通过INT读出中断信号,本设计设置的每天早上6:30(此时间可 以由用户通过KEY键进行修改)定时关掉OUT1路的输出。OUT2,OUT3等由光线控制。现以OUT1的关断做例子分析

软件设计
  安排SD2403AP在06:30输出一个低电平的信号,MCU通过轮循的方式查到此电平并设置OUT1为0,从而关断继电器并关段路灯等。
这里将写入SD2403AP的寄存器列出来,如表:

捕获.JPG

捕获.JPG

读时间的时候用到的是00H——06H里面的数值,为BCD码。 

  控制寄存器和中断在07——13H。 

  本设计设置的中断涉及的寄存器有08H,09H,EH,FH,10H

  部分软件如下:

  1. 打开“软锁”,即设置WRTC1,WRTC2,WRTC3为1,才能写数据。写完数据关闭软锁

   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


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。