前言
電機控制單電阻采樣機制是在一個PWM波形內采集兩相電流ADC數據,但某些扇區邊界條件下只能獲得一路電流ADC數據, 需要對PWM波形進行變形用于構造電流采樣區域。
背景介紹
根據電機控制拓撲結構,單電阻采樣在一個PWM控制周期內可以取得兩相電流數據:


在扇區邊沿無法獲得兩相電流信號。

波形產生
ST專利的方法是在波形的中間部分產生變形波形,在變形后的波形上就可以得到兩相電流ADC數據;
當然還有目前比較流行的波形移位方法也可以做到相同效果。波形如下:

STM32系列單片機Timer有足夠的功能,可以產生上面兩種波形,機制如下:
PWM波中間變形

1. 設定CCR4的DMA通道,并且設定此時Timer1的preload為禁止狀態;
TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Disable);
2. 在CCR4比較值部分產生DMA事件;
DMA_InitStructure.DMA_PeripheralBaseAddr= (uint32_t)(&(TIM1->CCR1));
DMA_InitStructure.DMA_MemoryBaseAddr= (uint32_t)(uint32_t)(hDmaBuff2);
DMA_InitStructure.DMA_DIR =DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize= 2u;
….
TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE);
3. 在1點上將CCR1數據直接修改為周期數據+1;
4. 在2點上將CCR1數據修改為CCR1’的數據;
5. 時間計算上按照上面的圖示設定,中間凹陷時間為兩邊補充波形時間之和。
波形移位變形

1. 設定Timer1的update事件的DMA通道
DMA_InitStructure.DMA_PeripheralBaseAddr =(uint32_t)(&(TIM1->CCR1));
DMA_InitStructure.DMA_MemoryBaseAddr =(uint32_t)(uint32_t)(hDmaBuff2);
DMA_InitStructure.DMA_DIR =DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = 2u;
……
TIM_DMACmd(TIM1,TIM_DMA_Update,ENABLE);
2. 在1點上更新CCR1數據為CCR1數據;
3. 在2點上更新CCR1數據為CCR1’數據;
4. 保證前后的移位時間相同。
-
電機控制
+關注
關注
3600文章
2131瀏覽量
277677 -
STM32
+關注
關注
2309文章
11162瀏覽量
373397 -
PWM波形
+關注
關注
0文章
7瀏覽量
10485
原文標題:電機控制單電阻采樣PWM變形信號的產生
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
常用兩相步進電機和驅動器參數
基于無刷直流電機的積分變結構控制器抑制轉矩脈動
如何使用WaveDac8設置一個簡單的數據采集系統,以生成不同持續時間的脈沖?
【BPI-CanMV-K230D-Zero開發板體驗】+ADC數據采集及尋找引腳的問題
無刷直流電機非換相相電流采樣的逆變器結構
Analog Devices Inc. LTC7806兩相同步升壓控制器數據手冊
使用Cypress FX2 EZ USB進行數據采集應用,為什么采集到的數據不是連續的?
ADC采集電路前通常都會放置一個RC電路有什么作用?應用中一般又該如何取值呢?
LM5030系列 100V 推挽電流模式 PWM 控制器數據手冊
UCC28070 兩相交錯式連續導通模式 (CCM) PFC 控制器
UCC28070-Q1 汽車兩相交錯式連續導通 (CCM) 模式 PFC 控制器數據手冊
TPS40322 雙輸出或兩相同步降壓控制器數據手冊
一個PWM波形內采集兩相電流ADC數據
評論