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

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

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

PWM波的產(chǎn)生過程?如何觸發(fā)ADC呢?

冬至子 ? 來源:龍一的編程life ? 作者:龍憨憨 ? 2023-11-08 10:42 ? 次閱讀

PWM脈寬調(diào)制技術(shù)在控制領(lǐng)域中是非常常用的技術(shù),電機(jī)控制、電源控制等都是通過PWM進(jìn)行驅(qū)動(dòng)IGBTMOSFET等開關(guān)器件進(jìn)行相關(guān)控制的。

目前所在公司的項(xiàng)目中需要用到PWM驅(qū)動(dòng)功率放大電路,用以控制電流輸出,同時(shí)也是通過EPWM觸發(fā)ADC進(jìn)行采樣電流,故此進(jìn)行學(xué)習(xí)總結(jié)。

本次總結(jié)主要有以下內(nèi)容:

1、PWM波的產(chǎn)生過程;

2、如何觸發(fā)ADC?

1、PWM的介紹

1.1 時(shí)鐘

我一直在強(qiáng)調(diào)時(shí)鐘的重要性,因?yàn)闆]有時(shí)鐘,芯片的很多外設(shè)模塊是無法工作的,在你編程的過程中可能就會(huì)遇到因?yàn)闆]有使能時(shí)鐘導(dǎo)致模塊無法工作的情況,所以當(dāng)你的程序其他配置沒有問題,卻無法進(jìn)行具體的寄存器操作時(shí),你應(yīng)該考慮查看是否打開了時(shí)鐘。

EPWM的時(shí)基模塊工作需要的時(shí)鐘信號(hào),通過對(duì)系統(tǒng)時(shí)鐘的分頻得到時(shí)基時(shí)鐘(紅圈1)進(jìn)行設(shè)置,主要是通過 時(shí)基控制寄存器(TBCTL) 的高速時(shí)基時(shí)鐘分頻位 **HSPCLKDIV[9:7] 和時(shí)基時(shí)鐘分頻位 CLKDIV[12:10] **進(jìn)行分頻設(shè)置,通常設(shè)置為 1分頻 ,即 時(shí)基時(shí)鐘為系統(tǒng)時(shí)鐘 。

TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV)

// 設(shè)置TBCLK
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x0U;
EPwm1Regs.TBCTL.bit.CLKDIV = 0x0U;

圖片

注意: TBCLK時(shí)基時(shí)鐘是否使能,EPWM模塊時(shí)鐘是否使能(如下圖Figure1),對(duì)TBCLK時(shí)基時(shí)鐘以及使用的EPWM1模塊時(shí)鐘進(jìn)行使能,在程序中(DSP2833x_SysCtrl.c中)置1,具體程序如下所示:

SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; // ePWM1
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK within the ePWM

1.2 ePWM結(jié)構(gòu)及組成單元

F28335的PWM模塊是加強(qiáng)模塊,這個(gè)加強(qiáng)表現(xiàn)在它各個(gè)ePWM的獨(dú)立性,每個(gè)ePWM小模塊都由兩路ePWM輸出組成,分別為ePWMxA和ePWMxB,這一對(duì)PWM輸出,可以配置成三種輸出:

  • 兩路獨(dú)立的單邊沿PWM輸出;
  • 兩路獨(dú)立的但互相對(duì)稱的雙邊沿PWM輸出;
  • 一對(duì)雙邊沿非對(duì)稱的PWM輸出;

DSP28335共有18路PWM,6組 * 2 EPWM(A、B)+ 6路APWM,結(jié)構(gòu)圖如下所示。

圖片

每組EPWM包括7個(gè)模塊:

時(shí)基模塊TB

比較計(jì)數(shù)模塊CC

動(dòng)作模塊AQ

死區(qū)模塊DB

斬波模塊DC

事件觸發(fā)模塊ET

錯(cuò)誤聯(lián)防模塊TZ

每個(gè)模塊各自作用如下:

TB :為輸出PWM產(chǎn)生始終基準(zhǔn)TBCLK,配置PWM的時(shí)鐘基準(zhǔn)計(jì)數(shù)器TBCTR,設(shè)置計(jì)數(shù)器的計(jì)數(shù)模式,配置硬件或軟件同步時(shí)鐘基準(zhǔn)計(jì)數(shù)器,確定ePWM同步信號(hào)輸出源;

CC:確定PWM占空比,以及ePWM輸出高低電平切換時(shí)間;

