Re: 擷取馬達Encoder轉速
|
||||
---|---|---|---|---|
新會員
|
Ryang 寫道:
不曉得你是用那種馬達,一般不會是有 霍爾感應器,反電動勢偵測或向量計匴都可以知道轉速嗎? 討論而已我不是馬達專家。[/quote] --------------------------------------------------------------- 我現在是用在有刷DC馬達上,不是BLDC,所以沒有Hall sensor。你說的反電動勢之類的方法比較適合不需要高精度的定速控制,及負載穩定的系統,比較屬於動力用而非伺服用。 我現在的問題並不是沒辦法獲得馬達轉速,應該是說沒辦法在Input Capture 之前先用QEI 的 digital filter 把 glitch 濾掉,覺得有點困擾,因為這樣的設計應該很普遍,Microchip 應該要考慮到。
發表於: 2009/6/22 9:53
|
|||
|
Re: 擷取馬達Encoder轉速
|
||||
---|---|---|---|---|
新會員
|
2^29!? 所以才說你們產品價位比較高阿~
我們的產品是多功能事務機,一台機器上同時有5、6顆DC和步進馬達,用dsPIC並不算奢侈,因為我們一般在用的SoC包含一個ARM核心,一個影像計算用的DSP,兩顆8bits的RISC,但是ODM價格就是很殺,所以我們對成本很計較。 多功能事務機對定位,定速與加減速的控制要求是很高的,不然在掃描和列印的影像都反映出來,而且如果有減速齒輪,因為齒輪有背隙,Encoder也大多裝在機構末端。 P.S. CPR(count per rev.) PPR(pulse per rev.) LPI(Line per inch) ,那4000 pps 是什麼單位?
發表於: 2009/6/22 9:19
|
|||
|
Re: 擷取馬達Encoder轉速
|
||||
---|---|---|---|---|
新會員
|
這樣說好了。
如果馬達操作在1000rpm,encoder 1圈100pulse,每秒收到的pulse數就是(1000/60)*100 = 1666.6 (pulse) ,那1msec你可能只讀到1或2pulse,所以你會得到轉速為600rpm或1200rpm,正負差就高達600rpm。 如果是計算週期的話,每個pulse 時距為600usec,在40MIPS的dsPIC,你會讀到600*40=24000Tsys ,如果讀到24001Tsys或23999,那算得的轉速為1000.0416rpm或999.9583rpm。 因此,需要高精度的轉速控制是不會計算Pulse。
發表於: 2009/6/18 14:03
|
|||
|
Re: 擷取馬達Encoder轉速
|
||||
---|---|---|---|---|
新會員
|
應該是說用固定時間計算Encoder的Edge數相較於硬體擷取Edge週期所計算出的速度,解析度相對太低,不適合用於低轉速,或高精度的速度控制,所以我是同時使用QEI與Input Capture。我所用過的ASIC和SoC的QEI幾乎都具週期擷取的硬體。
4000 cpr(lpr)的encoder太昂貴,消費性產品大概都不會使用,離開學校以後就沒用過這種奢侈品了! 可能您的產品屬於價位較高的等級。 至於停止狀態的週期,設計比較好的QEI都會飽和到0xFFFF之類的,設計比較差的會有溢位問題,只能用程式去判斷。 如果Input Capture 可以設定到QEI的Digital Output使用上,使用上就靈活多了。
發表於: 2009/6/18 10:42
|
|||
|
擷取馬達Encoder轉速
|
||||
---|---|---|---|---|
新會員
|
最近在測試dsPIC33F的QEI,竟然發現沒有支援像Input Capture 那種計算時間的功能,只能用來計算位置,不能計算轉速,實在不怎麼好用;所以只能找一組Input Capture 來用,因此又多佔用了一組Timer,結果只是要控制一顆DC馬達就佔了好多周邊。
改用Input Capture,也有其他問題,首先是不能用Edge去reset Timer,所以時間週期都必須透過軟體計算;另外,沒有QEI 的 Digital Filter,類比的 Encoder 很容易就抓到glitch。 不知道有沒比較好的解決方式呢?
發表於: 2009/6/17 18:22
|
|||
|
Re: 請問組語在空行的時候是不是一定要打分號?
|
||||
---|---|---|---|---|
新會員
|
不換行時組譯會出錯,空行不打分號似乎沒有什麼差別,不太了解為何範例程式都要另外打分號? 我原先以為空行會被視為nop,似乎也沒有~
發表於: 2005/12/17 17:45
|
|||
|
Re: 請問組語在空行的時候是不是一定要打分號?
|
||||
---|---|---|---|---|
新會員
|
果然沒人理我 Orz...
發表於: 2005/12/17 15:11
|
|||
|
請問組語在空行的時候是不是一定要打分號?
|
||||
---|---|---|---|---|
新會員
|
這個問題實在不是太重要,但是我蠻想知道的~
所有的範例當中程式換行都會用分號Mark起來, 以前寫C的時候 空行 換行 都會被編譯器忽略掉, 不知道在組語中有沒有差別,如果不換行寫成一串可不可以哩!
發表於: 2005/12/16 14:24
|
|||
|
Re: 請問PIC16可以同時有不同優先權的中斷嗎?
|
||||
---|---|---|---|---|
新會員
|
感謝~
所以我可以在0x04的中斷向量程式中先去判定是哪一個中斷被觸發了,在跳去執行那一個中斷嘍~ 謝謝,我了解了!!
發表於: 2005/12/15 17:25
|
|||
|