MCU 中的內(nèi)部振蕩器微調(diào)
由于它們的缺點,MCU 中的內(nèi)部振蕩器具有微調(diào)其頻率的機制,這通常是通過一個微型電容替代盒調(diào)整振蕩器的 RC 電路中的電容來完成的。
電容替換盒包含一系列開關(guān)和電容器,可在一定精度范圍內(nèi)產(chǎn)生任何電容。例如,考慮以下電容器網(wǎng)絡(luò),這些電容器可以并聯(lián)組合以產(chǎn)生從 0nF 到 255nF 的任何整數(shù)電容。
電容替代網(wǎng)絡(luò)
開關(guān)有條件的包括 2 次方的電容器。例如,僅閉合右側(cè)的三個開關(guān)會產(chǎn)生 7nF,它是二進制的。
現(xiàn)在,由于 RC 振蕩器通過對電容器進行充電和放電來工作,因此這些開關(guān)需要是模擬的。出于這個原因,這些微型電容替代盒使用一種特殊類型的開關(guān),稱為傳輸門 或模擬開關(guān)。這些很像繼電器的半導(dǎo)體替代品,它們控制數(shù)字信號并切換模擬信號。
從程序員的角度來看,內(nèi)部振蕩器的頻率調(diào)整歸結(jié)為修改內(nèi)存映射寄存器的值。該寄存器中的位控制電容替換模塊中的開關(guān)。
內(nèi)部時鐘源微調(diào)寄存器,廣泛用于 s08 系列,圖片來自恩智浦
對于 S08 系列的某些成員,該寄存器稱為 ICSTRM(內(nèi)部時鐘源微調(diào))。這是一個 8 位寄存器,二進制復(fù)位值為 10000000。這 8 位控制電容替換模塊,進而影響振蕩器的周期 :此寄存器的值越高,電容和周期越高. 當(dāng)然,這對頻率有相互影響。
簡單的校準(zhǔn)程序
你可以在 MCU 上執(zhí)行的一個很好的修整程序:
運行一個生成 1kHz 方波的應(yīng)用程序
迭代直到無法改進
測量生成信號的周期
將 Trim 寄存器修改為 1ms
重新編譯并運行
迭代的原因是,由于微調(diào)模塊中電容器值的不確定性,你將為微調(diào)寄存器估計的更改將因某些未知因素而關(guān)閉,迭代處理了這種不規(guī)則性。
自動化這個過程
你可能希望為你的應(yīng)用程序自動執(zhí)行此過程,以便你的程序在上電時校準(zhǔn)振蕩器,作為引導(dǎo)序列的一部分。
為此,你將需要一個可靠的時鐘參考來與你的 MCU 生成的固定頻率信號進行比較,盡管這似乎毫無意義,因為你首先要避免使用外部時鐘信號,但該外部信號不必滿足你的時鐘要求,它必須是準(zhǔn)確和穩(wěn)定的。
自動微調(diào)過程的另一個重要細節(jié)是算法:上述過程適用于擁有示波器和一名優(yōu)秀的工程師。然而,許多校準(zhǔn)函數(shù)使用逐次逼近法。這與逐次逼近型 ADC 使用的算法相同,其本質(zhì)是二分搜索算法。毫不奇怪,對于一個 N 位修整寄存器,這需要 N 次迭代。
設(shè)備程序員
除了對 ROM 存儲器和微控制器進行編程之外,還有一些設(shè)備編程器提供有用的附加功能。有些甚至在你的微控制器上執(zhí)行此微調(diào)程序,以便你方便的對設(shè)備進行編程,微調(diào)每個單元上的內(nèi)部振蕩器。
MCU 制造商通常在非易失性存儲器中提供一個特殊位置來存儲設(shè)備的微調(diào)值。這不會自動工作,你的代碼仍然必須在啟動時從該位置獲取值并將值寫入修整寄存器。
深圳市晶光華電子有限公司 26年專注提供一站式晶振產(chǎn)品解決方案,產(chǎn)品主要有SMD石英晶振、 車規(guī)晶振 、 SMD振蕩器等。晶光華始終堅持以品質(zhì)為基石,品質(zhì)符合國際IEC和美國ANSI標(biāo)準(zhǔn)。為了滿足客戶的高標(biāo)準(zhǔn)需求,我司積極整合供應(yīng)鏈,真正服務(wù)每一位品質(zhì)客戶。
【本文標(biāo)簽】 如何校準(zhǔn) MCU 內(nèi)部振蕩器 晶光華晶振 振蕩器 晶體諧振器 車規(guī)級晶振 石英晶振
【責(zé)任編輯】