• <sub id="uhzwv"></sub>

    <sub id="uhzwv"></sub>
  • <dd id="uhzwv"></dd><wbr id="uhzwv"></wbr>
    <dd id="uhzwv"><address id="uhzwv"></address></dd>
    解析STM32內置時鐘和外置石英晶振的精度差別(含測試數據)

    解析STM32內置時鐘和外置石英晶振的精度差別(含測試數據)

    Clock Tree

    一般情況下,STM32系列都有內置RC振蕩器,在對時鐘信號精度要求不高的情況之下,這個內置RC振蕩器可以代替外置晶振,以達到節省成本和PCB空間之目的。

    但對振蕩器精度有著嚴格要求的電路應用,建議使用外部晶振來代替內部時鐘。

    內置RC振蕩器和外置晶振在精度上差距很大,分析如下:

    舉例:

    假如在某一個應用中,需要精確延時9999秒鐘,使用定時器進行定時中斷,設置10ms的定時周期,需要經過9999 / 10 * 1000=999900個定時周期才能完成。而定時器的時鐘源是由APB2(文檔上寫的是APB1,程序上是APB2)提供的,APB2的時鐘最終來自HSI、PLL、HSE三個時鐘源。

    由于直接測量9999秒鐘的時間較為繁瑣,我們選擇測量2秒鐘的時間即可,看看定時2秒鐘,內外時鐘源分別能提供怎樣的精度,采集設備使用邏輯分析儀或者示波器即可。

    • 使用HSI時鐘測到的2秒鐘的波形:

    解析STM32內置時鐘和外置石英晶振的精度差別(含測試數據)

    可以看到實際定時時間為2.004270583秒鐘,規定 α = Ta / Tb,其中Ta表示設定的定時時間,Tb表示實際定時時間,阿爾法為比例系數,大致按照比例縮放來計算,如果定時為9999秒,實際定時時間為Ta = Tb * α = 10020.3507797085秒,實際誤差高達21秒鐘。

    • 使用外置晶振進行測試:

    解析STM32內置時鐘和外置石英晶振的精度差別(含測試數據)

    可以看到實際定時時間為2.000074417秒,按照同樣的方法進行計算可以得到Ta = Tb * α = 9999.3720477915秒,誤差0.372秒。如果需要更高精度的定時時間,可以選擇更高精度的晶振,當然也可以使用頻率值高一點的晶振,然后下調PLL倍頻系數。

    通常情況下,晶振頻率誤差可看作為固定值,經PLL倍頻之后,誤差同樣會被放大,降低PLL倍頻系數可以減少誤差的放大。另外,可以直接選取標稱頻率為48MHz的晶振,SYSCLK的時鐘源直接選擇HSE即可,這樣誤差可以做到更小。

    0755-23068369
    一分钟快3网址 一分快3 uu快3 网盟彩神IV 百姓购彩大厅在线购彩 彩神v在线登录