摘要
本文介紹了高精度實時時鐘SD2403AP在路燈控制器上的應用,通過讀取標準時間而確定開關燈的時間,并顯示實時時間
關鍵詞:RTC 高精度 實時時鐘 智能路燈控制器
●引言
電子世界錯綜復雜的信息讓時間成為電子產品的一個重要依據,在各個電子領域,其有效的而及時準確地傳達信息,方便了人們的計算操作。如:以準確地時間來區(qū)分事件的先后,以便查找或排除故障,并可以通過時間段的不同來計算某事物的使用量。
下面就來介紹下深圳市興威帆電子技術有限公司的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 字節(jié)通用 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 總線通信禁止,上電復位電路及指示位。
※ 內置電源穩(wěn)壓,內部計時電壓可低至 1.5V。
※ 芯片管腳抗靜電(ESD)>4KV。
※ 內置晶振,時鐘精度為±5PPM(在 25℃±1℃下),即年誤差小于 2.5 分鐘。
2. SD2403AP原理框圖
3. SD2403AP引腳定義
4. 中斷(08H~13H地址)
本文用到了時鐘的定時功能,具體如下:
SD2403AP有3種不同的中斷,它們由控制寄存器2(10H)中的位INTAE、 INTFE、INTDE位來使能:
當報警中斷產生時,置中斷標志位INTAF為1;當倒計時中斷產生時, 置中斷標志位INTDF為1;頻率中斷沒有標志位。標志位被置1后,需要手動清除。
三種中斷都是以INT腳為輸出腳, 通過控制寄存器2中的INTS1、INTS0位來選擇確定INT腳輸出何種中斷:
INT腳中斷輸出選通表
報警中斷
當INTAE=1時報警中斷被允許,報警中斷何時發(fā)生由時間報警寄存器(07H~0EH)來確定。這其中07H~0DH依次用于存放報警時間的秒、分鐘、小時、星期、日、月、年數據,除小時報警數據寄存器的最高位始終為”0” 、星期位的定義不同以外,其它的格式與實時時鐘寄存器相同。
0EH為時間報警允許寄存器,如下:
時間報警允許寄存器的使能位是用于確定哪些時間報警寄存器(秒、分鐘等)需要與實時時鐘寄存器之間作比較。當實時時鐘運行時,一旦被允許的報警寄存器均與對應的實時時鐘寄存器相匹配,就會觸發(fā)一次報警中斷,同時報警中斷標志位INTAF位被置”1”
當設置 INTS1=0、INTS0=1時,即允許報警中斷從INT腳輸出。該報警中斷有兩種模式,即單事件報警和周期性報警, 模式的選定由控制寄存器2中的報警中斷模式位IM的值來定:
IM=0 ,單事件報警,輸出低電平直至INTAF位清零
IM=1 ,周期性報警,輸出低電平有效、寬度為250MS的周期性脈沖直至INTAF位清零
為清除報警中斷,可通過寫操作將控制寄存器1的INTAF位置”0”。但當ARST位置為”1”,則在控制寄存器1被讀取時,INTAF位會自動清零。
●智能路燈控制器設計
本文采用大家使用普遍ATMEL89C51單片機做主控芯片。通過對時間的調用配合光感信號達到對路燈的開關智能控制,該系統(tǒng)可廣泛應用于道路燈、霓虹燈、航標燈、夜景燈、高速公路照明燈、庭院燈及所有室外照明燈具的控制,其系統(tǒng)框圖如下
硬件設計
圖中,主要給出SD2403AP的具體接線電路,OUT為各位的控制信號??山尤龢O管后放大給繼電器輸出,從而控制路燈的開關。
在此設計中MCU通過P3.4,P3.5模擬IIC總線與SD2403AP進行通信,并通過INT讀出中斷信號,本設計設置的每天早上6:30(此時間可
以由用戶通過KEY鍵進行修改)定時關掉OUT1路的輸出。OUT2,OUT3等由光線控制。現以OUT1的關斷做例子分析
軟件設計
安排SD2403AP在06:30輸出一個低電平的信號,MCU通過輪循的方式查到此電平并設置OUT1為0,從而關斷繼電器并關段路燈等。
這里將寫入SD2403AP的寄存器列出來,如表:
讀時間的時候用到的是00H——06H里面的數值,為BCD碼。
控制寄存器和中斷在07——13H。
本設計設置的中斷涉及的寄存器有08H,09H,EH,FH,10H
部分軟件如下:
打開“軟鎖”,即設置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 ;發(fā)送時鐘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 ;發(fā)送一個字節(jié)
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 ;置輸入狀態(tài)
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 ;發(fā)送時鐘SD2400的器件地址(寫)
LCALL SEND
MOV R6,#10H ;設置時鐘數據的內部起始地址為10H
LCALL SEND
MOV R6,#92H ;ALARM
LCALL SEND
LCALL IICSTOP
LCALL IICSTART
MOV R6,#64H ;發(fā)送時鐘SD2400的器件地址(寫)
LCALL SEND
MOV R6,#0EH ;設置時鐘數據的內部起始地址為0E
LCALL SEND
MOV R6,#06H ;報警允許小時,分鐘
LCALL SEND
LCALL IICSTOP
LCALL IICSTART
MOV R6,#64H ;發(fā)送時鐘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是一款高精度實時時鐘芯片,在此智能路燈控制器中發(fā)揮著重要的作用。其芯片可以廣泛用于消費和工業(yè)領域的諸多平臺,如電子式電力測量儀(數字式電力表)、數碼相機、數碼攝像機、游戲機、DVD錄像機、便攜電話等產品
參 考 文 獻
[1] 沙占友,王彥朋,孟志永,單片機外圍電路設計,電子工業(yè)出版社,2003.1
[2] SD2403APIDATASHEET,深圳興威帆電子技術有限公司,2008