娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月06日(星期日)

2021年04月06日 | 關于STM32中RTC的校準方法

發布者:Xiaohan521 來源: eefocus關鍵字:STM32  RTC  校準方法 手機看文章 掃描二維碼
隨時隨地手機看文章

實現RTC 校準的核心之一是庫文件Stm321f0x_bkp.c中的void BKP_SetRTCCalibrationValue (uint8_t CalibrationValue) 函數。談到RTC校準的相關參考文檔包括AN2604.pdf,AN2821.pdf和AN2821.zip。這三個文檔都可以從STM32官方網站下載。


按照AN2604.pdf描述的原理,RTC 的校準值應在0-127之間。可實現的校準誤差對應為0-121ppm。相當于每30天跑快的秒數為0-314s。


這里應注意的一個關鍵問題是,RTC只能對跑快進行校準,不能對跑慢進行校準。如果手表晶振的標稱頻率是32768Hz,設其可能的誤差范圍是±2Hz,則實際頻率會在32766Hz-32770Hz之間。如果RTC的內部分頻系數設定為32768,則32768Hz是不需要校準的頻率,32768Hz-32770Hz是可以校準的頻率(最大校準能力大概是32772Hz)。但是32766Hz-32768Hz的跑慢頻率段則無法實現校準。為此,在推薦的校準方法中,使用32766代替32768作為分頻系數。這樣一來,32766Hz是不需要校準的頻率,32766Hz-32770Hz是可以校準的頻率范圍。


剩下的問題是,如何測量誤差,并以此得出校準值。一般來說有兩種方法,一是測量TamperPin的頻率值,然后計算ppm誤差;二是實際運行一定的天數,與標準時鐘做對比,先得到每30天跑快的秒數,然后計算ppm誤差。


AN2604.pdf,AN2821.pdf里都詳細描述了第一種方法。AN2821.zip則使用定時器T2對TamperPin的頻率值進行自動測量,實現了自動校準。自動校準確實簡化了用戶操作,但是它要依賴于8MHz主時鐘的精度。自動校準不可能達到比8MHz主時鐘精度更高的結果。所以給用戶留有手動校準界面仍是萬全之策。即使有自動校準,也可以手動、自動疊加作用。


另一方面,使用第一種方法進行校準,需要準確測量TamperPin的頻率值,比如達到511.xxxHz的精度。普通示波器做不到這一點,一般的頻率計也不行,高精度的頻率計才可以。只有搞計量的專業人士才會有這種設備。作為搞控制系統的人,搞一個非計量精度的時鐘,使用第一種方法還是有困難的。


第一種方法也好,第二種方法也罷,核心都是計算ppm誤差。我們先看一下第一種方法是如何計算ppm誤差的。由于使用了32766作為分頻系數,因此32766Hz是不需要校準的基準頻率。不要把32768Hz看得太重,現在它啥也不是,32766Hz可看成新的標稱頻率。TamperPin的頻率應為32766Hz/64=511.968Hz。這也就是文檔中計算誤差時反復使用的基準頻率。按照文檔中所舉的例子,若實測TamperPin的頻率為511.982Hz,則誤差為27.35ppm。計算過程為(511.982Hz-511.968Hz)/ 511.968Hz *10^6 = 27.35ppm。文檔最后給出最接近的校準值為28。注意這里是最后的校準值28,是由27 ppm查表得到的,而不是有些帖子中誤解的將27.35ppm近似成28ppm。


其實ppm誤差的計算公式為:ppm誤差=偏差/基準值*10的6次方。據此,采用第二種方法時,先得到了每30天跑快的秒數。這跑快的秒數就是偏差,而30天就是基準值。所以ppm誤差=每30天跑快的秒數/(30天*24小時*3600秒)*10的6次方。用這個公式可以容易地解釋文檔AN2604.pdf中提到的“0.65ppm大約是每月誤差1.7秒”。因為:1.7/(30*24*3600)*10^6 = 0.65ppm。


計算出了ppm誤差,還要解決查表。對文檔中給出的表格也不必看重。弄明白這個表格是怎么來的之后,可以使用簡單的計算公式代替查表。AN2604.pdf中說,若校準值為1,則RTC 校準時,每2的20次方個時鐘周期扣除1個時鐘脈沖。這相當于0.954ppm(1/2^20*10^6 = 0.954)。而校準值最大為127,所以最大可以減慢121ppm(0.954ppm*127 = 121)。所以這個校準表就是由簡單的乘除運算得來的,當然要使用浮點運算才可以得到準確結果。


