0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文搞懂Cortex-A9 RTC(上)

jf_78858299 ? 來源:土豆居士 ? 作者:土豆居士 ? 2023-05-26 15:11 ? 次閱讀

一、RTC

RTC(Real-Time Clock) 實時時鐘。

RTC是集成電路,通常稱為時鐘芯片。在一個嵌入式系統(tǒng)中,通常采用RTC來提供可靠的系統(tǒng)時間,包括時分秒和年月日等,而且要求在系統(tǒng)處于關(guān)機狀態(tài)下它也能正常工作(通常采用后備電池供電)。

它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768kHz 晶體和電阻電容等,并且具有鬧鐘的功能。

二、Exynos 4412 RTC

本篇主要以Cortex-A9 soc為例講解RTC的使用方法。

1. 特性

實時時鐘(RTC)單元可以通過備用電池供電,因此,即使系統(tǒng)電源關(guān)閉,它也可以繼續(xù)工作。RTC可以通過STRB/LDRB 指令將8位BCD碼數(shù)據(jù)送至CPU。這些BCD數(shù)據(jù)包括秒、分、時、日期、星期、月和年。

RTC單元通過一個外部的32.768kHz 晶振提供時鐘。

RTC具有定時報警的功能。

其功能說明如下:

1 -- 時鐘數(shù)據(jù)采用BCD編碼。

2 -- 能夠?qū)﹂c年的年月日進行自動處理。

3 -- 具有告警功能,當系統(tǒng)處于關(guān)機狀態(tài)時,能產(chǎn)生警告中斷。

4 -- 具有獨立的電源輸入。

5 -- 提供毫秒級時鐘中斷,該中斷可以用于作為嵌入式操作系統(tǒng)的內(nèi)核時鐘。

2. RTC Block

圖片

RTC Block Diagram

RTC在Linux中主要實現(xiàn)兩種功能,分別是系統(tǒng)掉電后的時間日期維持和時間日期報警(類似定時器)。

「1)時間日期維持功能:」

主要是由RTC實時時鐘控制寄存器RTCCON進行功能的使能控制,由節(jié)拍時間計數(shù)寄存器TICNT來產(chǎn)生節(jié)拍時間中斷來實現(xiàn)實時操作系統(tǒng)功能相關(guān)的時間和實時同步。其中對時間日期的操作實際上是對BCD碼操作,而BCD碼則是由一系列的寄存器組成(BCD秒寄存器BCDSEC、BCD分寄存器BCDMIN、BCD小時寄存器BCDHOUR、BCD日期寄存器BCDDATE、BCD日寄存器BCDDAY、BCD月寄存器BCDMON、BCD年寄存器BCDYEAR)。

「2)報警功能:」

主要由RTC報警控制寄存器RTC ALM進行功能使能控制,并產(chǎn)生報警中斷。報警時間日期的設(shè)置也是對一系列的寄存器進行操作(報警秒數(shù)據(jù)寄存器ALMSEC、報警分鐘數(shù)據(jù)寄存器ALMMIN、報警小時數(shù)據(jù)寄存器ALMHOUR、報警日期數(shù)據(jù)寄存器ALMDATE、報警月數(shù)據(jù)寄存器ALMMON、報警年數(shù)據(jù)寄存器ALMYEAR)。

「3)閏年發(fā)生器」

可以根據(jù)BCDDAY、BCDMON和BCDEEAR的值自動計算閏年。

3. 備用電池

備用電池可以驅(qū)動RTC邏輯。備用電池通過RTCVDD引腳向RTC塊,即使系統(tǒng)電源關(guān)閉。如果系統(tǒng)關(guān)閉,您應(yīng)該阻止CPU和RTC邏輯。為了減少功耗,備用電池單獨驅(qū)動振蕩電路和BCD計數(shù)器。

4. Alarm【報警】 功能

RTC在斷電模式或正常運行模式都可以在執(zhí)行的時間產(chǎn)生一個ALARM_INT 和ALARM_WK信號。在正常工作模式下,它會產(chǎn)生ALARM_INT。在斷電模式下,它會ALARM_WK以及ALARM_INT信號。RTC報警寄存器(RTCALM)確定報警啟用/禁用狀態(tài)和報警時間設(shè)置的條件。

6. 晶振

32.768 kHz X-Tal Connection Example

圖片晶振時鐘頻率 32.768 kHz。

圖片

  1. XT_RTC_I 32.768 kHz RTC振蕩器時鐘輸入
  2. XT_RTC_O 32.768 kHz RTC振蕩器時鐘輸出
  3. XRTCCLKO 32.768 kHz RTC振蕩器時鐘輸出,此信號默認關(guān)閉??梢酝ㄟ^設(shè)置寄存器RTCCON的CLKOUTEN字段為1來啟用它。

