衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CW32L083如何實(shí)現(xiàn)AUTOTRIM時(shí)鐘校準(zhǔn)?

jf_pJlTbmA9 ? 來源:武漢芯源半導(dǎo)體 ? 作者:武漢芯源半導(dǎo)體 ? 2023-11-07 17:17 ? 次閱讀

MCU中的HSIOSC和LSI時(shí)鐘信號是通過內(nèi)部RC振蕩器產(chǎn)生的,該時(shí)鐘信號可能會受到外界因素比如溫度等的影響,使其頻率在一定范圍內(nèi)產(chǎn)生誤差。CW32L083可以通過AUTOTRIM的時(shí)鐘校準(zhǔn)定時(shí)器模式來對LSI和HSIOSC進(jìn)行自動實(shí)時(shí)時(shí)鐘校準(zhǔn),獲得精度更高的時(shí)鐘信號。

HSIOSC時(shí)鐘校準(zhǔn)模式

設(shè)置 AUTOTRIM_CR.MD 為 0x00,使定時(shí)器工作于 HSIOSC 校準(zhǔn)模式。該模式支持自動實(shí)時(shí)校準(zhǔn)HSIOSC的輸出頻率,使 HSIOSC 輸出頻率的精度不再受環(huán)境變化影響。

HSIOSC 時(shí)鐘校準(zhǔn),需要向定時(shí)器提供一個(gè)精準(zhǔn)的低頻參考時(shí)鐘,其來源可以是 LSE 或外部 ETR 引腳輸入的低速精準(zhǔn)時(shí)鐘信號,通過控制寄存器 AUTOTRIM_CR 的 SRC 位域進(jìn)行選擇。

HSIOSC 校準(zhǔn)模式的功能框圖如下圖所示:

poYBAGMj5iyAHda3AACK8WZRn2U332.jpg

設(shè)置 AUTOTRIM_CR.AUTO 為 1 使能自動校準(zhǔn),設(shè)置 AUTOTRIM_CR.EN 為1 使能定時(shí)器,開始自動校準(zhǔn)流程。自動校準(zhǔn)開始工作后,計(jì)數(shù)值寄存器AUTOTRIM_CNT 在每個(gè) GCLK 時(shí)鐘周期內(nèi)對 HSIOSC 時(shí)鐘 TCLK 從重載值 ARR 開始遞減計(jì)數(shù),計(jì)數(shù)到 0 后開始遞增計(jì)數(shù)。當(dāng)計(jì)數(shù)器已運(yùn)行 1.5 倍 ARR 周期,計(jì)數(shù)器停止運(yùn)行,同時(shí) AUTOTRIM_ISR.MISS 標(biāo)志位被硬件置 1,表示計(jì)數(shù)失敗。每當(dāng) GCLK 時(shí)鐘上升沿到達(dá)時(shí),計(jì)數(shù)器重新開始從 ARR 遞減計(jì)數(shù)。

如果 GCLK 時(shí)鐘周期內(nèi),計(jì)數(shù)器的計(jì)數(shù)值大于誤差允許值 AUTOTRIM_FLIM,寄存器TrimCode 會自動調(diào)整,直到計(jì)數(shù)器的計(jì)數(shù)值小于誤差允許值 AUTOTRIM_FLIM,同時(shí) AUTOTRIM_ISR.OK 標(biāo)志位會被硬件置 1,表示校準(zhǔn)精度已達(dá)標(biāo),此時(shí)可讀取 TrimCode 寄存器并寫入 SYSCTRL_HSI.TRIM,以校準(zhǔn) HSIOSC 時(shí)鐘頻率。

TrimCode 寄存器最大可調(diào)整為 0x1FF,故 TrimCode 值寫入 SYSCTRL_HSI.TRIM 時(shí),需根據(jù) TRIM 位域的初始校 準(zhǔn)值寫入最高 2bit。代碼示例如下:

CW_SYSCTRL->HSI = (CW_SYSCTRL->HSI 0xFE00) | CW_AUTOTRIM->TVAL;

誤差允許值 FLIM 在設(shè)置重載值 ARR 時(shí)自動配置,校準(zhǔn)精度為 0.4%,用戶不可寫入。重載寄存器 AUTOTRIM_ARR 設(shè)置公式如下:

ARR = TCLK×2PRS/RCLK-1

其中,RCLK 為參考時(shí)鐘源,PRS 為預(yù)分頻系數(shù),TCLK 為計(jì)數(shù)時(shí)鐘源 HSIOSC 時(shí)鐘,這一部分是需要我們?nèi)ヅ渲玫摹?/p>

例:當(dāng)參考時(shí)鐘源 RCLK 為 LSE(時(shí)鐘頻率為 32768Hz),預(yù)分頻系數(shù) PRS 為 0x1 時(shí),校準(zhǔn) HSIOSC 時(shí)鐘頻率為 48MHz,計(jì)算

ARR = 48000000×21 /32768-1 = 2928.6875

最接近的整數(shù)是:2929(0xB71)

即需要設(shè)置 AUTOTRIM_ARR 為 0xB71。

HSIOSC時(shí)鐘校準(zhǔn)編程示例

通過上節(jié)的模式設(shè)置介紹我們可以根據(jù)其配置AUTOTRIM的HSIOSC的實(shí)時(shí)時(shí)鐘校準(zhǔn)模式,HSIOSC 時(shí)鐘校準(zhǔn)流程如下,當(dāng)選擇參考時(shí)鐘源為 LSE 時(shí),步驟 1 和步驟 2 不需要執(zhí)行:

步驟 1:設(shè)置外設(shè)時(shí)鐘使能控制寄存器 SYSCTRL_AHBEN 的相關(guān)位為 1,使能AUTOTRIM_ETR 對應(yīng) GPIO 端口的配置時(shí)鐘及工作時(shí)鐘;

步驟 2:設(shè)置 GPIO 復(fù)用功能寄存器 GPIOx_AFRH 和 GPIOx_AFRL 的相關(guān)位,配置對應(yīng)引腳為 AUTOTRIM 定時(shí)器的 AUTOTRIM_ETR 功能;

步驟 3:設(shè)置外設(shè)時(shí)鐘使能控制寄存器 SYSCTRL_APBEN2.AUTOTRIM 為 1,打開 AUTOTRIM 模塊的配置時(shí)鐘;

步驟 4:設(shè)置 AUTOTRIM_CR.MD 為 0x00,使定時(shí)器工作于 HSIOSC 時(shí)鐘校準(zhǔn)模式;

步驟 5:配置控制寄存器 AUTOTRIM_CR.OST,選擇實(shí)時(shí)校準(zhǔn)模式或單次校準(zhǔn)模式;

步驟 6:配置控制寄存器 AUTOTRIM_CR.SRC,選擇 AUTOTRIM 參考時(shí)鐘源為LSE;

步驟 7:配置控制寄存器 AUTOTRIM_CR.PRS,選擇 AUTOTRIM 參考時(shí)鐘分頻系數(shù);

步驟 8:根據(jù)上節(jié)HSIOSC時(shí)鐘校準(zhǔn)模式ARR 配置公式,設(shè)置重載值寄存器 AUTOTRIM_ARR,自動配置 校準(zhǔn)精度為 0.4%;

步驟 9:設(shè)置 AUTOTRIM_CR.AUTO 為 1,使能自動校準(zhǔn);

步驟 10:設(shè)置 AUTOTRIM_CR.EN 為 1,使能定時(shí)器,開始自動校準(zhǔn);

步驟 11:查詢等待 AUTOTRIM_ISR.END 和 AUTOTRIM_ISR.OK 標(biāo)志位置 1,自動校準(zhǔn)完成且精度達(dá)標(biāo);