AQ:確定計(jì)數(shù)器和比較寄存器匹配時(shí)產(chǎn)生動(dòng)作,即ePWM 高低電平的切換;

DB:配置輸出PWM上升沿或下降沿延時(shí)時(shí)間,也可以將A、B兩通道配置成互補(bǔ)模式,我做的逆變器就是將ePWM配置成互補(bǔ)模式。死區(qū)時(shí)間可以編程確定;

PC:產(chǎn)生高頻PWM載波信號(hào);

TZ:當(dāng)外部有錯(cuò)誤信號(hào)產(chǎn)生時(shí),對(duì)PWM輸出進(jìn)行相應(yīng)處理,比如全置高,或拉低,或置為高阻態(tài),從而起到保護(hù)作用。當(dāng)然該功能也可以通過軟件強(qiáng)制產(chǎn)生;

EZ:使能ePWM中斷,使能ePWM觸發(fā)ADC采樣,確定事件產(chǎn)生觸發(fā)的速度和清除相關(guān)事件標(biāo)志位。

ePWM模塊的7個(gè)模塊就像一條生產(chǎn)線,一級(jí)一級(jí)的經(jīng)過,但DSP更高級(jí),可以實(shí)現(xiàn)通過配置,使得ePWM只經(jīng)過我選擇的生產(chǎn)線,沒有被選擇上的就不要經(jīng)過。

例如,死區(qū)控制模塊可以需要也可以不需要,這就看實(shí)際系統(tǒng)需不需要了。在實(shí)際使用ePWM時(shí),正常的發(fā)出PWM波往往只要要配置TB、CC、AQ、DB、ET五個(gè)模塊。

上面講了那么多,那PWM波到底是如何產(chǎn)生的呢?接下來就開始講解這個(gè)問題。

2、PWM的產(chǎn)生

2.1 時(shí)基模塊-設(shè)置PWM產(chǎn)生的三種模式

PWM產(chǎn)生的三種模式分別為:up模式、down模式、up-down模式。

PWM產(chǎn)生的本質(zhì)是信號(hào)通過與載波比較,根據(jù)設(shè)置輸出高低電平,占空比由一個(gè)周期內(nèi)高電平的時(shí)間決定。 在實(shí)際實(shí)現(xiàn)上,載波通過計(jì)數(shù)器計(jì)數(shù)得到,其周期值TBPRD即為載波計(jì)數(shù)最大值(峰值),信號(hào)是根據(jù)具體需求經(jīng)過PI控制器輸出得到,與載波進(jìn)行比較后產(chǎn)生相應(yīng)占空比。如up-down模式,如下圖1-2-1所示。

圖片

2.2 周期和頻率的計(jì)算

1、up和down模式是向上計(jì)數(shù)和向下計(jì)數(shù),其周期和頻率的計(jì)算公式一致,為:

Tpwm = (TBPRD+1)* t_TBCLK

Fpwm= 1 / Tpwm

2、up-down模式是先向上計(jì)數(shù)后向下計(jì)數(shù),其周期和頻率的計(jì)算公式為:

Tpwm = 2 * TBPRD*t_TBCLK

Fpwm= 1 / Tpwm

在實(shí)際開發(fā)中,一般選用up-down模式,較前兩種模式優(yōu)勢(shì)在于增長平滑,無較大突變,更適合實(shí)際應(yīng)用。

實(shí)際設(shè)置PWM的頻率為10KHz,TBCLK為150MHz,則可計(jì)算出周期為:

PRD = 150 000 000 / (10 000 * 2)= 7500

2.3 計(jì)數(shù)比較模塊-比較事件產(chǎn)生,決定占空比

計(jì)數(shù)比較模塊主要是通過時(shí)基計(jì)數(shù)的值與比較寄存器CMPA、CMPB進(jìn)行比較,比如圖1-2-1的值3900設(shè)置為CMPA的值,根據(jù)設(shè)置,當(dāng)計(jì)數(shù)值大于或小于CMPA的值,AQ進(jìn)行相應(yīng)動(dòng)作(置高或置低),就能得到相應(yīng)占空比的PWM波。

比較主要有四種情況:

1、TBCTR = CMPA,PWM根據(jù)AQ動(dòng)作;

2、TBCTR = CMPB,PWM根據(jù)AQ動(dòng)作;

3、TBCTR = PRD,PWM根據(jù)AQ動(dòng)作;

4、TBCTR = 0,PWM根據(jù)AQ動(dòng)作;