引腳連接圖:圖片由電路圖可知,只連接了RTC振蕩器時鐘輸入引腳XT_RTC_I 。

三、寄存器

1. RTC寄存器組:

圖片

寄存器組

2. INTP

圖片設(shè)置對應(yīng)的bit為1就可以清除中斷。

3. RTCCON

RTCCON 描述 復位值
保留 [31:10] 保留 0
CLKOUTEN [9] 使能RTC通過XRTCCLKO輸出 0 disable 1 enbale 0
TICEN [8] 嘀嗒計時器0 = 禁止1 = 使能 0
TICCKSEL [7:4] 嘀嗒計時器子時鐘源選擇**「4'b0000 = 32768 Hz」** 4'b0001 = 16384 Hz4'b0010 = 8192 Hz4'b0011 = 4096 Hz4'b0100 = 2048 Hz4'b0101 =1024 Hz4'b0110 =512 Hz4'b0111 =256 Hz4'b1000 =128 Hz4'b1001 =64 Hz4'b1010 =32 Hz 4'b1011 =16 Hz4'b1100 =8 Hz4'b1101 =4 Hz4'b1110 =2 Hz4'b1111 =1 Hz 4'b0000
CLKRST [3] RTC時鐘計數(shù)復位0 = 不復位1 = 復位 0
CNTSEL [2] BCD計數(shù)選擇 0 = 分配 BCD 計數(shù) 1 = 保留 0
CLKSEL [1] BCD 時鐘選擇0 = XTAL 1/2 divided clock1 = 保留(XTAL 供頻) 0
RTCEN [0] RTC控制使能0 = 禁止1 = 使能 0
  1. RTCCON寄存器由10位組成,如控制BCD SEL讀/寫啟用的CTLEN, CNTSEL、CLKRST、TICKSEL、TICEN用于測試,CLKOUTEN用于RTC時鐘輸出控制。
  2. CTLEN位控制CPU和RTC之間的所有接口。因此,您應(yīng)該在RTC控件中將其設(shè)置為“1”,在系統(tǒng)重置后啟用數(shù)據(jù)寫入的例程。為了防止無意中寫入BCD計數(shù)器寄存器,應(yīng)該關(guān)閉電源前將CTLEN位清除為0。
  3. CLKRST是2^15^時鐘分頻器的計數(shù)器復位。在設(shè)置RTC時鐘之前,應(yīng)重置215時鐘分頻器以獲得精確的RTC操作。

四、RTC的操作

1. 設(shè)置時間

「舉例:」 我們要將當前時間設(shè)置為 「2020年11月11日, 15:24:50」

1) 先將RTC控制使能開啟,即RTCCON[0]置為1;2)然后將時間對應(yīng)的BCD格式數(shù)值,設(shè)置到應(yīng)對的寄存器,BCDYEAR 、BCDMON 、BCDDAY 、BCDHOUR 、BCDMIN 、BCDSEC;3) 將RTCCON[0]置為0,防止誤操作修改了時間;4)如果我們要訪問當前時間,可以直接讀取寄存器BCDYEAR 、BCDMON 、BCDDAY 、BCDHOUR 、BCDMIN 、BCDSEC。