步驟 12:讀取 TrimCode 寄存器,并將 TrimCode 值寫入 SYSCTRL_HSI.TRIM。

代碼示例:

CW_SYSCTRL->HSI = (CW_SYSCTRL->HSI 0xFE00) | CW_AUTOTRIM->TVAL;

具體的寄存器配置可以參考CW32L083用戶手冊的時(shí)鐘校準(zhǔn)定時(shí)器(AUTOTRIM)章節(jié)。在上述的一系列校準(zhǔn)步驟配置完之后,我們就可以通過示波器或者萬用表來讀取開發(fā)板的HSIOSC的頻率輸出,會發(fā)現(xiàn)在不同的溫度影響下,MCU會自動校準(zhǔn)HSIOSC的時(shí)鐘頻率。通過對比會發(fā)現(xiàn),用AUTOTRIM自動校準(zhǔn)模式之后的HSIOSC會比沒有用AUTOTRIM的HSIOSC的精度更高,誤差更小。

LSI時(shí)鐘校準(zhǔn)

設(shè)置 AUTOTRIM_CR.MD 為 0x01,使定時(shí)器工作于 LSI 校準(zhǔn)模式。該模式支持自動實(shí)時(shí)校準(zhǔn) LSI 的輸出頻率,使 LSI 輸出頻率的精度不再受環(huán)境變化影響。

LSI 時(shí)鐘校準(zhǔn),需要向定時(shí)器提供一個(gè)精準(zhǔn)的高頻計(jì)數(shù)時(shí)鐘,其來源可以是 HSE 或外部 ETR 引腳輸入的高速精準(zhǔn)時(shí)鐘信號,通過控制寄存器 AUTOTRIM_CR 的 SRC 位域進(jìn)行選擇。

LSI校準(zhǔn)模式的功能框圖如下圖所示:

pYYBAGMj5iyAf265AABICTXJh8Y768.jpg

設(shè)置 AUTOTRIM_CR.AUTO 為 1 使能自動校準(zhǔn),設(shè)置 AUTOTRIM_CR.EN 為 1 使能定時(shí)器,開始自動校準(zhǔn)流程。

自動校準(zhǔn)開始工作后,計(jì)數(shù)值寄存器 AUTOTRIM_CNT 在每個(gè) GCLK 時(shí)鐘周期內(nèi)對計(jì)數(shù)時(shí)鐘 TCLK 從重載值 ARR 開始遞減計(jì)數(shù),計(jì)數(shù)到0后開始遞增計(jì)數(shù)。當(dāng)計(jì)數(shù)器已運(yùn)行1.5倍ARR 周期,計(jì)數(shù)器停止運(yùn)行,同時(shí) AUTOTRIM_ISR.MISS 標(biāo)志位被硬件置1,表示計(jì)數(shù)失敗。每當(dāng) GCLK 時(shí)鐘上升沿到達(dá)時(shí),計(jì)數(shù)器重新開始從 ARR 遞減計(jì)數(shù)。

如果 GCLK 時(shí)鐘周期內(nèi),計(jì)數(shù)器的計(jì)數(shù)值大于誤差允許值 AUTOTRIM_FLIM,則寄存器TrimCode會自動調(diào)整,直到計(jì)數(shù)器的計(jì)數(shù)值小于誤差允許值 AUTOTRIM_FLIM,同時(shí) AUTOTRIM_ISR.OK 標(biāo)志位會被硬件置 1,表示校準(zhǔn)精度 已達(dá)標(biāo),此時(shí)可讀取 TrimCode 寄存器并寫入 SYSCTRL_LSI.TRIM,以校準(zhǔn) LSI 時(shí)鐘頻率。具體的代碼配置可以參考下節(jié)的步驟12的代碼示例。

