一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

應(yīng)用筆記(三)| 運(yùn)用DMA 功能實(shí)現(xiàn)高級(jí)定時(shí)器和ADC 的同步觸發(fā)采樣

武漢芯源半導(dǎo)體有限公司 ? 2022-08-03 10:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


前言

在做 BLDC 電機(jī)控制時(shí),需要 ADC 的采樣時(shí)刻和定時(shí)器產(chǎn)生的 PWM 波形相配合,才能獲取準(zhǔn)確的采樣值, 本文介紹了 CW32F030 系列芯片通過運(yùn)用 DMA 功能實(shí)現(xiàn)高級(jí)定時(shí)器和 ADC 的同步觸發(fā)采樣的功能。

▇PWM 輸出實(shí)現(xiàn)

1.1 輸出端口的配置

根據(jù) GPIO 復(fù)用功能分配表(完整表格請(qǐng)參閱 CW32F030 用戶手冊(cè)中表 9-2 GPIO 復(fù)用功能分配表),選取期 望輸出互補(bǔ) PWM 波形的引腳,如本例中 PA8、PA9、PA10、PB13、PB14、PB15,如下表所示:

▼ GPIO 復(fù)用功能分配表

poYBAGLH8pCAa8hnAAITz5bwEAw203.png

PA8 和 PB13 組成一對(duì)互補(bǔ)輸出通道 CH1,PA9 和 PB14 組成一對(duì)互補(bǔ)輸出通道 CH2,PA10 和 PB15 組成一 對(duì)互補(bǔ)輸出 CH3。

步驟如下:

1. 將相關(guān)的 GPIO 設(shè)置為輸出;

2. 將 GPIO 配置為 ATIM 的比較輸出復(fù)用功能。

代碼如下:

poYBAGLH8peANMwFAAH-kcB7Yac843.jpgpoYBAGLH8paAYVuGAAFzlRiairQ143.jpg

1.2 ATIM 的配置

ATIM 包含一個(gè) 16 位的計(jì)數(shù)器 / 定時(shí)器和 7 個(gè)比較單元。7 個(gè)比較單元中,有六個(gè)具有捕獲功能,并且這 6 個(gè)捕獲 / 比較單元可以成對(duì)使用,組成互補(bǔ)輸出的功能。

本文以產(chǎn)生一個(gè)驅(qū)動(dòng) BLDC 電機(jī)所需的 20kHz 的三路互補(bǔ)輸出的 PWM 波形為例,選取 ATIM 的時(shí)基信號(hào)為 PCLK。

本例中 PCLK 為 64MHz,并通過 ATIM 的預(yù)分頻器進(jìn)行 16 分頻后,以 4MHz 頻率進(jìn)行計(jì)數(shù)。

為方便設(shè)定 ADC 的采樣時(shí)間,ATIM 采用中央對(duì)齊模式計(jì)數(shù),設(shè)置 ATIM 的自動(dòng)重載寄存器(ARR)為 100, 則 ATIM 的將先從 0 累加至 99,再?gòu)?100 遞減至 1,故計(jì)數(shù)周期為 2 倍的 ARR 寄存器的值,即 PWM 的頻率 為 20kHz。

通過設(shè)置 ATIM 的控制寄存器(CR)的 COMP 位為 1,使得 PWM 以互補(bǔ)的方式輸出,CH1A 和 CH1B 的脈寬 由通道 1比較 /捕獲寄存器 A(CH1CCRA)決定,CH1B的輸出脈寬不再由通道 1比較 /捕獲寄存器 B(CH1CCRB) 決定,CH1CCRB 仍可用于設(shè)定 CH1B 比較匹配的值。CH2A 和 CH2B,CH3A 和 CH3B 與之類似。

在設(shè)置輸出 PWM 互補(bǔ)輸出時(shí),可以對(duì)互補(bǔ)通道加入死區(qū)時(shí)間,由死區(qū)時(shí)間寄存器(DTR)控制。

