STM8 自動喚醒AWU
AWU是用來當(dāng)MCU進(jìn)入低功耗的活躍停機(jī)(Active Halt) 模式時提供一個內(nèi)部的喚醒時間基準(zhǔn)。該時間基準(zhǔn)的時鐘是由內(nèi)部的低速RC振蕩器時鐘(LSI)或者通過預(yù)分頻的HSE晶振時鐘來提供的。
LSI 時鐘測量
在使用LSI低速內(nèi)部時鐘時,為了確保最好的精度,它的頻率可以通過TIM3的輸入捕捉1 來測定。
AWU 時鐘框圖
AWU功能描述
AWU 操作
為了使用AWU功能,按順序執(zhí)行如下步驟:
1. 使用AWU_CSR寄存器的MSR位和TIM3的輸入捕捉通道1來檢測LS的時鐘頻率;
2. 通過寫AWU_APR 的APR[5:0]位來定義適當(dāng)?shù)念A(yù)分頻值;
3. 通過寫AWU_TBR 的AWUTB[3:0]來選擇需要的自動喚醒延時;
4. 置位AWU_CSR 的AWUEN 位;
5. 執(zhí)行HALT指令。
注意: 計(jì)數(shù)器僅僅在HALT指令之后MCU進(jìn)入活躍停機(jī)模式時才開始計(jì)數(shù)(請參考電源管理的活躍停機(jī)模式章節(jié)),AWU中斷同時被使能。
預(yù)分頻計(jì)數(shù)器僅僅在APR[5:0] 值不同于它的復(fù)位值0x3F值時才開始計(jì)數(shù)。
空閑模式
如果不使用AWU,必須載入‘0000’值到AWU_TBR 的AWUTB[3:0]位來降低功耗。
時基選擇
請參考AWU_PAR 和AWU_TBR 的說明。
AWU的時間間隔取決于 AWUTB[3:0] 位的值和 APR[5:0] 位的值 (APRDIV),可以定義15種不重疊的時間間隔, 如下所示:
AWUTB[3:0] 選擇
為了獲得AWUTB[3:0]和APRDIV的正確值,用戶必須根據(jù)期望的時間間隔值來找出一個對應(yīng)的間隔范圍,從而找出對應(yīng)的AWUTB[3:0]值。然后選擇APRDIV的值來得到一個盡可能接近期望的時間間隔值。這個也可以使用AWU_TBR 描述中列出的公式獲得。
注意: 如果目標(biāo)值在和或者和之間時,必須選擇更靠近目標(biāo)的那個值。
當(dāng) fLS=128 kHz ,目標(biāo)時間是 78.5 ms 時的一個例子
正確的TB[3:0] 值是 1001 , “ 理想的。因此可以分配給 APR DIV 的值就是 39 ,這樣給定的實(shí)際的間隔時間是 78 ms。
LSI 低速內(nèi)部時鐘頻率檢測
在經(jīng)過出廠校驗(yàn)后,在全溫度范圍內(nèi)低速內(nèi)部RC(LSI)振蕩器的頻率離散性是128 kHz +/- 12.5% 。為了獲得精確的AWU時間間隔或者蜂鳴器輸出,必須精確測量LSI頻率。
可采用如下的步驟:
1. 將AWU_CSR 的MSR位置1來把LSI的內(nèi)部時鐘連接到TIM3定時器的ICAP1 ;
2. 通過定時器的輸入捕捉中斷來測量LSI的時鐘頻率;
3. 到向AWU_APR 的 APR [5:0] 位寫入一個適當(dāng)?shù)闹祦碚{(diào)整AWU定時間隔到期望的時間間隔。
AWUTB[3:0]位可以被更改來選擇不同的時間間隔。
LSI的時鐘頻率測量方法也可以被用來校準(zhǔn)蜂鳴器的頻率
評論