色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

武漢芯源半導(dǎo)體有限公司 ? 2022-08-03 10:09 ? 次閱讀


前言

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

▇PWM 輸出實現(xiàn)

1.1 輸出端口的配置

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

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

poYBAGLH8pCAa8hnAAITz5bwEAw203.png

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

步驟如下:

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

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

代碼如下:

poYBAGLH8peANMwFAAH-kcB7Yac843.jpgpoYBAGLH8paAYVuGAAFzlRiairQ143.jpg

1.2 ATIM 的配置

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

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

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

為方便設(shè)定 ADC 的采樣時間,ATIM 采用中央對齊模式計數(shù),設(shè)置 ATIM 的自動重載寄存器(ARR)為 100, 則 ATIM 的將先從 0 累加至 99,再從 100 遞減至 1,故計數(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ǔ)輸出時,可以對互補(bǔ)通道加入死區(qū)時間,由死區(qū)時間寄存器(DTR)控制。

ATIM 配置輸出 3 對互補(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 路時,可以通過 ADC 的序列采樣模式實現(xiàn),并且可以通過 ATIM 的通道 1~3 比 較 / 捕獲寄存器 B 中任意一個寄存器設(shè)定 ADC 的采樣時刻,這些操作都可以由硬件自動完成,減輕了 CPU 的工作量。

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

poYBAGLH8paAOByfAAT7R9TK3iE555.jpgpYYBAGLH8paAdhe6AAGxvncQTnQ916.jpg

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

1.3.2DMA 擴(kuò)展采樣

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

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

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

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

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

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

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

其參考代碼如下:

? ADC 的配置:

pYYBAGLH8paARtQRAAMcK9hJb6Y016.jpg

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

? DMA 的配置:

pYYBAGLH8paAJikiAAYOoHUrzqs126.jpgpoYBAGLH8paAD5xOAARHvCmLtSc418.jpg

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

poYBAGLH8paATj-SAAQDVbmzYBA751.jpgpYYBAGLH8paAB7oDAADKtq7nGRA067.jpg

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

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

    關(guān)注

    48

    文章

    7558

    瀏覽量

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

    關(guān)注

    6037

    文章

    44560

    瀏覽量

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

    關(guān)注

    146

    文章

    17156

    瀏覽量

    351280
收藏 人收藏

    評論

    相關(guān)推薦

    詳解CKS32F107xx系列的定時器同步功能

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

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

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

    STM32F103 ADC利用DMA進(jìn)行采樣遇到的幾個疑問求解

    STM32F103配置了ADC1 的4個通道,利用定時器的事件觸發(fā)進(jìn)行10Hz 的數(shù)據(jù)采樣,數(shù)據(jù)通過DMA傳輸。然后希望每次
    發(fā)表于 07-02 07:04

    關(guān)于定時器觸發(fā)ADC連續(xù)采樣dma傳輸?shù)囊蓡柷蠼猓?/a>

    實現(xiàn)功能,但我未找到相關(guān)的API,沒找到關(guān)于adc這方面的函數(shù)。所以想問一下是否有定時器觸發(fā)ADC
    發(fā)表于 06-14 07:25

    CW32使用DMA單通道、定時器觸發(fā)ADC實現(xiàn)了多路AD采集

    本測試樣例基于CW32F030C8T6MCU,使用DMA單通道、定時器觸發(fā)ADC實現(xiàn)了12路AD采集。
    的頭像 發(fā)表于 05-24 09:29 ?849次閱讀
    CW32使用<b class='flag-5'>DMA</b>單通道、<b class='flag-5'>定時器</b><b class='flag-5'>觸發(fā)</b><b class='flag-5'>ADC</b><b class='flag-5'>實現(xiàn)</b>了多路AD采集

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

    : ADC采樣完成DMA中斷函數(shù)-連續(xù)反轉(zhuǎn)GPIO輸出的波形 配置如下: 定時器4:產(chǎn)生兩路PWM信號驅(qū)動負(fù)載,同時將輸出觸發(fā)設(shè)置為 Up
    發(fā)表于 05-24 07:37

    芯海CS32F0XXTIMER外設(shè)模塊應(yīng)用筆記

    用戶示例做了工作原理與相關(guān)代碼介紹,以方便用戶快速移 本應(yīng)用筆記分為四部分: ●定時器特性概述 。基本定時器功能介紹 高級
    發(fā)表于 05-16 15:02

    芯海科技應(yīng)用筆記:CS32F0XX TIMER外設(shè)模塊指導(dǎo)

    紹的特定用戶示例做了工作原理與相關(guān)代碼介紹, 以方便用戶快速移。本應(yīng)用筆記分為四部分:定時器特性概述、基本定時器功能介紹、高級
    發(fā)表于 05-16 10:52

    芯海應(yīng)用筆記:CS32F0XX ADC外設(shè)模塊指導(dǎo)

    本應(yīng)用筆記旨在展示使用 CS32F0xx 微控,提高 A/D 轉(zhuǎn)化精度的應(yīng)用。幫助 ADC 模塊用戶了解CS32 微控提供的一些高級應(yīng)用
    發(fā)表于 05-16 10:49

    信號通過ADC DMA DAC進(jìn)行轉(zhuǎn)換,非空狀態(tài)下觸發(fā)定時器中斷進(jìn)行延時,中斷結(jié)束還會繼續(xù)DMA轉(zhuǎn)換嗎?

    信號通過ADC DMA DAC進(jìn)行轉(zhuǎn)換,其中需要延時 我的想法是 把ADC數(shù)據(jù)存入FIFO,然后根據(jù)DMA_GetFIFOStatus()函數(shù)判斷FIFO狀態(tài),非空狀態(tài)下
    發(fā)表于 04-03 08:06

    請問如何使用定時器的更新事件觸發(fā)DMA讀取6字節(jié)SPI數(shù)據(jù)?

    想用定時器的更新事件觸發(fā)DMA讀取SPI數(shù)據(jù),現(xiàn)在有個問題是一次更新事件只能觸發(fā)一次DMA傳輸,我想要
    發(fā)表于 03-29 06:16

    STM32G030定時器16 17和1同步輸出如何實現(xiàn)

    STM32G030系列中只有定時器1 16和17定時器可以輸出帶死區(qū)時間互補(bǔ)pwm,我想實現(xiàn)其中兩個或者3個同步輸出,請問如何
    發(fā)表于 03-27 06:45

    STM32L0使用定時器上升沿觸發(fā)ADC采樣時,采樣頻率如何確定?

    我想問一下,在使用定時器上升沿觸發(fā)ADC采樣時,采樣頻率如何確定,是定時器頻率就等于
    發(fā)表于 03-20 06:37

    STM32L0采用tim6上升沿觸發(fā)使ADC采樣,把定時器頻率配為4K后,采樣周期不對,為什么?

    目前使用的是STM32L0系列芯片,采用tim6上升沿觸發(fā)使ADC采樣,但把定時器頻率配為4K后,采樣周期不對,首先想問tim6的時鐘源來自
    發(fā)表于 03-20 06:18

    555定時器的基本功能 555定時器的工作原理及其應(yīng)用

    定時器種基本工作模式,分別是單穩(wěn)態(tài)、自由運放和雙穩(wěn)態(tài)。它可以在多種電子電路中實現(xiàn)功能實現(xiàn)。下面將詳細(xì)介紹它們的
    的頭像 發(fā)表于 01-18 11:12 ?1.5w次閱讀
    主站蜘蛛池模板: 97人人看碰人免费公开视频| 精品国内自产拍在线观看视频| 欧美精品AV一区二区无码| 北原多香子qvod| 亚洲精品97福利在线| 欧美18videosex| 国产呦精品一区二区三区网站| 99精品欧美一区二区三区美图| 午夜性爽视频男人的天堂在线 | 99热久久视频只有精品6国产| 一区二区三区国产| 神马电影院午 夜理论| 空姐厕所啪啪啪| 国产精品成人网| 99视频免费在线| 亚洲精品国产自在在线观看| 玄幻全黄h全肉后宫| 人妻仑乱少妇88MAV| 理论片午午伦夜理片久久| 国产午夜精品一区理论片飘花| japansemature护士| 在线观看成年人免费视频| 忘忧草在线| 日本高清无卡码一区二区久久| 九九久久久2| 跪趴式啪啪GIF动态图27报| 777久久人妻少妇嫩草AV蜜桃| 亚洲无遮挡| 亚洲XXX午休国产熟女屁| 色婷婷激婷婷深爱五月小蛇| 嗯啊好爽视频| 美女视频秀色福利视频| 精品欧美一区二区三区久久久| 加勒比一本之道高清视频在线观看| 高清欧美性猛交xxxx黑人猛交| 99精品久久久久久久| 91青青草原| 最新国产麻豆精品| 一区三区不卡高清影视| 伊人久久综合| 一本到高清视频在线观看三区|