TrimCode 寄存器最大可調(diào)整為0x1FF,故 TrimCode 值寫入 SYSCTRL_LSI.TRIM 時(shí),需根據(jù) TRIM 位域的初始校 準(zhǔn)值寫入最高 1bit。

代碼示例如下:

CW_SYSCTRL->LSI = (CW_SYSCTRL->LSI 0xFE00) | CW_AUTOTRIM->TVAL;

誤差允許值 FLIM 在設(shè)置重載值 ARR 時(shí)自動配置,校準(zhǔn)精度為 0.4%,用戶不可寫入。重載寄存器 AUTOTRIM_ARR 設(shè)置公式如下:

ARR = TCLK×2PRS/RCLK-1

其中,RCLK 為 LSI 時(shí)鐘,PRS 為預(yù)分頻系數(shù),TCLK 為計(jì)數(shù)時(shí)鐘源。

例:當(dāng)計(jì)數(shù)時(shí)鐘源 TCLK 為 HSE(時(shí)鐘頻率為 16MHz),預(yù)分頻系數(shù) PRS 為 0x1 時(shí),校準(zhǔn) LSI 時(shí)鐘頻率為 32kHz,計(jì)算

ARR = 16000000×21 /32000-1 = 999

即需要設(shè)置 AUTOTRIM_ARR 為 0x3E7。

LSI時(shí)鐘校準(zhǔn)編程示例

通過上節(jié)的模式設(shè)置介紹我們可以根據(jù)其配置AUTOTRIM的LSI的實(shí)時(shí)時(shí)鐘校準(zhǔn)模式,LSI 時(shí)鐘校準(zhǔn)流程如下,當(dāng)選擇計(jì)數(shù)時(shí)鐘源為 HSE 時(shí),步驟 1 和步驟 2 不需要執(zhí)行:

步驟 1:設(shè)置外設(shè)時(shí)鐘使能控制寄存器 SYSCTRL_AHBEN 的相關(guān)位為 1,使能 AUTOTRIM_ETR 對應(yīng) GPIO 端口的 配置時(shí)鐘及工作時(shí)鐘;

步驟 2:設(shè)置 GPIO 復(fù)用功能寄存器 GPIOx_AFRH 和 GPIOx_AFRL 的相關(guān)位,配置對應(yīng)引腳為 AUTOTRIM 定時(shí)器 的 AUTOTRIM_ETR 功能;

步驟 3:設(shè)置外設(shè)時(shí)鐘使能控制寄存器 SYSCTRL_APBEN2.AUTOTRIM 為 1,打開 AUTOTRIM 模塊的配置時(shí)鐘;

步驟 4:設(shè)置 AUTOTRIM_CR.MD 為 0x01,使定時(shí)器工作于 LSI 時(shí)鐘校準(zhǔn)模式;

步驟 5:配置控制寄存器 AUTOTRIM_CR.OST,選擇實(shí)時(shí)校準(zhǔn)模式或單次校準(zhǔn)模式;

步驟 6:配置控制寄存器 AUTOTRIM_CR.SRC,選擇 AUTOTRIM 計(jì)數(shù)時(shí)鐘源HSE;

步驟 7:配置控制寄存器 AUTOTRIM_CR.PRS,選擇 AUTOTRIM 參考時(shí)鐘分頻系數(shù);

步驟 8:根據(jù) 11.3.3 LSI 時(shí)鐘校準(zhǔn)小節(jié) ARR 配置公式,設(shè)置重載值寄存器 AUTOTRIM_ARR,自動配置校準(zhǔn)精度 為 0.4%;

步驟 9:設(shè)置 AUTOTRIM_CR.AUTO 為 1,使能自動校準(zhǔn);

步驟 10:設(shè)置 AUTOTRIM_CR.EN 為 1,使能定時(shí)器,開始自動校準(zhǔn);

步驟 11:查詢等待 AUTOTRIM_ISR.END 和 AUTOTRIM_ISR.OK 標(biāo)志位置 1,自動校準(zhǔn)完成且精度達(dá)標(biāo);

