《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 高精度RTC SD2403AP在智能路燈控制器上的運(yùn)用

高精度RTC SD2403AP在智能路燈控制器上的運(yùn)用

2015-11-04
關(guān)鍵詞: RTC SD2403

摘要
  本文介紹了高精度實(shí)時(shí)時(shí)鐘SD2403AP在路燈控制器上的應(yīng)用,通過(guò)讀取標(biāo)準(zhǔn)時(shí)間而確定開(kāi)關(guān)燈的時(shí)間,并顯示實(shí)時(shí)時(shí)間

  關(guān)鍵詞:RTC  高精度  實(shí)時(shí)時(shí)鐘  智能路燈控制器

  ●引言

  電子世界錯(cuò)綜復(fù)雜的信息讓時(shí)間成為電子產(chǎn)品的一個(gè)重要依據(jù),在各個(gè)電子領(lǐng)域,其有效的而及時(shí)準(zhǔn)確地傳達(dá)信息,方便了人們的計(jì)算操作。如:以準(zhǔn)確地時(shí)間來(lái)區(qū)分事件的先后,以便查找或排除故障,并可以通過(guò)時(shí)間段的不同來(lái)計(jì)算某事物的使用量。
  下面就來(lái)介紹下深圳市興威帆電子技術(shù)有限公司的SD2403AP的具體應(yīng)用

  ●SD2403AP介紹

  1.   SD2403AP特性
  ※  1.0uA 功耗(VBAT =3.0V,Ta=25℃)。
  ※  工作電壓:1.8~5.5V,工作溫度:-40℃~+85℃。
  ※  標(biāo)準(zhǔn) IIC 總線接口方式,最高速度 400KHZ(4.5V~5.5V)。
  ※  年、月、日、星期、時(shí)、分、秒的 BCD 碼輸入/輸出,并可通過(guò)獨(dú)立的地址訪問(wèn)各時(shí)間寄存器。
  ※  閏年自動(dòng)調(diào)整功能(從 2000 年~2099 年)。
  ※  內(nèi)置 12 字節(jié)通用 SRAM 寄存器。
  ※  內(nèi)置報(bào)警中斷,頻率中斷,倒計(jì)時(shí)中斷。
  ※  可設(shè)定并自動(dòng)重置的單路報(bào)警中斷功能(時(shí)間范圍最長(zhǎng)設(shè)至 100 年),年、月、日、星期、時(shí)、分、秒報(bào)警共有 96 種組合方式,并有單事件報(bào)警和周期性報(bào)警兩種中斷輸出模式。
  ※  周期性頻率中斷輸出:從 64HZ~1/16HZ~1 秒共十二種方波脈沖。
  ※  自動(dòng)重置的 8 位倒計(jì)時(shí)定時(shí)器,可選的 3 種時(shí)鐘源(64HZ、1HZ、1/60HZ)。
  ※  內(nèi)置時(shí)鐘精度數(shù)字調(diào)整功能。
  ※  具有一個(gè)后備電池輸入腳 VBAT,芯片依據(jù)不同的電壓自動(dòng)從 VDD切換到 VBAT或從VBAT切換到 VDD。
  ※  在 VBAT 模式下,芯片具有中斷輸出允許或禁止的功能,IIC 總線 0.5 秒自動(dòng)復(fù)位功能(從 START 命令開(kāi)始計(jì)時(shí))。
  ※  內(nèi)置三個(gè)時(shí)鐘數(shù)據(jù)寫(xiě)保護(hù)位,VBAT模式 IIC 總線通信禁止,上電復(fù)位電路及指示位。
  ※  內(nèi)置電源穩(wěn)壓,內(nèi)部計(jì)時(shí)電壓可低至 1.5V。
  ※  芯片管腳抗靜電(ESD)>4KV。
  ※  內(nèi)置晶振,時(shí)鐘精度為±5PPM(在 25℃±1℃下),即年誤差小于 2.5 分鐘。

  2.   SD2403AP原理框圖