注意: up或down模式只比較一次,而up-down模式比較兩次。

實(shí)際過程中,比較的這個(gè)值時(shí)不斷變化的,根據(jù)具體需求(參考值)通過PID控制器在不斷調(diào)整,輸出不同占空比的PWM,達(dá)到控制的目的。

2.3 動(dòng)作模塊AQ–根據(jù)比較結(jié)果動(dòng)作,決定占空比

動(dòng)作模塊AQ根據(jù)動(dòng)作模塊寄存器AQCTLA、AQCTLB的設(shè)置對(duì)比較事件進(jìn)行動(dòng)作。

主要有四種動(dòng)作模式:

1、不動(dòng)作

2、置低

3、置高

4、翻轉(zhuǎn)

動(dòng)作模塊事件優(yōu)先級(jí)

不同模式下的動(dòng)作事件是有優(yōu)先級(jí)的,up-down模式在向上計(jì)數(shù)和向下計(jì)數(shù)的過程中,事件優(yōu)先級(jí)不一樣。所有模式下,軟件強(qiáng)制事件的優(yōu)先級(jí)最高。

至此,PWM的產(chǎn)生基本得到解答。具體是:

1、設(shè)置TBCLK時(shí)鐘以及模塊時(shí)鐘使能;
2、選擇up-down模式,確定頻率,得到周期值;
3、確定比較事件以及動(dòng)作模式,決定PWM的占空比,即可得到PWM波。=

3、如何觸發(fā)ADC?

這里主要講解一下思路。

觸發(fā)ADC的事件主要涉及到PWM模塊的事件觸發(fā)模塊ET,根據(jù)時(shí)基模塊和計(jì)數(shù)比較模塊輸入的比較事件以及CTR_Dir時(shí)基計(jì)數(shù)方向產(chǎn)生相應(yīng)事件,設(shè)置事件觸發(fā)選擇寄存器ETSEL,選擇觸發(fā)ADC啟動(dòng)轉(zhuǎn)換或進(jìn)行中斷請(qǐng)求。

圖片

ADC啟動(dòng)轉(zhuǎn)換觸發(fā)信號(hào)為EPWMxSOCA和EPWMxSOCB,根據(jù)ADC的設(shè)置選擇某個(gè)信號(hào)或兩個(gè)信號(hào)。

觸發(fā)ADC啟動(dòng)轉(zhuǎn)換的具體設(shè)置為:

