精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

簡單介紹PWM定時器模塊內的一些概念

331062281 ? 來源:先楫半導體HPMicro ? 2023-05-23 10:15 ? 次閱讀

概 述

在進行電機類、電源類應用開發時,如何使用PWM定時器模塊靈活、高效的實現所需 PWM波形的輸出,是眾多開發者關注的問題。先楫半導體已發布的HPM6000系列芯片上,均帶有PWM定時器模塊。與普通定時器產生的PWM相比,其產生的PWM可方便的配置為互補PWM對,并帶有強制輸出、死區插入、故障封鎖、影子寄存器等功能。

本文將簡單介紹PWM定時器模塊內的一些概念,以圖文的形式幫助開發者理解PWM定時器模塊的運行方式。然后輔以大量代碼實例,介紹了如何生成普通 PWM、互補 PWM、同步 PWM、錯相 PWM,以及PWM如何使用ACMP封波。幫助廣大開發者更好地使用 PWM 定時器模塊實現自己所需的功能。

PWM 模塊

關于先楫半導體HPM6000系列 PWM 模塊的詳細功能,請參考先楫半導體官方網站發布的 UM 手冊。

1

24+4 位向上計數器

一個 PWM 定時器模塊內共有 3 個 24+4 位寄存器,分別為 STA、CNT、RLD。STA 與 RLD 為計數器計數的起點和終點;CNT 內保存著當前時刻的計數值。計數器從 STA 開始計數,達到 RLD 后重新從 STA 計數,一個又一個周期的循環往復,周期為 RLD-STA+1。

6e7efbaa-f893-11ed-90ce-dac502259ad0.jpg

6e8dd7a6-f893-11ed-90ce-dac502259ad0.jpg

4 位拓展位,為開發者提供了更多樣的計數信息:每當 CNT 計數到 RLD時,會產生 RLD 事件(可以生成中斷或 DMA 請求);若 XRLD 不為 0,則每當 CNT 計數到 RLD 時,XCNT 加 1,當 XCNT 等于 XRLD 時,產生 XRLD 事件(可以生成中斷或 DMA 請求)。

2

比較器

一個 PWM 定時器具有 16~24 個通道,以及 24 個比較器 CMPx(x=1~24)。比較器 CMPx 可以理解為 CNT 計數過程中的觸發開關:每當CNT 等于 CMPx 時,該通道 PWM 輸出會進行翻轉。

開發者可以配置將哪些 CMPx 安裝在目標通道上:配置方法為指定 x,再指定用于該通道比較器的數量 n,結果就是 CMPx、CMPx+1、... 、CMPx+n-1 比較器被應用于該通道。

假設我們對通道 1 進行配置,x=0,n=2,則如下圖所示:

6e9ba386-f893-11ed-90ce-dac502259ad0.jpg

假設我們對通道 2 進行配置,x=2,n=4,則如下圖所示:

6ea477f4-f893-11ed-90ce-dac502259ad0.jpg

3

影子寄存器

影子寄存器的作用是為 PWM 定時器的部分關鍵寄存器提供保護。在 CPU訪問寄存器的時候,實質上改變的是它的影子寄存器,新值并不馬上生效。只有在指定的時刻,才把影子寄存器的值更新到寄存器,防止即時生效的方式導致 PWM 輸出波形異常,導致炸管子、短路等事故發生。

在芯片內,STA、RLD、CMPx、FRCMD 寄存器帶有影子寄存器(這 4 類寄存器的更新會影響 PWM 的波形)。總體而言,HPM 芯片提供了 4 種方式將影子寄存器更新到控制寄存器內,分別為:

軟件將 SHCR [SHLK]位置 1 時生效

即時生效

某個 CMPx 比較事件發生時生效

SHRLDSYNCI 上捕獲到上升沿時生效

通常建議開發者配置影子寄存器為“某個 CMPx 比較事件發生時生效”,其它 3 種方式更新影子寄存器到寄存器內時,多多少少不能保證此時 PWM 輸出的狀態,可能會導致 PWM 波形異常。只有在開發者確定用其它 3 種更新方式不會導致硬件故障時,才推薦使用。下圖展示了 CPU 以實時方式將影子寄存器更新到寄存器內可能產生的異常。

6eb2b63e-f893-11ed-90ce-dac502259ad0.jpg

4

同步輸入 SYNCI 與同步定時器 SYNT

同步輸入 SYNCI 的作用是,當此信號有效時 CNT 的值被強制為 STA,SYNCI 無效后 CNT 開始正常計時。當需要多個 PWM 定時器的時基相同或錯相時,操作PWM 定時器的 SYNCI 信號即可達到目標。

