專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
在某些低成本和低功耗的單片機(jī)中,可能使用內(nèi)部的RC振蕩器作為默認(rèn)的振蕩源。這種設(shè)計簡單且經(jīng)濟(jì)實(shí)惠,適用于一些不需要高精度時鐘的應(yīng)用。下面文章中,我們來介紹一下如何校準(zhǔn)MCU的內(nèi)部RC振蕩器,包括補(bǔ)償振蕩器中不準(zhǔn)確的無源元件值等。
一、MCU中的內(nèi)部振蕩器調(diào)整
我們知道,內(nèi)部采用RC振蕩器的單片機(jī)會有精度不高的缺點(diǎn)。所以,在這類MCU中,內(nèi)部振蕩器一般都配備了微調(diào)其頻率的機(jī)制。這通常是通過替換微型電容,以此調(diào)整振蕩器RC電路中的電容大小來完成的。
電容替換包含一系列開關(guān)和電容器,可產(chǎn)生一定精度范圍內(nèi)的任何電容大小。例如,考慮以下電容器結(jié)構(gòu),它可以并聯(lián)組合以產(chǎn)生0nF到255nF的任何整數(shù)電容。
如上圖所示,這些每個開關(guān)控制一個電容器。例如,僅閉合右側(cè)的三個開關(guān)會產(chǎn)生7nF。從程序員的角度來看,內(nèi)部振蕩器的頻率調(diào)整歸結(jié)為修改內(nèi)存映射寄存器的值,即修改該寄存器中的位就是在控制電容,這等于是在操作開關(guān)。
以某個具有8位寄存器的單片機(jī)為例,該寄存器稱為ICSTRM(內(nèi)部時鐘源調(diào)整)。這是一個8位寄存器,二進(jìn)制復(fù)位值為10000000。這8位控制一個電容替代模塊,進(jìn)而影響振蕩器的周期。該寄存器的值越高,電容和周期就越高。當(dāng)然,這對頻率有相反的影響。
二、如何通過程序校準(zhǔn)
校準(zhǔn)程序的具體步驟可能會根據(jù)具體應(yīng)用和硬件平臺而有所不同,以下是一個簡單的校準(zhǔn)程序示例,用于校準(zhǔn)一個1kHz方波信號的生成:
1.設(shè)置初始配置:將單片機(jī)配置為產(chǎn)生方波信號,并確保 Trim 寄存器的初始值為默認(rèn)值。
2.生成 1kHz 方波信號:使用單片機(jī)的定時器或其他相關(guān)模塊,編寫一個程序來生成 1kHz 的方波信號。
3.測量方波信號的周期:使用示波器或其他合適的測量設(shè)備,測量生成的方波信號的周期。記錄測量到的周期值。
4.調(diào)整 Trim 寄存器:根據(jù)測量到的周期值,計算需要調(diào)整 Trim 寄存器的值。調(diào)整的方式可以是逐步增加或減小 Trim 寄存器的值,并觀察方波信號的周期變化。
5.重新編譯和運(yùn)行:將調(diào)整后的Trim寄存器的值更新到代碼中,重新編譯程序,并將程序下載到單片機(jī)中運(yùn)行。
6.迭代調(diào)整:重復(fù)步驟3-5,直到測量到的方波信號周期達(dá)到所需的1kHz。
實(shí)際的校準(zhǔn)過程可能會更復(fù)雜,這涉及更多的參數(shù)和校準(zhǔn)步驟。具體的校準(zhǔn)程序應(yīng)根據(jù)您的應(yīng)用、硬件平臺和需求進(jìn)行設(shè)計和開發(fā)。
以上就是英銳恩單片機(jī)開發(fā)工程師分享的如何校準(zhǔn)MCU的內(nèi)部RC振蕩器。英銳恩專注單片機(jī)應(yīng)用方案設(shè)計與開發(fā),提供8位單片機(jī)、32位單片機(jī)。