在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文講清:PWMV2快速入門

先楫半導體HPMicro ? 2025-02-08 13:39 ? 次閱讀

引 言

本指南旨在幫助開發者快速掌握如何使用 PWMV2 外設進行編程和應用開發。本文內容注重簡潔明了,旨在讓讀者輕松理解關鍵概念和基本操作。對于更高級的功能和詳細配置,請參閱后續的系列文檔以獲取深入指導。

PWMV2系列文章主要從以下幾個方向介紹先楫PWM外設的應用方法:

主要功能

波形輸出

中心對稱PWM

邊沿對齊PWM

  • 左側邊沿
  • 右側邊沿
  • Burst輸出
  • 指定輸出多少個PWM脈沖后,pwm停止輸出,最大支持65535個脈沖
  • 互補PWM輸出
  • 帶死區控制
  • 故障保護功能
  • 同步保護
  • 異步保護


  • 強制輸出功能
  • 輸入捕獲功能
  • 支持觸發adc采樣
  • 支觸發sigma-delta adc采樣
  • 支持觸發編碼器采樣
  • 支持PWM同步功能
  • 支持PWM移相功能
  • PWM中斷和DMA功能

特色功能

通用計算單元

根據dac的輸入值或者當前計數器值,計數器重載值以及預設的參數計算出一個結果,用于更新比較器的值

使用硬件計算相關參數,運算速度快

支持PWM占空比硬件限幅

支持PWM頻率硬件限幅

  • 支持關鍵寄存器加鎖
  • 支持調試模式

使用調試器進行調試時可以設置PWM輸出為配置的電平狀態

高精度PWM

進階篇

在準備PWM(脈寬調制)系列的高級功能配置文檔時,我們重點關注以下幾個關鍵特性:

1. PWM信號同步

同步PWM信號確保了多個PWM通道之間或與外部時鐘和事件的時間一致性。對于多相系統中的精確相位對齊至關重要。

2. PWM信號移相

移相技術允許調整PWM信號相對于參考點或其他PWM信號的相位角。這對于三相電機控制和其他需要精密相位調節的應用尤為重要。通過硬件或軟件實現的移相可以提供靈活且精確的控制。

3. 固定占空比下的頻率調整

有時應用需求保持固定的占空比,同時調整PWM信號的頻率。這種配置要求PWM生成器能夠精準地維持設定的占空比,即使頻率發生變化。

4. 事件驅動與中斷管理

高效的事件檢測和中斷觸發機制使得PWM控制器能夠在特定事件發生時即時響應,如周期結束或比較匹配。良好的事件和中斷管理是實現實時操作的關鍵,提升了系統的響應速度和整體效率。

5. 斬波功能

PWM斬波將連續的PWM信號分割成一系列短脈沖,以降低音頻噪聲或優化電源效率。通過調整PWM信號的開啟和關閉時間來實施斬波,為某些應用場景提供了額外的優勢。

6. 故障保護和強制輸出功能

PWMv2模塊提供了全面的故障保護機制,能夠在檢測到異常情況時迅速采取措施,防止潛在的硬件損壞或危險發生。主要特性包括同步和異步故障輸入,故障響應模式,故障恢復機制。

強制輸出功能允許用戶在必要時直接控制PWM輸出的狀態,而不依賴于正常的PWM波形生成邏輯。可提供硬件強制輸出和軟件強制輸出。

時鐘配置

先楫PWM的時鐘和電機系統共用一個時鐘源,因此不需要單獨進行PWM系統的時鐘分頻設置,簡化用戶的設計。使用如下接口可以獲取PWM的頻率

freq = clock_get_frequency(clock_mot0);

引腳配置

使用PWM輸出,需要配置引腳的功能為PWM,代碼如下所示,設置PE08引腳功能為PWM1的P0引腳:

HPM_IOC->PAD[IOC_PAD_PE08].FUNC_CTL = IOC_PE08_FUNC_CTL_PWM1_P_0;

影子寄存器