aad7c4d8ae4ee4f91ac2f1b1f659b4de.jpg

3.   SD2403AP引腳定義

捕獲00.JPG

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

  本文用到了時(shí)鐘的定時(shí)功能,具體如下:
  SD2403AP有3種不同的中斷,它們由控制寄存器2(10H)中的位INTAE、 INTFE、INTDE位來(lái)使能:

捕獲000.JPG

       當(dāng)報(bào)警中斷產(chǎn)生時(shí),置中斷標(biāo)志位INTAF為1;當(dāng)?shù)褂?jì)時(shí)中斷產(chǎn)生時(shí), 置中斷標(biāo)志位INTDF為1;頻率中斷沒(méi)有標(biāo)志位。標(biāo)志位被置1后,需要手動(dòng)清除。
三種中斷都是以INT腳為輸出腳, 通過(guò)控制寄存器2中的INTS1、INTS0位來(lái)選擇確定INT腳輸出何種中斷:
  INT腳中斷輸出選通表

捕獲121.JPG

報(bào)警中斷
  當(dāng)INTAE=1時(shí)報(bào)警中斷被允許,報(bào)警中斷何時(shí)發(fā)生由時(shí)間報(bào)警寄存器(07H~0EH)來(lái)確定。這其中07H~0DH依次用于存放報(bào)警時(shí)間的秒、分鐘、小時(shí)、星期、日、月、年數(shù)據(jù),除小時(shí)報(bào)警數(shù)據(jù)寄存器的最高位始終為”0” 、星期位的定義不同以外,其它的格式與實(shí)時(shí)時(shí)鐘寄存器相同。
0EH為時(shí)間報(bào)警允許寄存器,如下:

捕獲212.JPG

       時(shí)間報(bào)警允許寄存器的使能位是用于確定哪些時(shí)間報(bào)警寄存器(秒、分鐘等)需要與實(shí)時(shí)時(shí)鐘寄存器之間作比較。當(dāng)實(shí)時(shí)時(shí)鐘運(yùn)行時(shí),一旦被允許的報(bào)警寄存器均與對(duì)應(yīng)的實(shí)時(shí)時(shí)鐘寄存器相匹配,就會(huì)觸發(fā)一次報(bào)警中斷,同時(shí)報(bào)警中斷標(biāo)志位INTAF位被置”1”

  當(dāng)設(shè)置 INTS1=0、INTS0=1時(shí),即允許報(bào)警中斷從INT腳輸出。該報(bào)警中斷有兩種模式,即單事件報(bào)警和周期性報(bào)警, 模式的選定由控制寄存器2中的報(bào)警中斷模式位IM的值來(lái)定:
  IM=0 ,單事件報(bào)警,輸出低電平直至INTAF位清零
  IM=1 ,周期性報(bào)警,輸出低電平有效、寬度為250MS的周期性脈沖直至INTAF位清零
為清除報(bào)警中斷,可通過(guò)寫(xiě)操作將控制寄存器1的INTAF位置”0”。但當(dāng)ARST位置為”1”,則在控制寄存器1被讀取時(shí),INTAF位會(huì)自動(dòng)清零。

●智能路燈控制器設(shè)計(jì)
  本文采用大家使用普遍ATMEL89C51單片機(jī)做主控芯片。通過(guò)對(duì)時(shí)間的調(diào)用配合光感信號(hào)達(dá)到對(duì)路燈的開(kāi)關(guān)智能控制,該系統(tǒng)可廣泛應(yīng)用于道路燈、霓虹燈、航標(biāo)燈、夜景燈、高速公路照明燈、庭院燈及所有室外照明燈具的控制,其系統(tǒng)框圖如下

捕獲.JPG

硬件設(shè)計(jì)

