2025.7.22 經(jīng)驗(yàn)分享會(huì)
2025年7月22日下午,上海實(shí)邦電子科技有限公司開(kāi)展了一次經(jīng)驗(yàn)交流會(huì),由劉工和陳工一起分享了他們?cè)诠ぷ髦蟹e累的一些經(jīng)驗(yàn)。
首先是劉工分享了----AT32圖形工具
STM32可使用圖形工具,通過(guò)鼠標(biāo)點(diǎn)擊,配置相應(yīng)的功能,減少重復(fù)工作,節(jié)約開(kāi)發(fā)周期。一些項(xiàng)目,由于各種限制,在使用國(guó)產(chǎn)單片機(jī)時(shí),就需要工程師自己從相應(yīng)的例程,提取相應(yīng)的驅(qū)動(dòng),放到自己的項(xiàng)目中。這個(gè)過(guò)程需要工程師眼明心細(xì),一不小心,配置錯(cuò)誤,還要回過(guò)頭來(lái)一點(diǎn)一點(diǎn)的找問(wèn)題。
其實(shí)國(guó)產(chǎn)單片機(jī)也有自己的圖形工具,接下來(lái),我向大家介紹一款國(guó)產(chǎn)圖形工具,基于AT32(雅特力半導(dǎo)體)。
AT32-work_bench(下載連接:https://www.arterytek.com/cn/product/AT32F403A.jsp#Resource)
這個(gè)流程是比較清晰的:選擇單片機(jī)型號(hào)-->新建(打開(kāi))
接下來(lái)就是配置相應(yīng)的功能,和STM32圖形工具差不多,多了一個(gè)代碼預(yù)覽,配置完成后,可以先看看都生成了哪些文件,以及代碼內(nèi)容。
這個(gè)流程也是比較清晰的:配置時(shí)鐘-->配置下載口-->配置相應(yīng)的功能-->生成相應(yīng)的代碼
1、配置1ms定時(shí)器
2、配置收發(fā)雙向,波特率115200串口
3、配置SPI
4、配置ADC
5、配置DMA
注意:其他外設(shè)配置后可直接使用,DMA配置后程序要做相應(yīng)的修改
陳工分享了-----影子寄存器
1. 基本概念
CCR 寄存器:用戶可直接訪問(wèn)的寄存器,用于設(shè)置 PWM 的比較值(決定占空比)或捕獲觸發(fā)閾值。
影子寄存器:CCR 對(duì)應(yīng)的硬件緩沖寄存器,不可直接訪問(wèn),用于暫存 CCR 的新值,并在特定時(shí)機(jī)同步到實(shí)際工作電路中。
簡(jiǎn)單來(lái)說(shuō),影子寄存器相當(dāng)于 CCR 的 "緩沖區(qū)",確保新的比較值不會(huì)立即生效,而是在當(dāng)前 PWM 周期結(jié)束后才更新,避免波形畸變。
2. 工作機(jī)制
寫入階段:當(dāng)用戶修改 CCR 的值時(shí),數(shù)據(jù)首先存入 "預(yù)裝載寄存器"(即用戶可見(jiàn)的 CCR)。
同步階段:若影子寄存器功能開(kāi)啟,預(yù)裝載寄存器的值會(huì)在定時(shí)器更新事件(如計(jì)數(shù)器溢出、特定觸發(fā)信號(hào))時(shí),被自動(dòng)同步到影子寄存器。
生效階段:影子寄存器的值直接作用于 PWM 生成電路,決定下一個(gè)周期的波形參數(shù)(如占空比)。
這個(gè)過(guò)程保證了 PWM 波形的連續(xù)性 —— 當(dāng)前周期仍按舊參數(shù)運(yùn)行,下一個(gè)周期無(wú)縫切換到新參數(shù)。
3. 控制方式(關(guān)鍵寄存器位)
CCR 影子寄存器的開(kāi)關(guān)由捕獲 / 比較模式寄存器(TIMx_CCMR1/2) 中的OCxPE位(Output Compare x Preload Enable)控制:
OCxPE=0:關(guān)閉影子寄存器(預(yù)裝載功能禁用)。此時(shí)寫入 CCR 的值會(huì)立即生效,可能導(dǎo)致當(dāng)前周期波形被截?cái)嗷虺霈F(xiàn)異常脈沖。
OCxPE=1:開(kāi)啟影子寄存器(預(yù)裝載功能使能)。此時(shí) CCR 的新值會(huì)暫存在預(yù)裝載寄存器,等待更新事件(如計(jì)數(shù)器溢出)時(shí)同步到影子寄存器,下一個(gè)周期生效。
注意:OCxPE位的默認(rèn)值因 STM32 型號(hào)而異(多數(shù)型號(hào)默認(rèn) 0,即關(guān)閉),實(shí)際開(kāi)發(fā)中需顯式配置為 1 以啟用影子寄存器。
4. 與更新事件的關(guān)聯(lián)
影子寄存器的同步時(shí)機(jī)嚴(yán)格依賴定時(shí)器的更新事件(Update Event),該事件通常由以下情況觸發(fā):
計(jì)數(shù)器(CNT)從最大值溢出到 0(向上計(jì)數(shù)模式)。
計(jì)數(shù)器從 0 計(jì)數(shù)到最大值(向下計(jì)數(shù)模式)。
軟件強(qiáng)制觸發(fā)(通過(guò)TIMx_EGR寄存器的UG位)。
只有當(dāng)更新事件發(fā)生時(shí),預(yù)裝載寄存器(CCR)的值才會(huì)同步到影子寄存器,確保參數(shù)在周期邊界處更新。
5. 應(yīng)用場(chǎng)景與注意事項(xiàng)
必須開(kāi)啟的場(chǎng)景:
電機(jī)控制、電源管理等對(duì) PWM 波形連續(xù)性要求高的場(chǎng)景,避免參數(shù)突變導(dǎo)致的電流 / 電壓波動(dòng)。
多通道 PWM 同步(如三相電機(jī)驅(qū)動(dòng)),確保各通道參數(shù)同時(shí)更新,維持相位關(guān)系。
可關(guān)閉的場(chǎng)景:
對(duì)實(shí)時(shí)性要求極高,允許波形短暫畸變的場(chǎng)景(如快速響應(yīng)外部觸發(fā))。
注意事項(xiàng):
若同時(shí)開(kāi)啟 ARR(自動(dòng)重裝載寄存器)和 CCR 的影子寄存器,兩者會(huì)在同一更新事件同步,保證周期和占空比參數(shù)協(xié)同更新。
關(guān)閉影子寄存器時(shí),修改 CCR 可能導(dǎo)致單個(gè)周期內(nèi)出現(xiàn)兩個(gè)不同的占空比,引發(fā)波形毛刺。
總結(jié)
CCR 的影子寄存器是通過(guò) "預(yù)裝載 - 同步" 機(jī)制實(shí)現(xiàn) PWM 參數(shù)平滑更新的核心,其開(kāi)啟狀態(tài)由OCxPE位控制。在絕大多數(shù)需要穩(wěn)定波形的場(chǎng)景(如電機(jī)驅(qū)動(dòng)、精密控制),建議顯式開(kāi)啟該功能,確保參數(shù)在周期邊界處生效,避免異常波形。實(shí)際開(kāi)發(fā)中需結(jié)合具體型號(hào)的數(shù)據(jù)手冊(cè),確認(rèn)OCxPE位的默認(rèn)值并正確配置。
- 上一篇:三種方法教你玩轉(zhuǎn) Allegro到Sigrity 的文件格式 2025/8/12
- 下一篇:何時(shí)使用負(fù)載開(kāi)關(guān)取代分立MOSFET 2025/7/16