影子寄存器包含一組與工作寄存器相對應的寄存器,這些寄存器可以被直接讀寫,但其內容不會立即生效。只有當滿足特定條件時,影子寄存器中的值才會被復制到相應的工作寄存器中,從而對PWM輸出產生影響。

在修改影子寄存器之前,需要先解鎖它們。這通常通過向UNLOCK寄存器寫入一個特定的密鑰來完成。

修改完成后,可以通過設置鎖定位來重新鎖定影子寄存器,防止意外更改。

每個PWMV2外設含有28個獨立的影子寄存器,可關聯到PWMV2的4個通道的任意通道中,在特定的時機將影子寄存器的值更新到工作寄存器中。

影子寄存器可用于配置reload補償值compare、通用計算單元補償值以及私有計算單元門限補償值。

影子寄存器在一定程度上保證了多數據更新的一致性。更新影子寄存器如下

pwmv2_enable_shadow_lock_feature(PWM);pwmv2_shadow_register_unlock(PWM);// set shadow registerspwmv2_shadow_register_lock(PWM);

在更新時機選擇為軟件方式更新的情況下,影子寄存器中的值可以通過軟件觸發更新到工作寄存器中

pwmv2_issue_shadow_register_lock_event(PWM);

生效時機

輸出極性取反配置更新

軟件更新

reload值重載更新

fault的恢復時機

立即恢復(在PWMV2時鐘的下一個周期)

reload值重載恢復

FAULT_REC_SEL選擇的觸發信號恢復

軟件寫入FAULT_CLEAR寄存器恢復

force mode更新至工作寄存器時機

軟件更新

指定compare值更新

reload值重載更新

FORCE_TRIG_SEL選中的輸入信號更新

force mode工作時機

立刻生效

reload值重載時生效

FORCE_ACT_SEL選擇的觸發信號到來生效

關閉force mode

通道reload值更新時機

軟件更新

指定的compare值更新

reload值重載時更新

RLD_TRIG_SEL的輸入信號到來更新

比較點compare值更新時機

軟件更新

立即更新(在pwmv2時鐘的下一個周期)

關聯計數器reload值重載更新

CMP_TRIG_SEL選擇的觸發源信號到來更新

RLD_CMP_SEL0選擇的比較值與計數值匹配時更新

RLD_CMP_SEL1選擇的比較值與計數值匹配時更新

計數器數值更新時機

當選定的觸發源信號到來時,將通用計算單元的值更新到計數器值

PWMV2外部輸入與對外輸出

外部輸入

QEO輸出的數據,用來硬件生成SPWM或者SVPWM波形

來自普通IO的輸入捕獲信號

PWM[x]_TRIG_IN[x]輸入進來的硬件信號。PWMV2可以通過truggermux將支持的外部信號引入PWMV2模塊中,用作觸發輸入

對外輸出

PWMV2支持匹配compare值向外部輸出電平,在匹配compare值后,拉高電平,在關聯的通道計數器到達reload值后,清除信號需要通過triggermux的PWM[x]TRGO[x]向外進行輸出。

PWM生成

PWMV2計數器是PWM模塊的核心組件之一,它決定了PWM信號的時間基準和波形特性。

計數器的基本概念

  • 計數模式:HPM6E00的PWMv2僅提供上升計數模式,即計數器從0開始遞增直到達到預設的最大值(重載值),然后重新從0開始。
  • 周期:計數器的周期由重載值決定

計數器的主要功能

時間基準:為PWM信號生成提供時間參考,決定了PWM信號的周期和占空比。

事件觸發:當計數值匹配某個比較值時,可以觸發中斷或其他事件,如改變PWM輸出狀態或啟動其他外設操作。

重載機制:當計數器到達最大值時會發生重載事件,此時計數器會恢復到0,并可以根據需要更新某些寄存器的內容。

PWMV2 支持 4 個 PWM 生成子模塊,每個子模塊包含一個 32 位計數器和 4 個 32 位比較值,并支持輸出 2路獨立或者 1 對互補的 PWM 輸出,計數器的值和比較值的關系,決定了 初始 PWM 的輸出波形。