1、設(shè)置哪種觸發(fā)事件,
TBCTR = CMPA
TBCTR = CMPB
TBCTR = PRD
TBCTR = 0
2、什么事件模式下情況觸發(fā)
每個(gè)事件、每2個(gè)事件、每3個(gè)事件,一般是設(shè)置為每個(gè)事件觸發(fā)ADC啟動(dòng)轉(zhuǎn)換。

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

    關(guān)注

    102

    文章

    3351

    瀏覽量

    131124
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119201
  • 逆變器
    +關(guān)注

    關(guān)注

    279

    文章

    4606

    瀏覽量

    204602
  • ADC驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    13918
  • PWM波
    +關(guān)注

    關(guān)注

    0

    文章

    99

    瀏覽量

    16791
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32L151定時(shí)器上升沿觸發(fā)ADC采樣,為什么每個(gè)PWM周期內(nèi)會(huì)觸發(fā)第二次采樣?

    PWM低電平的時(shí)候,不知道為什么每個(gè)PWM周期內(nèi)會(huì)觸發(fā)第二次采樣? 此外,如何確保ADC采樣到PWM正脈沖的中間時(shí)刻
    發(fā)表于 05-24 07:37

    PWM產(chǎn)生的方法及原理

    如休利用51單片機(jī)的來產(chǎn)生PWM,用以控制led的亮度變化,在網(wǎng)上看過一些程序,有些地方不大明白,程序是這樣的:#includeunsigned char cycle,pwm;***
    發(fā)表于 07-14 12:24

    ADCPWM觸發(fā)力矩困難

    電流具有三角的形式。因此,對(duì)于反饋控制,在其中間值即PWM信號(hào)的中間感測(cè)電流是重要的。由于PWM占空比為50%(應(yīng)該是0A的電流)時(shí)沒有得到預(yù)期的結(jié)果,所以我認(rèn)為觸發(fā)
    發(fā)表于 03-13 08:59

    pwm怎么沒有輸出

    ;delay_ms(250); }}想問一下這個(gè)程序哪里錯(cuò)誤了?? pwm怎么沒有輸出》??arr值應(yīng)該為多少??謝謝原子哥了
    發(fā)表于 06-17 09:00

    PWM觸發(fā)ADC延時(shí)采樣

    我用pwm觸發(fā)ADC采樣(CTR=CMPA時(shí)觸發(fā))現(xiàn)在我想實(shí)現(xiàn)的是當(dāng)滿足CTR=CMPA時(shí)延遲2.5us再讓ADC開始采集 。這個(gè)功能該如何
    發(fā)表于 12-05 18:33

    用定時(shí)器TIM產(chǎn)生PWM來控制ADC的采樣頻率

    實(shí)現(xiàn)的功能:用定時(shí)器TIM產(chǎn)生PWM來控制ADC的采樣頻率,在ADC中斷中將采樣值直接通過DAC輸出。本文主要展示
    發(fā)表于 08-10 06:43

    怎么知道產(chǎn)生PWM波形對(duì)不對(duì)

    前言在做嵌入式開發(fā)的過程中,不可避免的會(huì)用到PWM的功能,但是我們?cè)趺粗?b class='flag-5'>產(chǎn)生的PWM波形對(duì)不對(duì),這個(gè)時(shí)候可能就需要一臺(tái)示波器來測(cè)量一下了
    發(fā)表于 08-16 09:06

    TMS320F28335時(shí)鐘電路的主頻時(shí)鐘產(chǎn)生過程是怎樣的

    TMS320F28335時(shí)鐘電路的主頻時(shí)鐘產(chǎn)生過程是怎樣的?產(chǎn)生DSP所需要的時(shí)鐘共幾種方式
    發(fā)表于 01-17 08:07

    如何實(shí)現(xiàn)定時(shí)器TIM3輸出PWM觸發(fā)ADC采樣

    STM32F4定時(shí)器系統(tǒng)包括哪些部分?如何實(shí)現(xiàn)定時(shí)器TIM3輸出PWM觸發(fā)ADC采樣?
    發(fā)表于 01-25 06:34

    pwm產(chǎn)生驅(qū)動(dòng)電機(jī)

    一.pwm產(chǎn)生驅(qū)動(dòng)電機(jī),舵機(jī)的運(yùn)動(dòng),肯定要用到pwm,所以我們先來分享一下如何來產(chǎn)生
    發(fā)表于 02-15 06:13

    如何使用PWM觸發(fā)ADCPWM剎車功能來阻止PWM輸出

    應(yīng)用程序:本文件描述如何使用 PWM 觸發(fā) ADCPWM 剎車功能來阻止 PWM 輸出 。 BSP 版本:Mini51DE系列 BS
    發(fā)表于 08-23 07:31

    如何使用PWM觸發(fā)ADCPWM剎車功能來阻止PWM輸出

    應(yīng)用程序:本文件描述如何使用 PWM 觸發(fā) ADCPWM 剎車功能來阻止 PWM 輸出 。 BSP 版本:Mini51DE系列 BS
    發(fā)表于 08-30 06:17

    PWM產(chǎn)生電路圖

    高精度PWM產(chǎn)生電路圖 圖6-54是高精度PWM產(chǎn)生電路。該電路采用數(shù)宇數(shù)據(jù),以1%步進(jìn)
    發(fā)表于 03-11 22:13 ?8260次閱讀
    <b class='flag-5'>PWM</b><b class='flag-5'>波</b><b class='flag-5'>產(chǎn)生</b>電路圖

    AVR產(chǎn)生PWM實(shí)例程序

    AVR單片機(jī)產(chǎn)生PWM實(shí)例程序
    發(fā)表于 12-29 20:38 ?5次下載

    PWM硬件間隔觸發(fā)ADC

    PWM硬件間隔觸發(fā)ADC(新型電源技術(shù)課程答案)-在各種應(yīng)用場(chǎng)景中,比如電機(jī),電源,變頻器等應(yīng)用中,ADC的采樣點(diǎn)會(huì)有很嚴(yán)格的要求,如果采樣點(diǎn)選擇錯(cuò)誤,會(huì)給整個(gè)控制系統(tǒng)造成嚴(yán)重后果,本
    發(fā)表于 08-04 18:00 ?59次下載
    <b class='flag-5'>PWM</b>硬件間隔<b class='flag-5'>觸發(fā)</b><b class='flag-5'>ADC</b>