考試嵌入式3-arm2410實時鐘rtc_第1頁
考試嵌入式3-arm2410實時鐘rtc_第2頁
考試嵌入式3-arm2410實時鐘rtc_第3頁
考試嵌入式3-arm2410實時鐘rtc_第4頁
考試嵌入式3-arm2410實時鐘rtc_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實時鐘RTC主要內容概述結構寄存器應用舉例重點:(1)控制寄存器;(2)RTC應用一、概 述 RTC(實時時鐘)功能:通常采用RTC 來提供可靠的系統時間,包括時、分、秒、和年、月、日等;而且要求在系統處于關機狀態下它也能夠正常工作(后備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768KHz 晶振和電阻電容等。 RTC應用:現在很多電子產品都有RTC功能,如電子日歷(臺式、壁式等)、手持數碼產品(手機、電子詞典、各種學習機、照相機、攝像機等)、電子計量儀表(電度表、燃氣表、水表等)、家用電器(電視機、機頂盒、DVD等)等,應用非常廣泛。 RTC芯片:在上面所

2、說產品,都有RTC功能的芯片,有的產品使用獨立的RTC芯片,如壁式電子日歷、電子計量儀表等;有的產品使用的不是獨立的RTC芯片,而是RTC功能集成到了其它的芯片中,如手持數碼產品等。S3C2410的RTC的特點:時鐘數據采用BCD 編碼時鐘數據有:秒、分、時、日、月、年、星期能夠對閏年的年月日進行自動處理具有報警功能,當系統處于關機狀態時,能產生告警中斷具有獨立的電源輸入提供毫秒級時鐘中斷,該中斷可用于作為嵌入式操作系統的內核時鐘二、S3C2410的RTC結構1、S3C2410的RTC結構S3C2410的RTC主要有5部分構成:時鐘發生器、節拍發生器、時間與日期計數器(時分秒年月日星期)、報警

3、發生器、控制邏輯等部分。如下圖所示。2、S3C2410 RTC的振蕩電路S3C2410 RTC的只需外接2個20P左右的小電容、32.768KHz的晶振即可。如下圖所示。三、RTC專用寄存器S3C2410的RTC有17個專用寄存器,均需用字節讀寫。下表為前10個,有4個為控制寄存器,6個為報警寄存器。RegisterAddress R/W Description Reset Value RTCCON0 x57000040/3 R/W RTC控制寄存器0 x0TICNT0 x57000044/7 R/WRTC節拍計數器0 x00RTCALM 0 x57000050/3R/W RTC報警控制寄存器

4、0 x00RTCRST0 x5700006C/FR/WRTC循環復位寄存器0 x0ALMSEC0 x57000054/7R/W 報警秒數寄存器0 x00ALMMIN0 x57000058/BR/W 報警分鐘數寄存器0 x00ALMHOUR0 x5700005C/FR/W報警小時數寄存器0 x00ALMDAY0 x57000060/3R/W 報警天(日)數寄存器0 x01ALMMON0 x57000064/7R/W 報警月數寄存器0 x01ALMYEAR0 x57000068/BR/W報警年數寄存器0 x00三、RTC專用寄存器S3C2410的RTC有17個專用寄存器,均需用字節讀寫。下表為4個

5、控制寄存器。RegisterAddress R/W Description ResetValue RTCCON0 x57000040/3 R/W RTC控制寄存器0 x0TICNT0 x57000044/7 R/WRTC節拍計數器0 x00RTCALM 0 x57000050/3R/W RTC報警控制寄存器0 x00RTCRST0 x5700006C/FR/WRTC秒循環復位寄存器0 x0本表6個寄存器:為報警日期、時間寄存器Register Address R/W Description ResetValue ALMSEC0 x57000054/7R/W 報警秒數寄存器0 x00ALMMIN

6、0 x57000058/BR/W 報警分鐘數寄存器0 x00ALMHOUR0 x5700005C/FR/W報警小時數寄存器0 x00ALMDAY0 x57000060/3R/W 報警天(日)數寄存器0 x01ALMMON0 x57000064/7R/W 報警月數寄存器0 x01ALMYEAR0 x57000068/BR/W報警年數寄存器0 x00后7個寄存器:為日期、時間寄存器。Register Address R/W Description ResetValue BCDSEC0 x57000070/3R/W 秒當前值寄存器0 xXXBCDMIN0 x57000074/7R/W 分鐘當前值寄存

7、器0 xXXBCDHOUR0 x57000078/BR/W小時當前值寄存器0 xXXBCDDAY0 x5700007C/FR/W 日當前值寄存器0 xXXBCDDATE0 x57000080/3R/W 星期當前值寄存器0 xXXBCDMON0 x57000084/7R/W 月當前值寄存器0 xXXBCDYEAR0 x57000088/BR/W年當前值寄存器0 xXXRegisterAddress R/W Description ResetValue RTCCON0 x57000040(L)0 x57000043(B)R/W(字節) RTC控制寄存器0 x01、RTC控制寄存器(RTCCON)字

8、段名 位意 義 初值 CLKRST3 RTC時鐘計數復位。 0:不復位;1 = BCD計數復位。0CNTSEL2 BCD計數選擇。0:合并BCD計數; 1 = 保留(單獨的BCD計數器)0CLKSEL1 BCD時鐘選擇。 0:XTAL32768 1:用XTAL原值(但只用于測試)0RTCEN0 RTC控制使能。 0:失能; 1:使能 指BCD時間計數和讀取操作可以被執行0RegisterAddress R/W Description Reset Value TICNT0 x57000044(L)0 x57000047(B)R/W(字節) RTC節拍時間計數器0 x002、RTC節拍時間計數器(

9、TICNT)字段名 位意 義 初值 TICK INTENABLE7 節拍中斷使能。 0:失能,1:使能 。0TICK TIME COUNT6:0 節拍時間計數值(1127)。0000000說明:這個計數器的值在內部減少,用戶不能在工作時讀取這個計數器的值。 RegisterAddress R/W Description Reset Value RTCALM0 x57000050(L)0 x57000053(B)R/W(字節) RTC報警控制寄存器0 x03、RTC報警控制寄存器(RTCCON)3、RTC報警控制寄存器(RTCCON)字段名 位意 義 初值 Reserved7 保留(為0)0AL

10、MEN6 報警總使能位。0:失能;1:使能 0YEAREN5 年報警使能位。0:失能;1:使能0MONEN4 月報警使能位。0:失能;1:使能0DATEEN3 日報警使能位。0:失能;1:使能0HOUREN2 時報警使能位。0:失能;1:使能0MINEN1 分報警使能位。0:失能;1:使能0SECEN0 秒報警使能位。0:失能;1:使能0RegisterAddress R/W Description Reset Value ALMSEC0 x57000054(L)0 x57000057(B)R/W(字節) 報警秒數寄存器0 x004、RTC報警秒數寄存器(ALMSEC)字段名 位意 義 初值

11、Reserved7 保留(為0)0ALMSECH6:4 報警時間秒十位,BCD值。0 5000ALMSECL3:0 報警時間秒個位,BCD值。0 90000RegisterAddress R/W Description Reset Value ALMMIN0 x57000058(L)0 x5700005B(B)R/W(字節) 報警分鐘數寄存器0 x005、報警時間分鐘數寄存器(ALMMIN)字段名 位意 義 初值 Reserved7 保留(為0)0ALMMINH6:4 報警時間分鐘十位, BCD值。0 5000ALMMINL3:0 報警時間分鐘個位, BCD值。0 90000RegisterA

12、ddress R/W Description Reset Value ALMHOUR0 x5700005C(L)0 x5700005F(B)R/W(字節) 報警小時寄存器0 x006、報警時間小時數寄存器(ALMHOUR)字段名 位意 義 初值 Reserved7:6 保留(為0)00ALMHOURH5:4 報警時間小時十位, BCD值。0 200ALMHOURL3:0 報警時間小時個位, BCD值。0 90000RegisterAddress R/W Description Reset Value ALMDATE0 x57000060(L)0 x57000063(B)R/W(字節) 報警日期

13、天數寄存器0 x017、RTC報警天數寄存器(ALMDATE)字段名 位意 義 初值 Reserved7:6 保留(為0)00ALMDATEH5:4 報警日期天數十位, BCD值。0 300ALMDATEL3:0 報警日期天數個位, BCD值。0 90001RegisterAddress R/W Description Reset Value ALMMON0 x57000064(L)0 x57000067(B)R/W(字節) 報警日期月數寄存器0 x018、報警時間月數寄存器(ALMMON)字段名 位意 義 初值 Reserved7:5 保留(為0)000ALMMONH4 報警日期月數十位,

14、BCD值。0 10ALMMONL3:0 報警日期月數個位, BCD值。0 90001RegisterAddress R/W Description Reset Value ALMYEAR0 x57000068(L)0 x5700006B(B)R/W(字節) 報警年數寄存器0 x009、報警時間年數寄存器(ALMYEAR)字段名 位意 義 初值 ALMYEARH7:4 報警日期年數十位, BCD值。0 90000ALMYEARL3:0 報警日期年數個位, BCD值。0 90000說明:年數的千位和百位應該是20。RegisterAddress R/W Description Reset Valu

15、e RTCRST0 x5700006C(L)0 x5700006F(B)R/W(字節) 秒循環復位寄存器0 x0010、秒循環復位寄存器(RTCRST)字段名 位意 義 初值 Reserved7:4 保留(為0)000SRSTEN3 秒循環復位控制位。 0:禁止;1:允許0SECCR2:0 秒循環進位邊界。 011:30秒; 100:40秒;101:50秒。 00說明:對于秒循環進位邊界設為其它值,到設定值只復位,但不會向分鐘進位。RegisterAddress R/W Description Reset Value BCDSEC0 x57000070(L)0 x57000073(B)R/W(

16、字節) 當前時間秒數寄存器-11、當前時間秒數寄存器(BCDSEC)字段名 位意 義 初值 Reserved7 保留(為0)-NOWSECH6:4 當前時間秒十位, BCD值。0 5-NOWSECL3:0 當前時間秒個位, BCD值。0 9-RegisterAddress R/W Description Reset Value BCDMIN0 x57000074(L)0 x57000077(B)R/W(字節) 當前時間分鐘寄存器-12、當前時間分鐘寄存器(BCDMIN)字段名 位意 義 初值 Reserved7 保留(為0)-NOWMINH6:4當前時間分鐘十位, BCD值。0 5-NOWMI

17、NL3:0當前時間分鐘個位, BCD值。0 9-RegisterAddress R/W Description Reset Value BCDHOUR0 x57000078(L)0 x5700007B(B)R/W(字節) 當前時間小時寄存器-13、當前時間小時數寄存器(BCDHOUR)字段名 位意 義 初值 Reserved7:6 保留(為0)-NOWHOURH5:4 當前時間小時十位, BCD值。0 2-NOWHOURL3:0 當前時間小時個位, BCD值。0 9-RegisterAddress R/W Description Reset Value BCDDATE0 x5700007C(L

18、) 0 x5700007F(B)R/W(字節) 當前日期天數寄存器-14、當前日期天數寄存器(BCDDATE)字段名 位意 義 初值 Reserved7:6 保留(為0)-NOWDATEH5:4 當前日期天數十位, BCD值。0 3-NOWDATEL3:0 當前日期天數個位, BCD值。0 9-RegisterAddress R/W Description Reset Value BCDDAY0 x57000080(L)0 x57000083(B)R/W(字節) 當前星期寄存器-15、當前星期寄存器(BCDDAY)字段名 位意 義 初值 Reserved7:3 保留(為0)-NOWDAY2:0

19、 當前星期值。1 7-1:星期日;2:星期一;3:星期二;4:星期三;5:星期四;6:星期五;7:星期六RegisterAddress R/W Description Reset Value BCDMON0 x57000084(L)0 x57000087(B)R/W(字節) 報警日期月數寄存器0 x0116、當前日期月數寄存器(BCDMON)字段名 位意 義 初值 Reserved7:5 保留(為0)000NOWMONH4 當前日期月數十位, BCD值。0 10NOWMONL3:0 當前日期月數個位, BCD值。0 90001RegisterAddress R/W Description Re

20、set Value BCDHOUR0 x57000088(L)0 x5700008B(B)R/W(字節) 當前日期年數寄存器0 x0017、當前日期年數寄存器(BCDYEAR)字段名 位意 義 初值 NOWYEARH7:4 當前日期年數十位, BCD值。0 90000NOWYEARL3:0 當前日期年數個位, BCD值。0 90000說明:年數的千位和百位應該是20四、S3C2410 RTC使用方法1、讀/寫寄存器(1)設置允許讀寫:對寄存器RTCCON 的0 位寫1 。(2)顯示時間、日期方法:需要不斷地從BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON

21、、和BCDYEAR 寄存器讀取數據,然后顯示出來。 (3)可能會引起顯示錯誤。例如,假設用戶在2006 年12 月31 日23 點59 分59秒讀取寄存器BCDYEAR 到BCDSEC,在用戶讀取BCDSEC 寄存器時,如果結果是0,那么很有可能年、月、日、時、分已經變成了2007 年1 月1 日0 時0 分了,數據組合在一起可能是錯的。讀取的數據可能是:1) 2006 年12 月1 日0 時0分2) 2006 年1 月1 日0 時0 分,等解決的方法:當讀取到的BCDSEC 等于0 時,用戶應該再讀取一次BCDYEAR到BCDSEC 的值。 2、報警功能RTC的報警寄存器(RTCALM)決定