步驟 12:讀取 TrimCode 寄存器,并將 TrimCode 值寫入 SYSCTRL_LSI.TRIM。

代碼示例:

CW_SYSCTRL->LSI = (CW_SYSCTRL->LSI 0xFE00) | CW_AUTOTRIM->TVAL

來源:武漢芯源半導(dǎo)體


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17324

    瀏覽量

    352656
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1747

    瀏覽量

    131803
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3255

    瀏覽量

    115380
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    218

    瀏覽量

    737
收藏 人收藏

    評論

    相關(guān)推薦

    基于CW32L083的線控器方案設(shè)計(jì)

    基于武漢芯源推出的CW32L083設(shè)計(jì)的空調(diào)線控器產(chǎn)品.
    的頭像 發(fā)表于 06-25 14:23 ?26.2w次閱讀
    基于<b class='flag-5'>CW32L083</b>的線控器方案設(shè)計(jì)

    CW32L083 RTC初始化設(shè)置

    介紹CW32L083的RTC初始化設(shè)置
    的頭像 發(fā)表于 06-24 10:16 ?1631次閱讀
    <b class='flag-5'>CW32L083</b> RTC初始化設(shè)置

    基于CW32L083設(shè)計(jì)的超低功耗溫濕度計(jì)

    基于CW32L083設(shè)計(jì)的超低功耗溫濕度計(jì),可以用電池供電,實(shí)現(xiàn)數(shù)年超長工作時(shí)間。
    的頭像 發(fā)表于 06-25 12:08 ?2.7w次閱讀
    基于<b class='flag-5'>CW32L083</b>設(shè)計(jì)的超低功耗溫濕度計(jì)

    基于CW32L083的空調(diào)遙控器方案設(shè)計(jì)

    基于武漢芯源半導(dǎo)體推出的CW32L083而設(shè)計(jì)的的空調(diào)遙控器方案
    的頭像 發(fā)表于 06-21 16:03 ?1588次閱讀
    基于<b class='flag-5'>CW32L083</b>的空調(diào)遙控器方案設(shè)計(jì)

    移植RT-Thread nano到CW32L083

    移植RT-Thread Nano到CW32L083開發(fā)板上,并成功運(yùn)行。
    的頭像 發(fā)表于 07-03 09:04 ?2.2w次閱讀
    移植RT-Thread nano到<b class='flag-5'>CW32L083</b>

    CW32L083串口中斷+定時(shí)器實(shí)現(xiàn)不定長數(shù)據(jù)接收

    CW32L083 用串口中斷加定時(shí)器中斷實(shí)現(xiàn)串口的不定長數(shù)據(jù)的接收,特別適用于AT指令的接收。
    的頭像 發(fā)表于 07-12 09:00 ?2139次閱讀
    <b class='flag-5'>CW32L083</b>串口中斷+定時(shí)器<b class='flag-5'>實(shí)現(xiàn)</b>不定長數(shù)據(jù)接收

    [技術(shù)手冊] CW32L083數(shù)據(jù)手冊

    CW32L083數(shù)據(jù)手冊,PSMCU0116.pdf,Rev1.2
    發(fā)表于 05-31 16:13

    [技術(shù)手冊] CW32L083用戶手冊

    CW32L083用戶手冊
    發(fā)表于 06-02 15:41

    武漢芯源Cortex-M0+ 32位低功耗MCU CW32L083系列產(chǎn)品介紹

    列表02 CW32L083系列功能優(yōu)勢1.深度休眠模式0.6uACW32L083系列產(chǎn)品在深度休眠模式下電流只有0.6uA(所有時(shí)鐘關(guān)閉,上電復(fù)位有效,IO狀態(tài)保持,IO中斷有效,所有寄存器、RAM
    發(fā)表于 08-24 09:12

    CW32L083系列MCU系統(tǒng)時(shí)鐘詳解

    性能,有的外設(shè)需要低速時(shí)鐘降低功耗或提高抗干擾能力,因此單片機(jī)采用多種時(shí)鐘源來解決此問題。下面將詳細(xì)介紹如何配置CW32L083產(chǎn)品的系統(tǒng)時(shí)鐘CW
    發(fā)表于 10-25 13:32

    CW32L083產(chǎn)品介紹

    CW32L083是一款基于eFlash的單芯片低功耗微控制器,集成了ARM?Cortex?-M0+ 核心,主頻高達(dá)64MHz,高速嵌入式存儲器(高達(dá)256K字節(jié)的FLASH和 高達(dá)24K字節(jié)
    發(fā)表于 09-14 06:41

    CW32L083段碼屏驅(qū)動

    CW32L083開發(fā)板上有8個(gè)段碼LCD顯示,使其顯示為0-9數(shù)字。
    的頭像 發(fā)表于 06-18 09:13 ?18.1w次閱讀
    <b class='flag-5'>CW32L083</b>段碼屏驅(qū)動

    CW32L083系列MCU系統(tǒng)時(shí)鐘詳解

    性能,有的外設(shè)需要低速時(shí)鐘降低功耗或提高抗干擾能力,因此單片機(jī)采用多種時(shí)鐘源來解決此問題。下面將詳細(xì)介紹如何配置CW32L083產(chǎn)品的系統(tǒng)時(shí)鐘CW
    的頭像 發(fā)表于 10-25 13:35 ?897次閱讀
    <b class='flag-5'>CW32L083</b>系列MCU系統(tǒng)<b class='flag-5'>時(shí)鐘</b>詳解

    CW32L083實(shí)現(xiàn)SHT30驅(qū)動

    CW32L083驅(qū)動SHT30,并顯示到LCD屏上。
    的頭像 發(fā)表于 06-22 09:57 ?3210次閱讀
    <b class='flag-5'>CW32L083</b><b class='flag-5'>實(shí)現(xiàn)</b>SHT30驅(qū)動

    CW32L083不同主頻功耗測試

    頻率固定為48MHz,頻率精度低于HSE時(shí)鐘。RC振蕩器輸出時(shí)鐘的頻率受芯片加工過程、工作電壓、環(huán)境溫度等因素影響,CW32L083提供了HSIOSC時(shí)鐘頻率
    的頭像 發(fā)表于 06-27 16:21 ?807次閱讀
    <b class='flag-5'>CW32L083</b>不同主頻功耗測試
    金世豪百家乐官网的玩法技巧和规则 | 华盛顿百家乐官网的玩法技巧和规则| 百家乐路单生| 百家乐官网赌博怎么玩| 百家乐稳赢投注| 真钱棋牌导航网| 百家乐优惠高的网址| 喜達博彩网| 百家乐庄闲的冷热| 皇冠代理网址| 哪里有百家乐代理| 黄龙县| 赌场百家乐赢钱| 百家乐官网单双打法| 百家乐玩法教学视频| 银泰娱乐城| 摩纳哥百家乐娱乐城| 南通市| 乐天堂百家乐娱乐| 百家乐官网缆法排行榜| 太阳城网上娱乐城| 大丰收百家乐官网的玩法技巧和规则 | 在线百家乐官网代理| 百家乐娱乐优惠| 百家乐官网赌博机怎么玩| 红宝石百家乐的玩法技巧和规则| 百家乐官网庄家必赢诀窍| 大发888真人娱乐场网址官网| 百家乐官网平注法口诀技巧| 现金投注网| 红宝石百家乐娱乐城| 百家乐官网视频二人雀神| 全讯网官网| 百家乐官网棋牌游戏币| 济南市| 威尼斯人娱乐城 104| 百家乐官网赌场| 额尔古纳市| 百家乐平玩法官方网址| 火命与金命做生意 | 电投百家乐网站|