ATIM 配置輸出 3 對(duì)互補(bǔ)帶死區(qū)的 PWM 波形,詳細(xì)配置代碼如下:

pYYBAGLH8paAeIqyAAWa4osRGKU706.jpg

pYYBAGLH8paAVPS2AAJGDHN-JQg656.jpgpoYBAGLH8paAODqQAAJJLuXceZQ777.jpg

▼ 產(chǎn)生的 PWM 波形如下:

pYYBAGLH8paAeKq3AACw75bb_hc950.jpg

1.3 ADC 的配置

1.3.1 序列采樣

當(dāng)需求的采樣通道小于等于 4 路時(shí),可以通過 ADC 的序列采樣模式實(shí)現(xiàn),并且可以通過 ATIM 的通道 1~3 比 較 / 捕獲寄存器 B 中任意一個(gè)寄存器設(shè)定 ADC 的采樣時(shí)刻,這些操作都可以由硬件自動(dòng)完成,減輕了 CPU 的工作量。

以采樣 AIN0~AIN3 這 4 路輸入為例,設(shè)定采樣時(shí)刻為 ATIM 計(jì)數(shù)達(dá)到 ARR 時(shí),其參考代碼如下:

poYBAGLH8paAOByfAAT7R9TK3iE555.jpgpYYBAGLH8paAdhe6AAGxvncQTnQ916.jpg

上述方法完全由硬件實(shí)現(xiàn),不需要 CPU 和中斷的參與,執(zhí)行效率非常高,不足的地方是采樣通道限制為 4 路。

1.3.2DMA 擴(kuò)展采樣

如果需要對(duì)超過 4 路的模擬量進(jìn)行采樣,則需要結(jié)合 DMA 的功能,以實(shí)現(xiàn)較少的 CPU 參與。其思路如下:

1. ADC 配置為單通道單次轉(zhuǎn)換,完成轉(zhuǎn)換后硬件觸發(fā) DMA;

2. DMA 的 CH1 用于將 ADC 的轉(zhuǎn)換結(jié)果傳輸?shù)?RAM 中,本例中將采樣 6 個(gè) ADC 通道,因此傳輸次數(shù) CNT 為 6,源地址固定為 ADC 的 RESULT0 寄存器,目的地址需要遞增;

3. DMA 的 CH2 用于更改 ADC 的采樣通道,當(dāng) ADC 轉(zhuǎn)換完成后,從 RAM 中取 ADC 的通道配置參數(shù),自 動(dòng)配置 ADC 的寄存器值,因此源地址為 RAM,地址遞增,目的地址為 ADC 的通道控制寄存器;

4. DMA 的 CH3 用于再次啟動(dòng) ADC,因?yàn)?ADC 配置為單次轉(zhuǎn)換,當(dāng)轉(zhuǎn)換完成后,ADC 自動(dòng)停止轉(zhuǎn)換,所 以需要通過 DMA 向 ADC 的轉(zhuǎn)換啟動(dòng)寄存器置位,以再次啟動(dòng) ADC 轉(zhuǎn)換;

5. DMA 的 CH1 傳輸完成后,ADC 的 6 路轉(zhuǎn)換也完成了,并且轉(zhuǎn)換結(jié)果也被傳輸?shù)?RAM,可通過 CH1 的 傳輸完成中斷,將 DMA 的參數(shù)重新配置,就實(shí)現(xiàn)了多路 ADC 的循環(huán)采樣;

6. 通過 ATIM 的比較通道 4,去觸發(fā) DMA 的 CH4,向 ADC 的轉(zhuǎn)換啟動(dòng)寄存器置位,啟動(dòng) ADC。

其參考代碼如下:

? ADC 的配置:

pYYBAGLH8paARtQRAAMcK9hJb6Y016.jpg

ADC 配置為單次單通道采樣,采樣完成后可觸發(fā) DMA。

? DMA 的配置:

pYYBAGLH8paAJikiAAYOoHUrzqs126.jpgpoYBAGLH8paAD5xOAARHvCmLtSc418.jpg

