前言
在做 BLDC 電機控制時,需要 ADC 的采樣時刻和定時器產生的 PWM 波形相配合,才能獲取準確的采樣值, 本文介紹了 CW32F030 系列芯片通過運用 DMA 功能實現高級定時器和 ADC 的同步觸發采樣的功能。
▇PWM 輸出實現
1.1 輸出端口的配置
根據 GPIO 復用功能分配表(完整表格請參閱 CW32F030 用戶手冊中表 9-2 GPIO 復用功能分配表),選取期 望輸出互補 PWM 波形的引腳,如本例中 PA8、PA9、PA10、PB13、PB14、PB15,如下表所示:
▼ GPIO 復用功能分配表
PA8 和 PB13 組成一對互補輸出通道 CH1,PA9 和 PB14 組成一對互補輸出通道 CH2,PA10 和 PB15 組成一 對互補輸出 CH3。
步驟如下:
1. 將相關的 GPIO 設置為輸出;
2. 將 GPIO 配置為 ATIM 的比較輸出復用功能。
代碼如下:
1.2 ATIM 的配置
ATIM 包含一個 16 位的計數器 / 定時器和 7 個比較單元。7 個比較單元中,有六個具有捕獲功能,并且這 6 個捕獲 / 比較單元可以成對使用,組成互補輸出的功能。
本文以產生一個驅動 BLDC 電機所需的 20kHz 的三路互補輸出的 PWM 波形為例,選取 ATIM 的時基信號為 PCLK。
本例中 PCLK 為 64MHz,并通過 ATIM 的預分頻器進行 16 分頻后,以 4MHz 頻率進行計數。
為方便設定 ADC 的采樣時間,ATIM 采用中央對齊模式計數,設置 ATIM 的自動重載寄存器(ARR)為 100, 則 ATIM 的將先從 0 累加至 99,再從 100 遞減至 1,故計數周期為 2 倍的 ARR 寄存器的值,即 PWM 的頻率 為 20kHz。
通過設置 ATIM 的控制寄存器(CR)的 COMP 位為 1,使得 PWM 以互補的方式輸出,CH1A 和 CH1B 的脈寬 由通道 1比較 /捕獲寄存器 A(CH1CCRA)決定,CH1B的輸出脈寬不再由通道 1比較 /捕獲寄存器 B(CH1CCRB) 決定,CH1CCRB 仍可用于設定 CH1B 比較匹配的值。CH2A 和 CH2B,CH3A 和 CH3B 與之類似。
在設置輸出 PWM 互補輸出時,可以對互補通道加入死區時間,由死區時間寄存器(DTR)控制。
ATIM 配置輸出 3 對互補帶死區的 PWM 波形,詳細配置代碼如下:
▼ 產生的 PWM 波形如下:
1.3 ADC 的配置
1.3.1 序列采樣
當需求的采樣通道小于等于 4 路時,可以通過 ADC 的序列采樣模式實現,并且可以通過 ATIM 的通道 1~3 比 較 / 捕獲寄存器 B 中任意一個寄存器設定 ADC 的采樣時刻,這些操作都可以由硬件自動完成,減輕了 CPU 的工作量。
以采樣 AIN0~AIN3 這 4 路輸入為例,設定采樣時刻為 ATIM 計數達到 ARR 時,其參考代碼如下:
上述方法完全由硬件實現,不需要 CPU 和中斷的參與,執行效率非常高,不足的地方是采樣通道限制為 4 路。
1.3.2DMA 擴展采樣
如果需要對超過 4 路的模擬量進行采樣,則需要結合 DMA 的功能,以實現較少的 CPU 參與。其思路如下:
1. ADC 配置為單通道單次轉換,完成轉換后硬件觸發 DMA;
2. DMA 的 CH1 用于將 ADC 的轉換結果傳輸到 RAM 中,本例中將采樣 6 個 ADC 通道,因此傳輸次數 CNT 為 6,源地址固定為 ADC 的 RESULT0 寄存器,目的地址需要遞增;
3. DMA 的 CH2 用于更改 ADC 的采樣通道,當 ADC 轉換完成后,從 RAM 中取 ADC 的通道配置參數,自 動配置 ADC 的寄存器值,因此源地址為 RAM,地址遞增,目的地址為 ADC 的通道控制寄存器;
4. DMA 的 CH3 用于再次啟動 ADC,因為 ADC 配置為單次轉換,當轉換完成后,ADC 自動停止轉換,所 以需要通過 DMA 向 ADC 的轉換啟動寄存器置位,以再次啟動 ADC 轉換;
5. DMA 的 CH1 傳輸完成后,ADC 的 6 路轉換也完成了,并且轉換結果也被傳輸到 RAM,可通過 CH1 的 傳輸完成中斷,將 DMA 的參數重新配置,就實現了多路 ADC 的循環采樣;
6. 通過 ATIM 的比較通道 4,去觸發 DMA 的 CH4,向 ADC 的轉換啟動寄存器置位,啟動 ADC。
其參考代碼如下:
? ADC 的配置:
ADC 配置為單次單通道采樣,采樣完成后可觸發 DMA。
? DMA 的配置:
? ATIM 需要在之前的配置上增加通道 4 的設置,增加的代碼如下:
這種方法可以實現多于 4個模擬通道的采樣,采樣結果自動保存在內存中,并且僅在最后一個通道采樣完成后, 進入一次中斷服務程序對 DMA 的配置進行復位,所以 CPU 的開銷是比較小的,而且可以通過 ATIM 的比較 通道 4 靈活設置采樣時機。
-
微控制器
+關注
關注
48文章
7552瀏覽量
151417 -
單片機
+關注
關注
6037文章
44558瀏覽量
635238 -
mcu
+關注
關注
146文章
17148瀏覽量
351188
發布評論請先 登錄
相關推薦
評論