同步定時器 SYNT 是專門用來完成以上操作的計時器。SYNT 上有 4 個通道,每個通道有一個 CMP,發生 CMP 比較事件時,可通過互聯管理器 TRGM將此事件路由到 SYNCI 信號上,從而實現了多個 PWM 的同步/錯相。

6ebc7ff2-f893-11ed-90ce-dac502259ad0.jpg

5

互聯管理器 TRGM

互聯管理器是將片上眾多外設相互關聯使用的橋梁。例如可以用 PWM 比較事件觸發 ADC 采樣,使用模擬比較器 ACMP 比較結果對 PWM 封波,使用IO 輸入觸發 GPTMR 同步計時等等。其功能非常強大,且易用。下面以一張圖繪出 TRGM 的基本模型。

6ec38b6c-f893-11ed-90ce-dac502259ad0.jpg

簡而言之,TRGM 的每個 output 通道都可以在眾多的 INPUT 中選一個。例如可以將 SYNT 的比較事件做為 INPUT,輸出到 PWM 的 SYNCI,這樣就實現了 PWM 同步;例如可以將 IO 作為 INPUT,輸出到 IO,這樣就實現了IO 電平的轉移輸出。

TRGM 可以實現外設硬件級別的同步與觸發,可以實現各種外設互聯配合使用,是極有用的一個功能模塊。使用 TRGM 時,需要參考 UM 手冊中TRGMx_INPUT_MUX 列表與 TRGMx_OUTPUT_MUX 列表,合理分配資源,選擇需要的 INPUT 與 OUTPUT 信號。

6eca3516-f893-11ed-90ce-dac502259ad0.jpg

6ecff9ba-f893-11ed-90ce-dac502259ad0.jpg

PWM模塊

普通PWM

由上述可知,一路普通PWM的輸出需要配置好以下幾點:

PWM 輸出控制:是否互補對、死區插入等

RLD、STA

CMPx

影子寄存器

函數如下,逐一進行分析:

6ed494ac-f893-11ed-90ce-dac502259ad0.jpg

首先停止 PWM 計時器的計數器,將 PWM 計數器清零,獲取 SDK 提供的 PWM 輸出默認配置。程序沒有特別之處,屬于配置前的初始化工作。

6eda9d52-f893-11ed-90ce-dac502259ad0.jpg

配置 PWM 允許輸出,死區為 0,輸出不反相;

6ee2b1c2-f893-11ed-90ce-dac502259ad0.jpg

設置 RLD 與 STA,分別為 reload 和 0;

6ee8600e-f893-11ed-90ce-dac502259ad0.jpg

配置 CMPx,模式為輸出比較模式,比較值為 reload+1,影子寄存器更新方式為寫入 shlk 位更新;此時由于計數器計數無法達到 CMPx,故輸出波形恒為低電平。

6eecfcb8-f893-11ed-90ce-dac502259ad0.jpg

配置通道 0 使用 CMP0,比較器數量為 1 個,因此 CMP0 的大小決定了pwm 的占空比,占空比為(RLD-CMP0)/RLD

6ef185b2-f893-11ed-90ce-dac502259ad0.jpg

啟動計數器,更新 CMP0 的影子寄存器為 reload/4,最后將影子寄存器的值提交到寄存器內生效。運行結果如下:

6efb0dc6-f893-11ed-90ce-dac502259ad0.jpg





審核編輯:劉清

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

    關注

    31

    文章

    5325

    瀏覽量

    120052
  • 比較器
    +關注

    關注

    14

    文章

    1637

    瀏覽量

    107120
  • dma
    dma
    +關注

    關注

    3

    文章

    559

    瀏覽量

    100447
  • pwm定時器
    +關注

    關注

    0

    文章

    6

    瀏覽量

    1986

原文標題:看完這一篇,HPM6000系列PWM波盡在掌握(上)

