ERTC接口簡(jiǎn)介
ERTC計(jì)數(shù)邏輯位于電池供電域,只要電池供電域有電,ERTC便會(huì)一直運(yùn)行,不受系統(tǒng)復(fù)位以及VDD掉電影響,ERTC主要具有以下功能:
― 日歷功能:年、月、日、時(shí)、分、秒
― 鬧鐘功能:鬧鐘A、鬧鐘B
― 周期性喚醒功能
― 入侵檢測(cè)功能
― 校準(zhǔn)功能:精密校準(zhǔn)、粗略校準(zhǔn)
圖1. ERTC框圖
ERTC功能
各型號(hào)ERTC功能差異
各型號(hào)ERTC基本功能相同,只是各個(gè)型號(hào)之間,可能去掉了一些更高級(jí)的功能,所有保留的功能程序兼容。
表1. 各型號(hào)ERTC差異
√:表示支持該功能,且功能相同。
×:表示不支持該功能。
寄存器訪問
寄存器寫保護(hù)
上電復(fù)位后ERTC寄存器處于寫保護(hù)狀態(tài),需要先解除寫保護(hù),才能寫配置ERTC寄存器。
需要注意的是ERTC_STS[14:8]、ERTC_TAMP和ERTC_BPRx寄存器不受寫保護(hù)。
解鎖步驟:
1) 使能PWC接口時(shí)鐘
2) 解鎖電池供電域?qū)懕Wo(hù)
3) 依次向ERTC_WP寄存器寫入0xCA,0x53,解鎖寫保護(hù)
若向ERTC_WP寄存器寫入錯(cuò)誤的值,將重新激活寫保護(hù)
4) 配置ERTC寄存器
下表列舉了ERTC寄存器受寫保護(hù)狀態(tài),以及寫入的條件:
表2. ERTC寄存器
寄存器復(fù)位
ERTC寄存器處于電池供電域,可以CRM_BPDC的BPDRST進(jìn)行電池供電域復(fù)位,也可以由提供的庫(kù)函數(shù)對(duì)每個(gè)寄存器寫默認(rèn)值進(jìn)行復(fù)位。
ERTC復(fù)位相關(guān)函數(shù):
電池供電域復(fù)位
將ERTC所有寄存器恢復(fù)成默認(rèn)值
時(shí)鐘設(shè)置
時(shí)鐘源選擇
ERTC時(shí)鐘源經(jīng)過選擇后輸入到分頻器A和分頻器B,最終得到1Hz的時(shí)鐘用來(lái)更新日歷。
圖2. ERTC時(shí)鐘結(jié)構(gòu)
ERTC的時(shí)鐘源共有3種可以選擇:
― LEXT:外部低速晶振,通常為32.768kHz
― LICK:內(nèi)部低速晶振,通常典型值為40kHz范圍(30~60kHz),詳情請(qǐng)見各型號(hào)的datasheet
― HEXT_DIV:外部高速晶振分頻后得到的時(shí)鐘,不同的型號(hào)下,分頻值不一樣,請(qǐng)見表3
表3. 各型號(hào)HEXT的預(yù)分頻值
表4. 各時(shí)鐘源優(yōu)缺點(diǎn)對(duì)比
ERTC時(shí)鐘源設(shè)置相關(guān)函數(shù):
選擇對(duì)應(yīng)時(shí)鐘使能
選擇ERTC時(shí)鐘
使能ERTC時(shí)鐘
預(yù)分頻器設(shè)置
通過預(yù)分頻器A和預(yù)分頻器B將獲得1Hz時(shí)鐘,計(jì)算公式如下:
推薦在應(yīng)用中將預(yù)分頻器A設(shè)置成最大值(127)這樣可以最大程度降低功耗。
表5. 分頻設(shè)置舉例
設(shè)置ERTC預(yù)分頻器
ERTC時(shí)鐘初始化舉例:
日歷
ERTC日歷格式如下圖所示,包含有年、月、日、星期、時(shí)、分、秒、亞秒。
圖3. 日歷格式
時(shí)間格式設(shè)置
時(shí)間格式可以選擇24小時(shí)或者12小時(shí)格式,如果為24小時(shí)格式時(shí),AM/PM字段無(wú)意義,在初始化日歷之前,應(yīng)該首先選擇時(shí)間格式。
時(shí)間格式設(shè)置函數(shù):
例如設(shè)置日歷格式為24小時(shí)模式
日歷初始化
通過配置ERTC_DATE和ERTC_TIME寄存器可以設(shè)置日歷時(shí)間:
日歷值設(shè)置函數(shù):
例如設(shè)置時(shí)間為2020-05-01 1200星期六
日歷讀取
通過讀取ERTC_DATE、ERTC_TIME和ERTC_SBS寄存器可以讀取日歷時(shí)間,日歷讀取有兩種模式分別為同步讀取(DREN=0)和異步讀取(DREN=1)。
― 同步讀?。篍RTC每?jī)蓚€(gè)ERTC_CLK周期,將日歷值同步到影子寄存器ERTC_DATE、ERTC_TIME和ERTC_SBS,同步完成后UPDF將置1。讀取低階寄存器時(shí)會(huì)將高階寄存器值鎖定,直到讀取ERTC_DATE寄存器,這保證讀取的ERTC_SBS、ERTC_TIME、ERTC_DATE寄存器值來(lái)自同一時(shí)刻。
例如讀取ERTC_SBS,會(huì)將ERTC_TIME、ERTC_DATE寄存器值鎖定。
― 異步讀?。篍RTC直接讀取電池供電域的ERTC時(shí)鐘和日歷值,這樣避免了由于同步時(shí)間帶來(lái)的誤差。異步讀取時(shí),UPDF標(biāo)志將由硬件清0。為保證異步讀取時(shí)鐘和日歷值來(lái)自同一時(shí)刻,軟件必須連續(xù)兩次讀取時(shí)鐘和日歷值,并比較兩次結(jié)果是否一致,如果不一致應(yīng)該再讀,直到兩次結(jié)果一致。
在大多數(shù)應(yīng)用下,都推薦使用同步讀取模式,因?yàn)檫@樣可以簡(jiǎn)化程序。
等待同步函數(shù)(等待UPDF置1)
讀取模式設(shè)置函數(shù)
例如設(shè)置讀取模式為同步讀取
日歷讀取函數(shù):
結(jié)構(gòu)體ertc_time_type里面參數(shù)含義如下:
― year:年
― month:月
― day:日
― hour:時(shí)
― min:分
― sec:秒
― week:星期幾
― ampm:上午/下午(只有在12小時(shí)制時(shí),數(shù)據(jù)有效)
亞秒讀取
亞秒值為預(yù)分頻器DIV_B的計(jì)數(shù)值,預(yù)分頻器DIV_B是一個(gè)遞減計(jì)數(shù)器,例如當(dāng)DIV_B=255時(shí),1個(gè)亞秒值代表的時(shí)間為1/(255+1)秒。
亞秒讀取函數(shù):
鬧鐘
ERTC包含兩個(gè)完全相同的鬧鐘A、鬧鐘B,鬧鐘值由ERTC_ALASBS/ERTC_ALA(ERTC_ALBSBS/ERTC_ALB)設(shè)定,開啟鬧鐘后,當(dāng)設(shè)定的鬧鐘值匹配日歷值時(shí)ALAF/ALBF置1,發(fā)生鬧鐘事件。通過MASKx位,可選擇性的屏蔽日歷字段,被屏蔽的字段不參與鬧鐘匹配。
圖4. 日鬧鐘匹配
因?yàn)轸[鐘A和鬧鐘B完全一樣,所以后面的舉例都用鬧鐘A舉例
鬧鐘格式選擇:
― ERTC_ALA的WKSEL=0時(shí):日期、時(shí)、分、秒、亞秒
― ERTC_ALA的WKSEL=1時(shí):星期、時(shí)、分、秒、亞秒
鬧鐘的各個(gè)字段日期/星期、時(shí)、分、秒、亞秒均可通過MASK位屏蔽,使鬧鐘的產(chǎn)生更加的靈活
― MASK4=1:鬧鐘和日/星期無(wú)關(guān)
― MASK3=1:鬧鐘和小時(shí)無(wú)關(guān)
― MASK2=1:鬧鐘和分鐘無(wú)關(guān)
― MASK1=1:鬧鐘和秒鐘無(wú)關(guān)
例如在WKSEL=0時(shí),將鬧鐘設(shè)置為15號(hào)1210
表6. 屏蔽設(shè)置舉例
通過設(shè)置ERTC_ALASBS的SBSMSK可以對(duì)亞秒進(jìn)行屏蔽:
― SBSMSK=0:不匹配亞秒,鬧鐘與亞秒無(wú)關(guān);
― SBSMSK=1:只匹配SBS[0];
― SBSMSK=2:只匹配SBS[1:0];
― SBSMSK=3:只匹配SBS[2:0];
― ...
― SBSMSK=14:只匹配SBS[13:0];
― SBSMSK=15:匹配SBS[14:0]。
―例如在DIV_A=127,DIV_B=255(亞秒)時(shí),只考慮亞秒的觸發(fā)鬧鐘
表7. 亞秒屏蔽設(shè)置舉例
鬧鐘相關(guān)函數(shù)
日期/星期、時(shí)、分、秒屏蔽
選擇日期或者星期格式
設(shè)置鬧鐘值:日期/星期、時(shí)、分、秒、AM/PM
設(shè)置鬧鐘亞秒值以及屏蔽
鬧鐘中斷使能
獲取當(dāng)前配置的鬧鐘值
獲取當(dāng)前配置的鬧鐘亞秒值
周期性自動(dòng)喚醒
周期性喚醒功能用于周期性自動(dòng)喚醒低功耗模式,喚醒周期由VAL[15:0]設(shè)定。當(dāng)喚醒計(jì)數(shù)器值由VAL值遞減至0時(shí),WATF標(biāo)志置1,產(chǎn)生喚醒事件,同時(shí)喚醒計(jì)數(shù)器值重載VAL值。
可以根據(jù)需要選擇不同的時(shí)鐘源,通過寄存器WATCLK[2:0]配置
― 000:ERTC_CLK/16;
― 001:ERTC_CLK/8;
― 010:ERTC_CLK/4;
― 011:ERTC_CLK/2;
― 10x:1Hz;
― 11x:1Hz,喚醒計(jì)數(shù)值增加216,喚醒時(shí)間=WAT+216+1。
圖5. 喚醒定時(shí)器時(shí)鐘選擇
當(dāng)WATCLK[2:0]=11x時(shí),如果日歷時(shí)鐘為1Hz,可獲得最長(zhǎng)的喚醒時(shí)間=65535+216+1=131072秒。
如果日歷時(shí)鐘調(diào)整為<1Hz(增大預(yù)分頻器DIV_B的值),還可以獲得更長(zhǎng)的喚醒時(shí)間。
周期自動(dòng)喚醒相關(guān)函數(shù)
喚醒計(jì)數(shù)器時(shí)鐘源選擇
設(shè)置喚醒計(jì)數(shù)器值
獲取喚醒計(jì)數(shù)器值
喚醒定時(shí)器使能
入侵檢測(cè)
ERTC提供了兩組入侵檢測(cè)TAMP1和TAMP2,當(dāng)在發(fā)生入侵事件時(shí),將自動(dòng)清除ERTC電池供電數(shù)據(jù)寄存器(ERTC_BPRx)的值,也支持發(fā)生入侵事件時(shí)產(chǎn)生事件戳。
圖6. 入侵檢測(cè)
入侵檢測(cè)1引腳可以選擇
― ERTC_MUX1:引腳1,通常為PC13
― ERTC_MUX2:引腳2,通常為PA0
入侵檢測(cè)2引腳為固定ERTC_MUX2(通常為PA0)
入侵檢測(cè)模式分為邊沿檢測(cè)和電平檢測(cè)
― 邊沿檢測(cè):當(dāng)檢測(cè)到了有效的邊沿觸發(fā)入侵檢測(cè),分為上升沿觸發(fā)、下降沿觸發(fā)
― 電平檢測(cè):當(dāng)有效電平長(zhǎng)度達(dá)到了設(shè)定的時(shí)間,觸發(fā)發(fā)入侵檢測(cè),分為高電平觸發(fā)、低電平觸發(fā)。
其中邊沿檢測(cè)比較簡(jiǎn)單,只需要配置有效邊沿并使能就行了,電平檢測(cè)需要配置的參數(shù)會(huì)比較多,需要配置以下參數(shù):
采樣頻率
通過配置TPFREQ寄存器,可以配置的入侵檢測(cè)頻率為
― ERTC_CLK/32768;
― ERTC_CLK/16384;
― ERTC_CLK/8192;
― ERTC_CLK/4096;
― ERTC_CLK/2048;
― ERTC_CLK/1024;
― ERTC_CLK/512;
― ERTC_CLK/256。
例如當(dāng)ERTC_CLK=32768Hz時(shí),配置檢測(cè)頻率為ERTC_CLK/256時(shí),此時(shí)入侵檢測(cè)頻率為32768/256=128Hz
入侵上拉
通過TPPU配置可以打開或者關(guān)閉入侵上拉功能,當(dāng)使能了入侵上拉電阻時(shí),可以通過TPPR設(shè)置在入侵檢測(cè)前的上拉預(yù)充電時(shí)間,時(shí)間可配置為如下:
― 1個(gè)ERTC_CLK;
― 2個(gè)ERTC_CLK;
― 4個(gè)ERTC_CLK;
― 8個(gè)ERTC_CLK。
圖7. 預(yù)充電時(shí)間為4個(gè)ERTC CLK示意圖
入侵濾波
通過TPFLT設(shè)置入侵檢測(cè)的濾波時(shí)間,可以配置下面4種模式
― 無(wú)濾波,當(dāng)1次采樣有效,判定入侵事件發(fā)生;
― 連續(xù)2次采樣有效,判定入侵事件發(fā)生;
― 連續(xù)4次采樣有效,判定入侵事件發(fā)生;
― 連續(xù)8次采樣有效,判定入侵事件發(fā)生。
入侵檢測(cè)相關(guān)函數(shù)
入侵檢測(cè)1引腳選擇
入侵檢測(cè)上拉使能配置
上拉預(yù)充電時(shí)間設(shè)置
濾波時(shí)間設(shè)置
入侵檢測(cè)頻率設(shè)置
入侵檢測(cè)有效邊沿設(shè)置
發(fā)生入侵事件時(shí),保存時(shí)間戳
入侵檢測(cè)使能
時(shí)間戳
時(shí)間戳功能用于在發(fā)生時(shí)間戳事件時(shí)(入侵引腳檢測(cè)到有效邊沿),將當(dāng)前的日歷值保存到時(shí)間戳寄存器中。
圖8. 時(shí)間戳檢測(cè)
時(shí)間戳使用
― 單獨(dú)使用:可以選擇引腳進(jìn)行檢測(cè)
ERTC_MUX1:引腳1,通常為PC13
ERTC_MUX2:引腳2,通常為PA0
― 在發(fā)生入侵事件時(shí)保存時(shí)間戳,在這種模式下,需要先將入侵檢測(cè)功能正確配置好
時(shí)間戳在單獨(dú)使用時(shí)可以配置為上升沿檢測(cè)或者下降沿檢測(cè),在入侵檢測(cè)觸發(fā)時(shí),取決于入侵檢測(cè)的配置
時(shí)間戳溢出
當(dāng)發(fā)生時(shí)間戳?xí)r,TSF位置1,此時(shí)若再次發(fā)生時(shí)間戳事件,TSOF標(biāo)志位將置1,但時(shí)間戳寄存器并不會(huì)更新,仍保留第一次觸發(fā)的值。
時(shí)間戳相關(guān)函數(shù)
時(shí)間戳引腳選擇
檢測(cè)邊沿設(shè)置
時(shí)間戳使能
獲得時(shí)間戳?xí)r間
獲得時(shí)間戳亞秒
參考時(shí)鐘檢測(cè)
為保證日歷長(zhǎng)時(shí)間運(yùn)行的精確性,ERTC提供了時(shí)鐘同步功能(低功耗模式不可用),用精度更高的參考時(shí)鐘(一般用50Hz或者60Hz的市電)校準(zhǔn)更新日歷的1Hz時(shí)鐘。
圖9. 參考時(shí)鐘檢測(cè)
參考時(shí)鐘檢測(cè)功能開啟后,在每次更新日歷值的前7個(gè)ck_a周期檢測(cè)參考時(shí)鐘邊沿,若檢測(cè)到邊沿,將使用此邊沿更新日歷值(更新秒鐘),后續(xù)采用3個(gè)ck_a周期檢測(cè)參考時(shí)鐘邊沿。每一次檢測(cè)到參考時(shí)鐘邊沿時(shí),都會(huì)將分頻器A的值進(jìn)行重載,這會(huì)使得內(nèi)部1Hz的日歷時(shí)鐘與參考時(shí)鐘邊沿剛好對(duì)齊,當(dāng)內(nèi)部1Hz時(shí)鐘出現(xiàn)微小偏移時(shí),利用更精確的參考時(shí)鐘,將1Hz時(shí)鐘微調(diào)至與參考時(shí)鐘邊沿對(duì)齊。當(dāng)沒有檢測(cè)到參考時(shí)鐘邊沿時(shí),ERTC會(huì)利用原來(lái)的時(shí)鐘源更新日歷。
需要注意的是,使能參考時(shí)鐘功能后,需要將DIVA、DIVB設(shè)置為復(fù)位值(0x7F、0xFF),并且時(shí)鐘同步功能不能與粗校準(zhǔn)功能同時(shí)開啟。
參考時(shí)鐘檢測(cè)使能函數(shù)
校準(zhǔn)
ERTC提供了兩種校準(zhǔn)方法:粗略校準(zhǔn)和精密校準(zhǔn)。但兩種校準(zhǔn)方法不能同時(shí)使用。
粗略校準(zhǔn)
粗略數(shù)字校準(zhǔn)通過增加或減少ck_a周期值來(lái)實(shí)現(xiàn)提前或推遲更新日歷值的功能。
圖10. 粗略校準(zhǔn)
正校準(zhǔn)時(shí)(CALDIR=0):在64分鐘的前2xCALVAL分鐘時(shí)間內(nèi),每分鐘(約15360個(gè)ck_a周期)插入2個(gè)ck_a周期,相當(dāng)于提前更新日歷。
負(fù)校準(zhǔn)時(shí)(CALDIR=1):在64分鐘前的2xCALVAL分鐘時(shí)間內(nèi),每分鐘(約15360個(gè)ck_a周期)忽略1個(gè)ck_a周期,相當(dāng)于推遲更新日歷。
注:粗略數(shù)字校準(zhǔn)至少要將DIVA值設(shè)置為6。
精密校準(zhǔn)
區(qū)別于粗略數(shù)字校準(zhǔn),精密校準(zhǔn)的校準(zhǔn)效果更好且校準(zhǔn)更加均勻。開啟精密校準(zhǔn)校準(zhǔn)功能后,將均勻增加或減少ERTC_CLK來(lái)達(dá)到校準(zhǔn)的目的。
圖11. 精密校準(zhǔn)
當(dāng)ERTC_CLK為32.768kHz時(shí),精密校準(zhǔn)周期約為220個(gè)ERTC_CLK(32秒)。DEC[8:0]值指定了220個(gè)ERTC_CLK中忽略的脈沖數(shù),最多可忽略511個(gè)脈沖;將ADD置1,可在220個(gè)ERTC_CLK中插入512個(gè)脈沖。兩者搭配使用,可在220個(gè)ERTC_CLK周期進(jìn)行-511~+512的調(diào)整。
有效校準(zhǔn)頻率FSCAL:
當(dāng)分頻器A值小于3時(shí),會(huì)按照ADD等于0校準(zhǔn)。此時(shí)應(yīng)降低分頻器B值來(lái)實(shí)現(xiàn)每秒增加8個(gè)ERTC_CLK,也就是32秒增加256個(gè)ERTC_CLK搭配DEC[8:0]位,可在220個(gè)ERTC_CLK周期進(jìn)行-255~+256的調(diào)整。此時(shí)有效校準(zhǔn)頻率FSCAL:
精密數(shù)字校準(zhǔn)的校準(zhǔn)周期還可選擇8秒或16秒(由CAL8和CAL16配置),8秒校準(zhǔn)周期的優(yōu)先級(jí)更高,同時(shí)使能8秒和16秒校準(zhǔn)周期,將優(yōu)先選擇8秒校準(zhǔn)周期。
校準(zhǔn)相關(guān)函數(shù)
精密校準(zhǔn)配置并使能
粗略校準(zhǔn)配置
粗略校準(zhǔn)使能
事件輸出功能
ERTC提供了一組復(fù)用功能輸出,可以輸出以下事件:
― 校準(zhǔn)輸出:512Hz、1Hz
― 事件輸出:鬧鐘A、鬧鐘B、喚醒事件
圖12. 事件輸出
通常ERTC MUX1引腳為PC13
當(dāng)輸出模式為事件輸出時(shí)(鬧鐘A、鬧鐘B、喚醒事件),可以通過OUTTYPE選擇輸出類型為開漏或是推挽,通過OUTP配置輸出極性。
事件輸出相關(guān)函數(shù)
事件輸出設(shè)置(鬧鐘A、鬧鐘B、喚醒事件)
校準(zhǔn)輸出選擇(512Hz、1Hz)
校準(zhǔn)輸出使能
電池供電數(shù)據(jù)寄存器
ERTC一共提供了20個(gè)32位電池供電數(shù)據(jù)寄存器,可以在只由電池供電下保存數(shù)據(jù),不會(huì)被系統(tǒng)復(fù)位所復(fù)位,只能通過電池供電域復(fù)位或入侵事件進(jìn)行復(fù)位
相關(guān)函數(shù)
寫電池供電數(shù)據(jù)寄存器
讀電池供電數(shù)據(jù)寄存器
中斷
當(dāng)發(fā)生鬧鐘A、鬧鐘B、周期性喚醒事件時(shí),ERTC可產(chǎn)生中斷。要使能ERTC中斷可按以下操作配置:
― 將ERTC對(duì)應(yīng)中斷的EXINT線配置為中斷模式并使能,有效沿選擇上升沿。
― 使能ERTC中斷對(duì)應(yīng)的NVIC通道。
― 使能對(duì)應(yīng)的ERTC中斷控制位。
下表說(shuō)明了ERTC時(shí)鐘源、事件以及中斷對(duì)喚醒低功耗模式的影響:
表8. ERTC喚醒低功耗模式
表9. 中斷控制
表10. 各型號(hào)中斷對(duì)應(yīng)EXINT線
表11. 各型號(hào)中斷對(duì)應(yīng)中斷向量號(hào)
表12. 中斷向量對(duì)應(yīng)中斷函數(shù)
中斷、事件相關(guān)函數(shù)
事件中斷使能
獲取相應(yīng)中斷是否使能
標(biāo)志獲取
標(biāo)志清除
中斷配置示例:以AT32F435的鬧鐘A為例
案例 讀寫電池供電數(shù)據(jù)寄存器
功能簡(jiǎn)介
對(duì)電池供電數(shù)據(jù)寄存器(ERTC_BPRx)進(jìn)行讀寫訪問。
資源準(zhǔn)備
1) 硬件環(huán)境:
對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD
2) 軟件環(huán)境
projectat_start_f4xxexamplesertcpr_domain
注:所有project都是基于keil 5而建立,若用戶需要在其他編譯環(huán)境上使用,請(qǐng)參考
AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各種編譯環(huán)境(例如IAR6/7,keil 4/5)進(jìn)行簡(jiǎn)單修改即可。
軟件設(shè)計(jì)
1) 配置流程
開啟PWC時(shí)鐘
使能電池供電域?qū)懕Wo(hù)
檢查電池供電域數(shù)據(jù)是否正確,如果正確就跳過初始化,如果不正確就初始化ERTC并向電池供電域?qū)懮蠑?shù)據(jù)
2) 代碼介紹
main函數(shù)代碼描述
實(shí)驗(yàn)效果
信息通過串口打印出來(lái),在電腦上通過串口助手觀看打印信息。
如果寄存器里數(shù)據(jù)正確打印bpr reg=>none reset。
如果寄存器里數(shù)據(jù)正確打印bpr reg=>reset。
主函數(shù)里每秒打印一次日歷信息。
案例 使用日歷以及鬧鐘功能
功能簡(jiǎn)介
演示日歷功能、鬧鐘功能的使用。
資源準(zhǔn)備
1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的 AT-START BOARD2) 軟件環(huán)境projectat_start_f4xxexamplesertccalendar注:所有project都是基于keil 5而建立,若用戶需要在其他編譯環(huán)境上使用,請(qǐng)參考AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各種編譯環(huán)境(例如IAR6/7,keil 4/5)進(jìn)行簡(jiǎn)單修改即可。
軟件設(shè)計(jì)
1) 配置流程
開啟PWC時(shí)鐘
使能電池供電域?qū)懕Wo(hù)
檢查日歷是否已經(jīng)初始化,如果正確就跳過初始化,如果不正確就初始化日歷以及鬧鐘
主函數(shù)里每秒打印一次日歷信息
在21-05-01 1210時(shí)刻發(fā)生鬧鐘。
2) 代碼介紹
main函數(shù)代碼描述
ERTC初始化ertc_config函數(shù)代碼描述
鬧鐘中斷函數(shù)代碼描述
實(shí)驗(yàn)效果
信息通過串口打印出來(lái),在電腦上通過串口助手觀看打印信息。
主函數(shù)里每秒打印一次日歷信息。
在21-05-01 1210時(shí)刻發(fā)生鬧鐘。
案例 使用LICK時(shí)鐘并校準(zhǔn)
功能簡(jiǎn)介
使用LICK時(shí)鐘作為ERTC時(shí)鐘,并通過定時(shí)器測(cè)量出LICK時(shí)鐘頻率,通過得到的頻率值,調(diào)整ERTC分頻,達(dá)到在一定范圍內(nèi)校準(zhǔn)時(shí)間的效果
資源準(zhǔn)備
1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境projectat_start_f4xxexamplesertclick_calibration注:所有project都是基于keil 5而建立,若用戶需要在其他編譯環(huán)境上使用,請(qǐng)參考AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各種編譯環(huán)境(例如IAR6/7,keil 4/5)進(jìn)行簡(jiǎn)單修改即可。
軟件設(shè)計(jì)
1) 配置流程
ERTC初始化
配置測(cè)量LICK頻率定時(shí)器
根據(jù)測(cè)量到的頻率重新配置ERTC分頻
2) 代碼介紹
main函數(shù)代碼描述
實(shí)驗(yàn)效果
信息通過串口打印出來(lái),在電腦上通過串口助手觀看打印信息。
通串口打印出當(dāng)前測(cè)量出的LICK的頻率以及DIV_A、DIV_B的值。
每秒鐘打印一次日歷。
案例 入侵檢測(cè)
功能簡(jiǎn)介
演示入侵檢測(cè)功能使用,PC13腳當(dāng)檢測(cè)到一個(gè)上升沿后將觸發(fā)入侵檢測(cè),當(dāng)入侵事件發(fā)生時(shí),電池供電數(shù)據(jù)寄存器將會(huì)被清除。
資源準(zhǔn)備
1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境projectat_start_f4xxexamplesertc amper注:所有project都是基于keil 5而建立,若用戶需要在其他編譯環(huán)境上使用,請(qǐng)參考AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各種編譯環(huán)境(例如IAR6/7,keil 4/5)進(jìn)行簡(jiǎn)單修改即可。
軟件設(shè)計(jì)
1) 配置流程
ERTC初始化
初始化入侵檢測(cè)
初始化電池供電寄存器
2) 代碼介紹
main函數(shù)代碼描述
入侵檢測(cè)中斷處理函數(shù)代碼描述
實(shí)驗(yàn)效果
信息通過串口打印出來(lái),在電腦上通過串口助手觀看打印信息。
當(dāng)發(fā)生入侵事件時(shí)(PC13出現(xiàn)上升沿),在入侵中斷函數(shù)里打印電池供電寄存器被清除的信息。
案例 時(shí)間戳
功能簡(jiǎn)介
演示時(shí)間戳功能使用,PC13腳當(dāng)檢測(cè)到一個(gè)上升沿后將觸發(fā)時(shí)間戳,在時(shí)間戳中斷里打印發(fā)生事件的時(shí)刻。
資源準(zhǔn)備
1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境projectat_start_f4xxexamplesertc ime_stamp注:所有project都是基于keil 5而建立,若用戶需要在其他編譯環(huán)境上使用,請(qǐng)參考AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各種編譯環(huán)境(例如IAR6/7,keil 4/5)進(jìn)行簡(jiǎn)單修改即可。
軟件設(shè)計(jì)
1) 配置流程
ERTC初始化
初始化時(shí)間戳
2) 代碼介紹
main函數(shù)代碼描述
時(shí)間戳中斷處理函數(shù)代碼描述
實(shí)驗(yàn)效果
信息通過串口打印出來(lái),在電腦上通過串口助手觀看打印信息。
當(dāng)發(fā)生時(shí)間戳事件時(shí)(PC13出現(xiàn)上升沿),在中斷里打印當(dāng)前保存的時(shí)間戳。
案例 周期喚醒定時(shí)器
功能簡(jiǎn)介
演示周期喚醒定時(shí)器功能使用。
資源準(zhǔn)備
1) 硬件環(huán)境:對(duì)應(yīng)產(chǎn)品型號(hào)的AT-START BOARD2) 軟件環(huán)境projectat_start_f4xxexamplesertcwakeup_timer注:所有project都是基于keil 5而建立,若用戶需要在其他編譯環(huán)境上使用,請(qǐng)參考AT32xxx_Firmware_Library_V2.x.xprojectat_start_xxx emplates中各種編譯環(huán)境(例如IAR6/7,keil 4/5)進(jìn)行 簡(jiǎn)單修改即可。
軟件設(shè)計(jì)
1) 配置流程
ERTC初始化
初始化周期喚醒定時(shí)器
2) 代碼介紹
main函數(shù)代碼描述
周期喚醒中斷處理函數(shù)代碼描述
實(shí)驗(yàn)效果
信息通過串口打印出來(lái),在電腦上通過串口助手觀看打印信息。
每個(gè)5秒發(fā)生一次周期性喚醒事件,在中斷里打印出信息。
每秒鐘打印一次日歷。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17362瀏覽量
352846 -
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121311 -
接口
+關(guān)注
關(guān)注
33文章
8720瀏覽量
152035
原文標(biāo)題:AT32講堂022 | AT32 MCU ERTC的基本功能
文章出處:【微信號(hào):AT32 MCU 雅特力科技,微信公眾號(hào):AT32 MCU 雅特力科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論