盡管某些MCU的計數器支持上升、下降及雙向計數模式,HPM系列MCU中的PWMv2模塊只提供上升計數功能。這種設計選擇不僅簡化了PWM信號的生成過程,而且在性能和功能性方面絲毫不遜色于其他復雜計數模式的MCU,甚至在某些方面展現出更強的優勢。下文會通過中心對齊PWM的配置,說明上升計數在性能上沒有任何問題。

為了幫助開發者快速上手,以下將重點介紹一些關鍵配置項,使PWM外設能夠迅速投入工作。對于更復雜的定制化需求,參考進階篇獲取詳細指導。

  • 每一個PWM外設有四個計數器,每個計數器有cmp0-cmp3四個比較器。一般情況下,cmp0和cmp1,cmp2和cmp3成對使用輸出CHN0-1兩路PWM。
  • 因為CHN0-1兩路PWM共用一個計數器,所以這兩路PWM頻率一致
  • 互補PWM輸出時候,CHN0-1成對使用,cmp0-cmp1有效,cmp2-cmp3無效
  • cmp0的值為a,cmp1的值為b,計數器的重載值為T,a和b的值可以在0-2T之間配置,組成各種不同的波形。一般情況下a和b的值在0-T之間配置,且a的值小于b即可滿足基本需求。此時當計數器的值在a和b之間時(包含a和b)輸出高電平,其他情況輸出低電平。
  • 四點模式下,CHN0的電平變化由a、bc、d組點位決定,按照兩點模式下大小關系生成對應的波形,再根據預設的PWM_LOGIC寄存器所設置的模式將兩組波形進行邏輯組合后輸出。CHN1此時可使用互補模式進行輸出。
  • 為了保證比較寄存器和計數器更新的一致性,使用影子寄存器更新實際工作用的寄存器。當選擇的影子寄存器更新時刻匹配時,影子寄存器的值會被更新到實際工作用的寄存器

代碼配置

一般情況下,遵守如下流程就可以正確配置PWM輸出波形

  1. 調用deinit函數復位PWMV2外設
  2. 解鎖PWM影子寄存器
  3. 配置影子寄存器的值
  4. 計數器選擇需要使用的影子寄存器(也可以選擇值來自于計算單元)。此時選擇的影子寄存器中的值就是計數器的重載值。
  5. 設置計數器重載值生效的時刻如下代碼設置生效時刻為reload點,這也是常用的影子寄存器生效時刻配置。

pwmv2_set_reload_update_time(PWM, pwm_counter_0, pwm_reload_update_on_reload);
6.選擇比較單元使用的影子寄存器(也可以選擇值來自計算單元)7. 開啟PWM輸出pwmv2_channel_enable_output(PWM, BOARD_APP_PWM_OUT1);
8. 開啟定時器pwmv2_enable_counter(PWM, pwm_counter_0);
9. 通過影子寄存器更新占空比或者頻率pwmv2_shadow_register_unlock(PWM);pwmv2_set_shadow_val(PWM, PWMV2_SHADOW_INDEX(1), reload - duty, 0, false);pwmv2_issue_shadow_register_lock_event(PWM)

中心對齊PWM

中心對齊的PWM(脈寬調制)波形因其對稱性而被廣泛應用于電機控制、音頻信號處理等領域。與邊緣對齊PWM不同,中心對齊PWM在一個周期內的高電平和低電平時間是關于周期中點對稱分布的。

影子寄存器方法

為了生成中心對齊的PWM波形,可以通過配置PWM模塊中的兩個比較單元來實現。具體來說,需要設置兩個影子寄存器,分別對應于PWM波形的上升沿和下降沿位置。通過將這兩個寄存器值設為以下表達式,可以確保PWM波形的中心對齊:

上升沿位置(即PWM波形開始變為高電平的位置):

CMP0=Reload?Duty2CMP0=2Reload?Duty

下降沿位置(即PWM波形恢復為低電平的位置):

CMP1=Reload+Duty2CMP1=2Reload+Duty

其中:

Reload是PWM周期結束時重新加載的計數值,決定了PWM的頻率。

Duty是PWM的占空比,表示高電平持續時間對應的計數值。

上述配置確保了PWM信號在一個周期內的高電平和低電平時間是對稱分布的,從而產生精確的中心對齊波形。這種方法不僅提高了PWM輸出的精度,而且對于降低電磁干擾(EMI)和提高系統的整體性能具有重要作用。

此外,當調整Duty值以改變PWM占空比時,CMP0CMP1會相應地更新,保持波形始終關于周期中點對齊。這使得即使在動態調整占空比的情況下,也能維持波形的對稱性和穩定性。

計算單元方法

使用影子寄存器生成中心對稱的波形,需要修改兩個寄存器,如果想只修改一個值就生成中心對稱PWM,可以使用計算單元進行操作。

  • Cal_t_index, 從4個計數器計算單元輸出值(reload_new)中選擇一個
  • Cal_in_index,從4個dac輸入值和4個計數器當前值中選擇一個
  • Cal_in_off從28個shadow寄存器中選擇一個作為偏移量,選擇后四個為0,無偏移。
  • Cal_lim_up/cal_lim_lo,也是從28個shadow寄存器中選擇一個作為計算上下限的偏移量。
  • Cal_lu_en/cal_ll_en上下限使能位
  • 以_param結尾的是五位有符號參數,所有從shadow寄存器中選的數都作為有符號數處理。
  • 下圖中圓圈中的X或者+代表當前運算時乘法或者加法

0b7381c6-e5df-11ef-9434-92fbcf53809c.png

所以cal_t_index選擇當前使用的計數器,cal_t_param配置為4,此時相當于reload/2,cal_in_index選擇dac輸入,此時CMP1對應的計算單元值cal_d_param配置為-4,CMP2對應的計算單元的值cal_d_param配置為+4。dac的值配置為duty即可。

邊沿對齊PWM

邊沿對齊PWM(脈寬調制)是一種常見的波形生成方式,廣泛應用于各種控制和調節系統中。與中心對齊PWM不同,邊沿對齊PWM的高電平或低電平時間不是關于周期中點對稱分布的,而是相對于一個固定的邊沿(上升沿或下降沿)進行調整。這種方式簡化了硬件設計,并且在某些應用中提供了更好的靈活性。

左邊沿對齊

左邊沿對齊PWM是指PWM波形的每個周期都從同一個固定的時間點開始,即所有周期的上升沿是同步的。在這個模式下,占空比的變化只影響PWM波形的結束位置(下降沿),而起始位置保持不變。所以CMP0配置為0,CMP1配置為占空比即可。

右邊沿對齊

右邊沿對齊PWM則是在每個周期結束時保持同步,即所有周期的下降沿是同步的。在這種模式下,占空比的變化會影響PWM波形的開始位置(上升沿),而結束位置保持不變。

CMP0=Reload?Duty

CMP1=Reload

結 語

本文提供了從硬件功能介紹到軟件實現的一整套流程,幫助開發者快速上手HPM芯片PWMV2外設的使用。希望這些信息能夠為你的項目提供有價值的指導。一旦掌握了基礎,就可以探索更復雜的PWM應用,比如電機控制、電源等。不同硬件平臺的PWM實現細節可能會有所不同,但HPM系列芯片提供了功能強大的PWM外設實現各種復雜功能。同時也可以參考我們提供的例程以及解決方案深入了解PWMV2的使用方法。希望這些信息能幫助你快速入門PWM技術。如果有特定的應用場景,可以通過留言進行討論,以便給出更加詳細的建議。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3673

    瀏覽量

    135278
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5199

    瀏覽量

    214920
  • 應用開發
    +關注

    關注

    0

    文章

    60

    瀏覽量

    9441