文章出處:【微信號:HPMicro,微信公眾號:先楫半導體HPMicro】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    定時器一些使用案例

    本片文章包含了定時器一些使用,包括下面五個實驗:1.測量信號的脈寬2.PWM 輸出3.PWM 互補輸出4.PWM 輸入5.電容按鍵檢測
    發表于 08-16 07:00

    Stm32CubeMx基本定時器概念

    基本定時器概念在stm32f103中,共有八個定時器:TIM1~TIM8。其中TIM6和TIM7是基本定時器基本定時器相較于其他
    發表于 08-18 08:18

    STM32高級定時器-PWM簡單學習案例

    高級定時器與通用定時器比較類似,下面是個TIM1 的PWM 程序,TIM1是STM32唯的高級定時器
    發表于 04-21 14:47 ?4776次閱讀
    STM32高級<b class='flag-5'>定時器</b>-<b class='flag-5'>PWM</b><b class='flag-5'>簡單</b>學習案例

    如何使用高端定時器(HNET)模塊進行PWM開發?

    如何使用高端定時器進行PWM開發
    的頭像 發表于 08-22 00:36 ?3424次閱讀

    如何通過STM32的定時器輸出PWM

    ? 本文將介紹通過STM32的定時器輸出PWM,如果對定時器不太熟悉的同學可以看下之前的文章《STM32基礎定時器詳解》,關于
    的頭像 發表于 02-20 15:08 ?2.2w次閱讀
    如何通過STM32的<b class='flag-5'>定時器</b>輸出<b class='flag-5'>PWM</b>?

    單片機MSP430入門-理論⑦--定時器模塊-定時器A②

    ,這次將整理一些關于定時器A的,各寄存的用法以及功能1.0 首先說下TACTL控制寄存先大概解釋下這幾個位的作用:Unused bit
    發表于 11-19 17:51 ?9次下載
    單片機MSP430入門-理論⑦--<b class='flag-5'>定時器</b><b class='flag-5'>模塊</b>-<b class='flag-5'>定時器</b>A②

    單片機MSP430入門理論⑧--定時器模塊-定時器A③

    繼續介紹定時器A,這次將整理一些關于定時器A的,其他寄存的用法以及功能1.0 下面要說的是TAR寄存
    發表于 11-19 18:51 ?8次下載
    單片機MSP430入門理論⑧--<b class='flag-5'>定時器</b><b class='flag-5'>模塊</b>-<b class='flag-5'>定時器</b>A③

    定時器的用法以及pwm的調速

    過程是自動完成的,不需要CPU的參與。51單片機中的定時器是根據機器內部的時鐘或者是外部的脈沖信號對寄存中的數據加1。有了定時器/計數之后,可以增加單片機的效率,
    發表于 11-24 21:06 ?5次下載
    <b class='flag-5'>定時器</b>的用法以及<b class='flag-5'>pwm</b>的調速

    使用555定時器來制作一些樂器

    電子發燒友網站提供《使用555定時器來制作一些樂器.zip》資料免費下載
    發表于 11-16 09:56 ?1次下載
    使用555<b class='flag-5'>定時器</b>來制作<b class='flag-5'>一些</b>樂器

    如何使用555定時器來產生PWM

    生成PWM ,那么我們更喜歡一些通用IC,如運算放大器,定時器,脈沖發生等。這里我們使用 555定時器IC來產生
    的頭像 發表于 01-25 15:09 ?7618次閱讀
    如何使用555<b class='flag-5'>定時器</b>來產生<b class='flag-5'>PWM</b>

    STM32定時器介紹

    本文將介紹STM32定時器一些基本概念性的東西,方便后面內容的理解學習。
    的頭像 發表于 04-21 11:33 ?2987次閱讀
    STM32<b class='flag-5'>定時器</b><b class='flag-5'>介紹</b>

    文詳解HPM6000系列PWM定時器模塊

    在進行電機類、電源類應用開發時,如何使用PWM定時器模塊靈活、高效的實現所需 PWM波形的輸出,是眾多開發者關注的問題。在上篇文章里,我們介紹
    的頭像 發表于 05-30 14:36 ?1126次閱讀
    <b class='flag-5'>一</b>文詳解HPM6000系列<b class='flag-5'>PWM</b><b class='flag-5'>定時器</b><b class='flag-5'>模塊</b>

    看完這篇,HPM6000系列PWM波盡在掌握(上)

    定時器產生的PWM相比,其產生的PWM可方便的配置為互補PWM對,并帶有強制輸出、死區插入、故障封鎖、影子寄存等功能。本文將
    的頭像 發表于 05-30 10:03 ?1367次閱讀
    看完這<b class='flag-5'>一</b>篇,HPM6000系列<b class='flag-5'>PWM</b>波盡在掌握(上)

    看完這篇,HPM6000系列PWM波盡在掌握(下)

    概述在進行電機類、電源類應用開發時,如何使用PWM定時器模塊靈活、高效的實現所需PWM波形的輸出,是眾多開發者關注的問題。在上篇文章里,我們介紹
    的頭像 發表于 06-01 15:28 ?1114次閱讀
    看完這<b class='flag-5'>一</b>篇,HPM6000系列<b class='flag-5'>PWM</b>波盡在掌握(下)

    關于軟件定時器一些討論

    這就是簡單的軟件定時器,是的,這就是特別簡潔版本的軟件定時器。當然它是有缺點的,比如systick_ms每1ms加1,所以軟件定時器的精度是ms為單位的,并且如果while(1)中有其
    的頭像 發表于 10-13 16:14 ?537次閱讀
    關于軟件<b class='flag-5'>定時器</b>的<b class='flag-5'>一些</b>討論