22、了報警的使能、禁止、以及報警時間設定的條件。在RTC報警的使能情況下:(1)在正常工作模式下,報警中斷(ALMINT)是激活狀態的。(2)在掉電模式下(PWDN信號有效),電源管理喚醒信號(PMWKUP)與報警中斷(ALMINT)都是激活狀態。3、節拍中斷RTC 節拍用于中斷請求。TICNT 寄存器:有中斷使能位、節拍時間位。當節拍計數值到達0 時,就會觸發節拍中斷。節拍中斷的間隔時間計算如下:Period=(n+1)/128 秒n :節拍時間計數值(1127)說明:RTC 節拍中斷可以作為RTOS(實時操作系統)內核的時間節拍。RegisterAddress R/W Description

23、ResetValue RTCCON0 x57000040(L)0 x57000043(B)R/W(字節) RTC控制寄存器0 x01、RTC控制寄存器(RTCCON)字段名 位意 義 初值 CLKRST3 RTC時鐘計數復位。 0:不復位;1 = BCD計數復位。0CNTSEL2 BCD計數選擇。0:合并BCD計數; 1 = 保留(單獨的BCD計數器)0CLKSEL1 BCD時鐘選擇。 0:XTAL32768 1:用XTAL原值(但只用于測試)0RTCEN0 RTC控制使能。 0:失能; 1:使能 指BCD時間計數和讀取操作可以被執行0五、應用舉例例:編寫一程序,對S3C2410的RTC進行設

24、置,使用節拍中斷,每1秒中斷一次,中斷后顯示出當前的日期和時間。初始日期、時間設置為正確值。解:1、設置控制寄存器 : RTCCON=0 x0 0 0 1 = 0 x01含義:RTC不復位、正常BCD計數、BCD時鐘選擇為1/32768、允許讀出RTC值2、設置節拍時間寄存器 :TICNT=0 x1 1 1 1 1 1 1 1 = 0 xFF含義:允許節拍中斷、節拍計數值為127,每1秒鐘中斷一次。BIT_TICK EQU (0 x18)BIT_ALLMSK EQU (0 xffffffff) BIT_RTC EQU (0 x130)#include 2410addr.h#include 2410lib.hvoid Test_Rtc_Tick(void);void _irq Rtc_Tick(void);void Test_Rtc_Tick(void) Uart_Printf(RTC Tick inter

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論