? ATIM 需要在之前的配置上增加通道 4 的設(shè)置,增加的代碼如下:

poYBAGLH8paATj-SAAQDVbmzYBA751.jpgpYYBAGLH8paAB7oDAADKtq7nGRA067.jpg

這種方法可以實(shí)現(xiàn)多于 4個(gè)模擬通道的采樣,采樣結(jié)果自動(dòng)保存在內(nèi)存中,并且僅在最后一個(gè)通道采樣完成后, 進(jìn)入一次中斷服務(wù)程序?qū)?DMA 的配置進(jìn)行復(fù)位,所以 CPU 的開銷是比較小的,而且可以通過 ATIM 的比較 通道 4 靈活設(shè)置采樣時(shí)機(jī)。

聲明:本文內(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)注

    48

    文章

    7953

    瀏覽量

    155066
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650502
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17984

    瀏覽量

    366943
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32F723ZET6使用ADC捕獲標(biāo)準(zhǔn)正弦波并通過USB主動(dòng)上報(bào),正弦波重新擬合后存在凹陷峰怎么解決?

    捕獲5KHZ頻率的正弦波,使用的是100khz定時(shí)器2溢出事件觸發(fā)ADC采樣采樣144cyc,使用DM
    發(fā)表于 06-20 07:22

    普源示波器高級(jí)觸發(fā)功能案例分析

    一、引言 在電子測(cè)量領(lǐng)域,示波器的觸發(fā)功能如同“信號(hào)捕手”,決定著波形捕獲的精準(zhǔn)度與效率。普源示波器(如DHO1204U、MSO5000系列等)不僅具備基礎(chǔ)觸發(fā)模式(邊沿觸發(fā)、脈沖
    的頭像 發(fā)表于 05-29 09:36 ?130次閱讀

    24位同步采樣ADC軟硬件替換ADS1274動(dòng)態(tài)應(yīng)變應(yīng)用方案

    24位同步采樣ADC軟硬件替換ADS1274動(dòng)態(tài)應(yīng)變應(yīng)用方案
    的頭像 發(fā)表于 04-28 09:52 ?294次閱讀
    24位<b class='flag-5'>同步</b><b class='flag-5'>采樣</b><b class='flag-5'>ADC</b>軟硬件替換ADS1274動(dòng)態(tài)應(yīng)變<b class='flag-5'>器</b>應(yīng)用方案

    MCU定時(shí)器/計(jì)數(shù)

    架構(gòu)與功能特性? 定時(shí)器類型與配置? 高級(jí)控制定時(shí)器?:支持互補(bǔ)PWM輸出與剎車功能,適用于電機(jī)驅(qū)動(dòng)等高精度控制場(chǎng)景。通用
    的頭像 發(fā)表于 04-27 13:54 ?296次閱讀

    STM32使用外部中斷觸發(fā)ADC采樣DMA搬運(yùn)出現(xiàn)兩次進(jìn)入DMA中斷的異常情況,怎么解決?

    STM32使用外部中斷觸發(fā)ADC采樣DMA搬運(yùn)出現(xiàn)兩次進(jìn)入DMA中斷的異常情況,使用的HAL庫(kù)+MX配置的,示波器觀察波形
    發(fā)表于 03-14 12:46

    STM32H723使用DMA方式實(shí)現(xiàn)定時(shí)器輸入捕獲只能執(zhí)行一次嗎?

    目的:我們希望在 STM32H723 平臺(tái)上以 DMA 模式實(shí)現(xiàn)定時(shí)器輸入捕獲,而不中斷當(dāng)前問題:使用 Cube MX 配置相關(guān)參數(shù),只使用 TIM4 的 CH2 作為輸入采集直接模式,Slave
    發(fā)表于 03-12 08:21

    請(qǐng)問什么是同步采樣ADC?要實(shí)現(xiàn)同步采樣要滿足什么條件?

    請(qǐng)問什么是同步采樣ADC?要實(shí)現(xiàn)同步采樣要滿足什么條件? 謝謝!
    發(fā)表于 01-17 07:49

    STM32H743的高精度定時(shí)器觸發(fā)ADC采樣

    目前做的是移相全橋,配置出一對(duì)可以移相互補(bǔ)的PWM波,目前已經(jīng)能夠產(chǎn)生了,但是,還是想要在滯后橋臂導(dǎo)通時(shí)采集數(shù)據(jù),即在后橋臂開啟時(shí)使用hrtim中的ADC觸發(fā)采樣,我這個(gè)就是在master
    發(fā)表于 01-09 15:49

    tms320280021 adc采樣波形,為什么adc采樣頻率上來(lái)波形就不好了?

    使用芯片內(nèi)部ad采樣,ad時(shí)鐘配置為最高100mhz,采樣時(shí)間配置15時(shí)鐘周期。timer 200k觸發(fā)采樣,使能dma中斷,在
    發(fā)表于 12-13 16:56

    ADS131A04如果想實(shí)現(xiàn)多個(gè)設(shè)備的同步觸發(fā)采樣,應(yīng)該如何實(shí)現(xiàn)呢?

    的standby模式,也是如此。這點(diǎn)非常奇怪,如果想實(shí)現(xiàn)多個(gè)設(shè)備的同步觸發(fā)采樣,應(yīng)該如何實(shí)現(xiàn)呢?主要復(fù)位可能會(huì)消耗4.5ms,希望在
    發(fā)表于 12-04 07:13

    詳解CKS32F107xx系列的定時(shí)器同步功能

    CKS32F107xx系列部分定時(shí)器在內(nèi)部是相連的,可用于定時(shí)器同步或鏈接,方便用戶配置不同的同步模式,以便在電機(jī)控制、數(shù)據(jù)采集和PWM信號(hào)生成等應(yīng)用中,
    的頭像 發(fā)表于 11-26 17:51 ?1058次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時(shí)器</b><b class='flag-5'>同步</b><b class='flag-5'>功能</b>

    ADC3583是否支持多片同步ADC采樣同步)?

    使用其內(nèi)部的抽取濾波時(shí),利用SYNC信號(hào)可以實(shí)現(xiàn)多片ADC3853的輸出IQ數(shù)據(jù)的同步?!眠@種方式能否滿足我的需求(雖然抽取會(huì)降低數(shù)據(jù)采樣
    發(fā)表于 11-18 06:17

    高級(jí)定時(shí)器PWM輸入模式的配置方法

    我們將向大家介紹高級(jí)定時(shí)器的另一個(gè)常見應(yīng)用——PWM輸入模式。在本節(jié)課中,我們將先圍繞輸入捕獲模式展開,并重點(diǎn)描述PWM輸入模式和涉及的寄存,最后通過一個(gè)實(shí)驗(yàn)例程去介紹PWM輸入模式的配置方法。
    的頭像 發(fā)表于 11-08 16:48 ?4383次閱讀
    <b class='flag-5'>高級(jí)</b><b class='flag-5'>定時(shí)器</b>PWM輸入模式的配置方法

    運(yùn)用MSPM0的DMA和Event功能實(shí)現(xiàn)ADC多路周期性采樣

    電子發(fā)燒友網(wǎng)站提供《運(yùn)用MSPM0的DMA和Event功能實(shí)現(xiàn)ADC多路周期性采樣.pdf》資料
    發(fā)表于 09-06 15:01 ?12次下載
    <b class='flag-5'>運(yùn)用</b>MSPM0的<b class='flag-5'>DMA</b>和Event<b class='flag-5'>功能</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>ADC</b>多路周期性<b class='flag-5'>采樣</b>

    STM32F407ADC采樣設(shè)置死機(jī)怎么解決?

    使用STM32F407ADC,ADC1ADC2 ADC3分別分配8個(gè)通道(ADC1 把芯片測(cè)溫等
    發(fā)表于 07-26 06:43