會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





如何做到電流回授
中級會員
註冊日期:
2016/05/03 21:00
所屬群組:
註冊會員
文章: 52
等級: 6; EXP: 5
HP : 0 / 126
MP : 17 / 1217
離線
這次的目標是抓取DC有刷馬達的電流回授(含PWM控速)

使用的方式是在MOSFET下串一個0.1R/1W的貼片電阻分壓,用ADC抓取數值,電路如圖1。

Open in new window

程式控制的部分如圖2,希望持續過電流0.5S後可以關閉PWM輸出,T2是PWM的時脈(16KHZ),每次PWM做動則抓取電流回授一次。
ADC設定:1TAD=2us。

Open in new window

但我使用鎢絲燈負載模擬,幾乎都會再過載後3S~4S才關閉PWM,猜想是不是ADC抓取點不是正向峰值,波型如圖3與圖4,CH1=PWM輸出,CH3=ADC信號

Open in new window

Open in new window

其實我對抓取電流回授的時間點一直有很多疑問,到底當下抓取的數值是多少也不太容易驗證,想總結幾個問題,希望前輩們有閒時能幫小弟解惑,感謝。

1.含PWM控制的電流波型,如何在正確的時間抓取電流回授,像我的波型圖那樣與PWM共時脈是否需要再做延遲抓取?
2.如果偵測的電流波型是弦波,能用什麼方式取得有效值呢?ADC抓取的時間點?
3.以馬達當作負載後,電流回授的波型就會出現毛刺,這部分大家又是怎麼規避的呢? 目前使用的馬達額定電流為2A,以0.1R電阻分壓大概得到200mV的電壓,但是產生的毛刺峰值大約1V,目前是直接連到MCU讀取
再想說用個低通OPA,不曉得會不會改善。

4月15日 10:41:55
轉換PDF檔 列印


Re: 如何做到電流回授
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14805
等級: 73; EXP: 53
HP : 1087 / 1813
MP : 4935 / 81106
離線
因為你沒說明是使用哪一個 PIC 所以先推論你是使用 dsPIC 的 MCU。

1. 只要是 MC 系列馬達專用的 dsPIC MCU,在 PWM 裡會有個暫存器 SEVTCMP (special event compare register)。他可以設定在 PWM 週期裡可以在那的 Duty 的時間去觸發 ADC 做轉換。所以請設定 SEVTCMP 在 Duty On 時有電流流過 MOSFET 的時段裡去做 ADC 的轉換。

2. 你所指的弦波電流因該是 PWM 後的平均弦波電流吧? 那就如 1. 的方式抓取。如果是一般線性弦波的電流,那 ADC 會用 Timer 的固定觸發去驅動 ADC 做定時的轉換並儲存到一個陣列裡。軟體在到這陣列裡去計算出所要的 Peak to Peak 或 Average Value。

3. 使用低通 OPA 可以濾掉一些毛刺的脈衝,當相對的也會影響暫態時間的,這就要看接不接受這個延遲。你在偵測電路以加入了 RC 濾波這已可以降低一些毛刺現象。話說回來這些毛刺應該不會落入 ADC 的轉換點吧! 你所設定的 ADC 取樣點要落在你要轉換的點上,這樣毛次脈衝對你就不會有影響了。

4月15日 11:57:48
轉換PDF檔 列印


Re: 如何做到電流回授
中級會員
註冊日期:
2016/05/03 21:00
所屬群組:
註冊會員
文章: 52
等級: 6; EXP: 5
HP : 0 / 126
MP : 17 / 1217
離線
回版大,用的是PIC16F1614,
那我就設定在PWM Duty Cycle 的中間值抓取應該就不會受到前後啟閉時震盪的影響。
假設Duty為50%時,我就在25%處抓取數值

那我想請問需要考慮ADC 那個TAD的時間嗎? 這裡不是很清楚
像我設定的TAD=2uS, 這樣數值會不會需要等待幾個TAD才開始抓取

4月15日 12:47:04
轉換PDF檔 列印


Re: 如何做到電流回授
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14805
等級: 73; EXP: 53
HP : 1087 / 1813
MP : 4935 / 81106
離線
Tad 是 ADC 基本的 Clock Period,在 PIC16F16xx 裡的 Tad 範圍是 1uS ~ 6uS 參考圖二的值。

有因設定 Tad 方式有使用 FRC 與 Fosc 兩種不同的來源,這就要參考 Data Sheet TABLE16-1 的表格所顯示的 Tad 的值。

完整的 ADC 轉換是有 取樣時間 + 轉換時間 。
取樣時間按圖二所示需 5uS (Tacq) 再加上 10 Tad 的轉換時間 + 一個 Tad 做儲存時間。
所以設定 Tad = 2uS 時,總體轉換時間為 6uS + 20uS + 2uS = 28uS 所以轉換速度為 35Ksps。