void rtc_init(void)
{
 RTCCON = 1;//使能RTC控制寫功能
 RTC.BCDYEAR = 0x20;// 2020年11月11日, 15:24:50.以BCD碼格式寫入
 RTC.BCDMON = 0x11;
 RTC.BCDDAY = 0x11;
 RTC.BCDHOUR = 0x15;
 RTC.BCDMIN = 0x24;
 RTC.BCDSEC = 0x50;
 RTCCON = 0;//關(guān)閉RTC控制寫功能
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 集成電路
    +關(guān)注

    關(guān)注

    5367

    文章

    11162

    瀏覽量

    358401
  • 時鐘芯片
    +關(guān)注

    關(guān)注

    2

    文章

    240

    瀏覽量

    39737
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    511

    瀏覽量

    65903
  • 電阻電容
    +關(guān)注

    關(guān)注

    1

    文章

    40

    瀏覽量

    9466
收藏 人收藏

    評論

    相關(guān)推薦

    Cortex-A9處理器的精妙應(yīng)用

    卡片電腦等等。并且通過開發(fā)板內(nèi)的資料文檔可快速開發(fā)產(chǎn)品,縮短研發(fā)周期。 Cortex-A9代表——Rayeager PX2開發(fā)板 、微結(jié)構(gòu)  1.Cortex-A9兩種微架構(gòu)  可擴展
    發(fā)表于 11-03 17:02

    求ucosii 移植到cortex-A9教程

    想要把ucosii移植到cortex-A9,因為水平有限,希望有人幫忙,我們用的是DS-5軟件進行移植,最好是有個工程?。≈x謝?。。?/div>
    發(fā)表于 10-13 15:43

    AM4379 Cortex-A9試用體驗

    【創(chuàng)龍AM4379 Cortex-A9試用體驗】1.AM4379開發(fā)板開箱+電創(chuàng)龍TI AM4379 ARM Cortex A9開發(fā)板【創(chuàng)龍AM4379
    發(fā)表于 08-29 17:45

    ARM Cortex-A9的具體開發(fā)流程有哪些

    Linux的常用命令該怎樣去使用呢?ARM Cortex-A9的具體開發(fā)流程有哪些?ARM Cortex-A9的開發(fā)流程與51的有什么不同?
    發(fā)表于 11-12 07:53

    ARM Cortex-A9 MPCore 測試芯片技術(shù)手冊

    ARM Cortex-A9 MPCore 測試芯片技術(shù)手冊
    發(fā)表于 08-02 19:07

    Cortex-A9技術(shù)參考手冊

    Cortex-A9處理器是款高性能、低功耗的ARM宏單元,具有提供完整虛擬內(nèi)存功能的級高速緩存子系統(tǒng)。 Cortex-A9處理器實現(xiàn)ARMv7-
    發(fā)表于 08-17 06:53

    ARM Cortex-A9 MPCore

    The ARM Cortex-A9 MPCore multicore processor integrates the proven and highly successful ARM MPCore
    發(fā)表于 07-11 09:47 ?89次下載

    晶晨推出集成了ARM CORTEX-A9的芯片-AML8726-M

    ARM CORTEX-A9內(nèi)置1080p高清視頻解碼器、ARM Cortex-A9處理器和Mali&trade -400 3D圖像處理器的AML8726-M片系統(tǒng)為成本敏感的多媒體應(yīng)用提供出色的性能支持。
    發(fā)表于 06-19 15:59 ?3500次閱讀

    Cortex-A9處理器系列

    Cortex-A9處理器系列,有需要的朋友下來看看。
    發(fā)表于 01-22 13:57 ?27次下載

    收獲塊功能強大價值的Cortex-A9 SoC開發(fā)板

    秋天是收獲的季節(jié),您是否想靠自己的實力收獲塊功能強大價值150美元的Cortex-A9 SoC 開發(fā)板呢?
    的頭像 發(fā)表于 09-22 09:59 ?7319次閱讀

    Cortex-A9 MBIST ControllerTechnical Reference

    Cortex-A9 MBIST ControllerTechnical Reference
    發(fā)表于 10-26 08:59 ?8次下載
    <b class='flag-5'>Cortex-A9</b> MBIST ControllerTechnical Reference

    Altera SoC 合作伙伴研討會2013演講PPT——ARM Cortex-A9

    Altera SoC 合作伙伴研討會2013演講PPT——ARM Cortex-A9
    發(fā)表于 10-26 09:04 ?13次下載
    Altera SoC 合作伙伴研討會2013演講PPT——ARM <b class='flag-5'>Cortex-A9</b>

    cortex-a9是什么處理器_cortex-a9處理器介紹

    本文首先介紹了cortex-a9是什么處理器,其次介紹了cortex-a9處理器的單核與多核,最后闡述了cortex-a9處理器的特點及優(yōu)勢。
    發(fā)表于 04-18 16:41 ?2.5w次閱讀

    ARM Cortex-A9芯片技術(shù)參考手冊

    ARM Cortex-A9技術(shù)參考手冊(TRM)描述了CortexA9處理器的單處理器版本,包括可選的預加載引擎。寄存器、指令、緩存、內(nèi)存和內(nèi)存接口指南。
    發(fā)表于 05-09 08:00 ?68次下載
    ARM <b class='flag-5'>Cortex-A9</b>芯片技術(shù)參考手冊

    搞懂Cortex-A9 RTC(下)

    RTC是集成電路,通常稱為時鐘芯片。在個嵌入式系統(tǒng)中,通常采用RTC來提供可靠的系統(tǒng)時間,包括時分秒和年月日等,而且要求在系統(tǒng)處于關(guān)機狀態(tài)下它也能正常工作(通常采用后備電池供電)。 它的外圍
    的頭像 發(fā)表于 05-26 15:21 ?545次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b><b class='flag-5'>Cortex-A9</b> <b class='flag-5'>RTC</b>(下)