以下是采用第二種方法實現的RTC 校準程序

首先定義了兩個常數,一是PPM_PER_STEP,準確到浮點數可表示的精度數0.9536743ppm。另一個是PPM_PER_SEC,即每30天快一秒對應的ppm誤差,準確到浮點數可表示的精度數0. 3858025ppm。


#define PPM_PER_STEP 0.9536743 //10^6/2^20.

#define PPM_PER_SEC 0.3858025 //10^6/(30d*24h*3600s).


然后定義全局變量FastSecPer30days。通過用戶菜單設定并傳遞到RTC校準程序里。


u16 FastSecPer30days = 117; //菜單輸入。117只用于演示。


實現的校準函數為:


void RTC_Calibration(void)

{

float Deviation = 0.0;

u8 CalibStep = 0;


Deviation = FastSecPer30days * PPM_PER_SEC; //得到ppm誤差

Deviation /= PPM_PER_STEP; //得到校準值的浮點數

CalibStep = (u8)Deviation; // 得到校準值的整形數

if(Deviation >= (CalibStep + 0.5))

CalibStep += 1; //四舍五入

if(CalibStep > 127)

CalibStep = 127; // 校準值應在0—127之間


BKP_SetRTCCalibrationValue(CalibStep); //調用庫函數


}

//函數結束RTC_Calibration


關鍵字:STM32  RTC  校準方法 引用地址:關于STM32中RTC的校準方法

上一篇:STM32之點亮LED燈程序
下一篇:STM32之獨立看門狗實驗

推薦閱讀

從財務危機到核心業務出售,這兩年東芝著實體會到了風口浪尖的滋味,隨著成功出售西屋電氣債權,也意味著西屋電氣給東芝帶來的困局正式宣告結束。西屋電氣以21.6億美元成功甩包,東芝的存儲芯片業務還有必要賣嗎?對此大家關注的問題,在2018慕尼黑上海電子展東芝專訪中,相關發言人向記者透露,東芝存儲業務出售的可能性還是非常大的,因受制于中國反壟...
眾所周知,工業機器人的四大家族,ABB、KUKA、FANUC、YASKAWA占有全球機器人市場75%以上。汽車和3C行業作為工業機器人應用的主要賽道,占有全球機器人市場三分之二的市場份額,其中汽車行業是工業機器人最大的下游行業,占比高達35%。汽車領域的工業機器人,除了四大家族的布局,還有意大利菲亞特克萊斯勒旗下的COMAU(柯馬)、日本的NACHI、川崎重工、...
示波器的放大器具有20 dB的電壓增益是由這個電路提供從0.5到50兆赫的頻率范圍內 。通過增加0.05 uF的電容值或嘗試取出電容器,我們可以延長低頻率響應,這條賽道 。一個小級別的輸入噪聲,特別是交付這個電路中,測得在15 MHz的帶寬范圍內約20uA。通過調整增益電位器引腳3和10之間的連接,然后調整精確的電壓增益為10的1 -kΩ的微調電位器校準增益的...
三星日前宣布,其新的5G寬帶無線電技術擴大了帶寬,幫助運營商部署具有成本效益和靈活性的5G網絡。這項新技術的核心是將其5G無線電的帶寬支持擴展到400MHz(是當前無線電200MHz帶寬的兩倍)。隨著帶寬的增加,移動運營商可以最大限度地利用其現有的中頻頻譜,同時使用更少的硬件。 ...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 滁州市| 鲁山县| 宜兰市| 高州市| 同德县| 仁化县| 永济市| 泰顺县| 和田县| 万源市| 都匀市| 威远县| 康定县| 武隆县| 怀柔区| 建德市| 二手房| 岢岚县| 屯门区| 西贡区| 芮城县| 阿瓦提县| 车致| 会理县| 长海县| 门头沟区| 井研县| 台东市| 梅州市| 内丘县| 丰原市| 兴化市| 修水县| 泽普县| 淄博市| 黑山县| 天长市| 鹤壁市| 类乌齐县| 南雄市| 柏乡县|