6uS 取樣時間,20uS 轉換時間。

附加檔案:



jpg  擷取.JPG (56.94 KB)
16_5cb42c679065d.jpg 931X446 px

jpg  擷取1.jpg (68.84 KB)
16_5cb42c6f9d86c.jpg 927X296 px

4月15日 15:02:10
轉換PDF檔 列印


Re: 如何做到電流回授
中級會員
註冊日期:
2016/05/03 21:00
所屬群組:
註冊會員
文章: 52
等級: 6; EXP: 5
HP : 0 / 126
MP : 17 / 1217
離線
抱歉,又遇到困難了
好像沒我想的這麼簡單....
用PIC16F1614
TMR2設定為每62.5uS觸發中斷當作PWM時序(16kHZ)

我原本的想法是再設定一個TMR4,每1uS觸發中斷
當TMR2初始時, TMR4開始計數,計數到Duty設定的一半週期時抓取ADCValue
例如Duty=50%(0~31,25us)為High,則在中間15uS的地方取樣

實際這樣做後,程式好像就死機了,連PWM都沒有輸出
將TMR4的設定全部移除才能回復正常。
ADC已設為最快抓取循環時間11.5uS,
是不是因為ADC抓取寫在TMR4(1uS)中斷裡面,造成跑不完而導致的呢
但將ADC放到主程式去抓取又怕延遲造成抓到的位置不準。

是否有其他的方法我沒想到的呢,主要想避開PWM起始的電流震盪再去抓ADCValue

4月15日 16:45:31
轉換PDF檔 列印


Re: 如何做到電流回授
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14805
等級: 73; EXP: 53
HP : 1087 / 1813
MP : 4935 / 81106
離線
TMR4 設成 1uS 的中斷,那能處理的事情就變少了,搞不好還會當機呢!

因為你的 PWM 速度達 16KHz,這算是快速的了,建議使用最高 32MHz(8MIPS) 的速度來執行。因為你用的是 PIC16F1614 本身就有強大的 CIP 周邊可以支援。

當然 Timer2 產生 PWM 這是不變的,你可以啟用 MCC 來設定 PWM3 的觸發輸入為 TMR2,這樣 Timer2 在初始的上升週期就會同步觸發 PWM 3 同步變 Hi。PWM 3 可以再設定其 Duty Cycle 何時變 Low。
最後這個 PWM 3 Hi--> Low 的變化看怎樣在經 MCC的設定到 CLC 或內入的中斷來觸發 ADC 做轉換。

因為 MCC 太多內部的連接功能,PWM 3 的輸出能連到哪裡還是要世紀上線操作看看。因為有 CIP 的周邊所以很多事丟可以交給 CIP 來做硬體的執行。

關於一些基本的 CIP 操作設定可以參考一下教育訓練光碟的: CIP102v2.00 進階獨立式週邊(Adv. CIP)的應用 New!
裡面的 Lab5 可以參考看看。

4月16日 11:41:15
轉換PDF檔 列印


Re: 如何做到電流回授
中級會員
註冊日期:
2016/05/03 21:00
所屬群組:
註冊會員
文章: 52
等級: 6; EXP: 5
HP : 0 / 126
MP : 17 / 1217
離線
版主你好:

關於ADC轉換想請問一個問題:

以PIC16F1614而言:
ADC就算設定成最高速度處理(TAD=1uS),也需要11.5uS才能完成

以下列程式做例子:

1.在ADC_GetConversion這行指令中需停留11.5uS才會執行下一行指令嗎?
2.假設VR_AN5傳輸到一半時觸發T2中斷,程式會如何運作呢?

void main(void)
{
while (1)
{
VR_AN5_Value = ADC_GetConversion(VR_AN5)>>1;
VR_L = 100;
}
}
void User_T2_ISR(void)
{
VR_AN4_Value = ADC_GetConversion(VR_AN4);
}

因為我程式中有三個ADC的值需要讀取,而電流回授我想要設在以16kHZ的PWM DutyCycle的中間值時抓取,這對時間要求還蠻大的,擔心會不會因其他ADC抓取而產生延遲,甚至拖到PWM已經關閉了才抓電流回授。

5月03日 08:20:13
轉換PDF檔 列印


Re: 如何做到電流回授
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14805
等級: 73; EXP: 53
HP : 1087 / 1813
MP : 4935 / 81106
離線
因為你有三個 ADC 要轉換,其中還有一個是在 T2 中斷裡轉換的,很明顯的這 ADC 的轉換會有打架問題發生。

可否在其他 ADC 轉換前關閉 GIE 中斷位元後,在轉換完成後再將 GIE 位元開啟。

5月03日 13:46:57
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2019 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project