8dbd1e8f102d66875e4b025eaac521aa.jpg


       圖中,主要給出SD2403AP的具體接線電路,OUT為各位的控制信號(hào)。可接三極管后放大給繼電器輸出,從而控制路燈的開(kāi)關(guān)。
   在此設(shè)計(jì)中MCU通過(guò)P3.4,P3.5模擬IIC總線與SD2403AP進(jìn)行通信,并通過(guò)INT讀出中斷信號(hào),本設(shè)計(jì)設(shè)置的每天早上6:30(此時(shí)間可 以由用戶通過(guò)KEY鍵進(jìn)行修改)定時(shí)關(guān)掉OUT1路的輸出。OUT2,OUT3等由光線控制?,F(xiàn)以O(shè)UT1的關(guān)斷做例子分析

軟件設(shè)計(jì)
  安排SD2403AP在06:30輸出一個(gè)低電平的信號(hào),MCU通過(guò)輪循的方式查到此電平并設(shè)置OUT1為0,從而關(guān)斷繼電器并關(guān)段路燈等。
這里將寫(xiě)入SD2403AP的寄存器列出來(lái),如表:

捕獲.JPG

捕獲.JPG

讀時(shí)間的時(shí)候用到的是00H——06H里面的數(shù)值,為BCD碼。 

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

  本設(shè)計(jì)設(shè)置的中斷涉及的寄存器有08H,09H,EH,F(xiàn)H,10H

  部分軟件如下:

  1. 打開(kāi)“軟鎖”,即設(shè)置WRTC1,WRTC2,WRTC3為1,才能寫(xiě)數(shù)據(jù)。寫(xiě)完數(shù)據(jù)關(guān)閉軟鎖

   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          ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為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ā)送時(shí)鐘SD2400的器件地址(寫(xiě))
LCALL   SEND
MOV     R6,#0FH            ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為0FH
LCALL       SEND           
MOV     R6,#84H           ;置0FH的WRTC2。WRTC3為1
LCALL     SEND
LCALL     IICSTOP           ;同上,I2CSTOP      
SEND:      MOV      A, R6               ;發(fā)送一個(gè)字節(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,寫(xiě)2403的中斷控制寄存器以實(shí)現(xiàn)6:30輸出一個(gè)低電平
LCALL         TIMEWRITE_ON
LCALL     IICSTART
MOV             R6,#64H                ;發(fā)送時(shí)鐘SD2400的器件地址(寫(xiě))
LCALL          SEND
MOV             R6,#10H                ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為10H
LCALL          SEND    
MOV     R6,#92H                  ;ALARM
LCALL     SEND
LCALL     IICSTOP
LCALL     IICSTART
MOV             R6,#64H                ;發(fā)送時(shí)鐘SD2400的器件地址(寫(xiě))
LCALL          SEND
MOV             R6,#0EH                ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為0E
LCALL          SEND           
MOV     R6,#06H                   ;報(bào)警允許小時(shí),分鐘
LCALL         SEND
LCALL   IICSTOP              
LCALL   IICSTART
MOV             R6,#64H                 ;發(fā)送時(shí)鐘SD2400的器件地址(寫(xiě))
LCALL          SEND
MOV             R6,#08H                 ;設(shè)置分鐘報(bào)警地址
LCALL          SEND           
MOV    R6,#30H                     ;MINUTE
LCALL        SEND
MOV     R6,#06H                   ;HOUR
LCALL        SEND   
LCALL   IICSTOP  
LCALL         TIMEWRITE_OFF

結(jié)語(yǔ)
  SD2403AP是一款實(shí)時(shí)時(shí)鐘芯片,在此智能路燈控制器中發(fā)揮著重要的作用。其芯片可以廣泛用于消費(fèi)和工業(yè)領(lǐng)域的諸多平臺(tái),如電子式電力測(cè)量?jī)x(數(shù)字式電力表)、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、游戲機(jī)、DVD錄像機(jī)、便攜電話等產(chǎn)品

      獻(xiàn)
[1]  沙占友,王彥朋,孟志永,單片機(jī)外圍電路設(shè)計(jì),電子工業(yè)出版社,2003.1
[2]  SD2403APIDATASHEET,深圳興威帆電子技術(shù)有限公司,2008


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。