收藏 人收藏

    評論

    相關推薦

    視頻監控2小時快速入門

    視頻監控2小時快速入門V2.0_z
    發表于 12-25 00:15 ?0次下載

    FPB-RA2E2-快速入門指南

    FPB-RA2E2-快速入門指南
    發表于 01-11 18:52 ?1次下載
    FPB-RA<b class='flag-5'>2E2</b>-<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 01-30 18:47 ?0次下載
    EK-RA<b class='flag-5'>2E2</b>-<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發表于 02-03 19:08 ?0次下載
    EK-RA<b class='flag-5'>2</b>E1 – <b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA2L1 - 快速入門指南

    EK-RA2L1 - 快速入門指南
    發表于 02-03 19:21 ?0次下載
    EK-RA<b class='flag-5'>2</b>L1 - <b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    Stream-it!-RZ-V2快速入門指南

    Stream-it! - RZ-V2 快速入門指南
    發表于 03-23 19:08 ?0次下載
    Stream-it!-RZ-V<b class='flag-5'>2</b><b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    瑞薩 R8C/2F 入門套件快速入門指南

    瑞薩 R8C/2F 入門套件快速入門指南
    發表于 04-27 19:07 ?0次下載
    瑞薩 R8C/<b class='flag-5'>2</b>F <b class='flag-5'>入門</b>套件<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    瑞薩電子 R8C/2D 入門套件快速入門指南

    瑞薩電子 R8C/2D 入門套件快速入門指南
    發表于 04-28 19:06 ?0次下載
    瑞薩電子 R8C/<b class='flag-5'>2</b>D <b class='flag-5'>入門</b>套件<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA4E2快速入門指南

    EK-RA4E2快速入門指南
    發表于 05-12 19:23 ?0次下載
    EK-RA4E<b class='flag-5'>2</b>– <b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    FPB-RA2E2-快速入門指南

    FPB-RA2E2-快速入門指南
    發表于 06-30 20:39 ?1次下載
    FPB-RA<b class='flag-5'>2E2</b>-<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 07-03 20:12 ?0次下載
    EK-RA<b class='flag-5'>2E2</b>-<b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    MCK-RA6T2快速入門指南

    MCK-RA6T2 快速入門指南
    發表于 07-03 20:39 ?0次下載
    MCK-RA6T<b class='flag-5'>2</b><b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA2A1 – 快速入門指南

    EK-RA2A1 – 快速入門指南
    發表于 07-04 20:54 ?0次下載
    EK-RA<b class='flag-5'>2</b>A1 – <b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    EK-RA6M2快速入門指南

    EK-RA6M2快速入門指南
    發表于 07-04 20:54 ?0次下載
    EK-RA6M<b class='flag-5'>2</b>– <b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南

    Stream-it!-RZ-V2快速入門指南

    Stream-it! - RZ-V2 快速入門指南
    發表于 07-10 18:58 ?0次下載
    Stream-it!-RZ-V<b class='flag-5'>2</b><b class='flag-5'>快速</b><b class='flag-5'>入門</b>指南
    主站蜘蛛池模板: 性色a| 国产精品久久久久国产精品三级 | 免费一区在线观看 | 久久精品男人影院 | 亚洲一区二区免费看 | 哪里可以看免费毛片 | 久久在线播放 | 91福利免费视频 | 成人做视频免费 | 成人网在线观看 | 国模于子涵啪啪大胆 | 天天干天天碰 | 丁香花的视频免费观看 | 毛片小视频 | 五月天婷婷社区 | 狠狠色综合久久久久尤物 | 99热色| 日韩精品一级a毛片 | 国产在线一卡二卡 | h网站免费在线观看 | 国产高清小视频 | 天天搞夜夜 | 婷婷性 | 婷婷丁香激情五月 | 国产免费高清在线精品一区 | 日本aaaa毛片在线看 | 天天操天天插 | 久草在线免费资源站 | 婷婷九月丁香 | 天天操天天插天天射 | 国产乱码一区二区三区四川人 | 亚洲免费网站 | 色接久久 | 婷婷六月丁 | 中文字幕11页 | 又长又大又粗又硬3p免费视 | 亚洲成a人片在线网站 | 久久影视精品 | 伊人草| 一级一黄在线观看视频免费 | 四虎影在永久地址在线观看 |