Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
管理員
|
Input Capture時脈:100MHz
PWM時脈:100MHz PWM頻率:40K PWM上升沿抓取值 Capture數值是計算在PWM的兩個上升沿中間有多少個Count 所以,如上述條件 Capture抓到的數值會是100M/40K = 2500 所以,當你改變PWM時脈,Capture抓到的數值 還是會依造你的PWM頻率為基礎。
發表於: 2021/1/7 14:16
|
|||
|
Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
新會員
|
感謝管理員回覆,您的回答我能了解,但目前的問題點在於我現在PWM和Capture時脈一樣是選擇100MHz,且PWM可以操作到100kHz
,但我的Capture的Count無法追到我的PWM頻率,只要超過65kHz就沒辦法捕捉到,Capture應該要捕捉到100M/100k=1000,請問一下是我時脈要調整還是哪個部分要改變呢,再麻煩管理員解答一下謝謝。
發表於: 2021/1/8 14:22
|
|||
|
Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
管理員
|
MCU:dsPIC33CK256MP506
將PWM1時脈:100MHz、PWM1頻率:100K 送進去Input Capture時脈:100MHz 透過UART傳輸資料出來 Capture捕捉到1000 Attach file: Link only for registered users
發表於: 2021/1/8 16:54
|
|||
|
Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
版主
|
理論上是可以算出 PWM 與 Capture 的值,但因不易觀測真正的數值是否與計算出的數值有差異? 而且實際的硬體是否可達到所要求的效能,這有時是會陷入一個模糊地帶的。
建議先將這兩的模組分開來測試。可以用 printf( ) 的函數將所要即時觀測的資料用 UART 送出來 (一般是送給一個 UART to USB 的裝置給終端機來顯示) 或也可以送給 LCD 模組做述職的顯示。也可以送到一個 8-bit PORT 輸出到 LED 上顯示。總之,就是要有一個可以即時觀察變數的即時顯示器是最好的。再不然你就需要使用 PK3 之類的開發工具在 Debug Mode 下在適當的地方設定斷點來觀測其數值。 建議先單獨檢查一下 Capture 可以抓到的範圍實際是多少,如果輸入的測量頻率超過 50KHz 時是否可以考慮啟用 Capture 的 Prescaler (1/1, 1/4, 1/16) 將輸入頻率做降頻使用 16-bit 計數模式,並用一個旗號設定預除器的使用及降頻的倍率。我們必須先確定所使用的 Capture 所能抓取的頻率範圍後再去送給 PWM。 dspic33ck128MP505 的 PWM 有兩種,一為高速 Moter 或 Digital Power 用的超高速 PWM (250pS 解析度) 或是使用傳統的 MCCP/SCCP 模組的 PWM。
發表於: 2021/1/11 11:36
|
|||
|
Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
版主
|
還有,如果 PWM 是使用傳統 MCCP 的 PWM Module,這 PWM 的解析度只到 14-bit 。但 Catptue 的解析度基本就是 16-bit 的標配。
如此問題來了? 你如如何將 16-bit 的 Capture 值田給 14-bit 的 PWM? 輸入如是高頻應該沒問題,但是低頻時就會出現問題。
發表於: 2021/1/12 11:12
|
|||
|
Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
新會員
|
謝謝管理員以及版主回答,目前將測試值回傳已經可以將Capture抓到的值丟到第二組PWM中做鎖頻的功能,100kHz以上都可以鎖到,但雖然頻率能鎖到
但在相位中不同頻率下他會個別固定相移一個值,但在PGxPHASE暫存器中都有先清零且沒有讓他產生相位,還在找尋原因當中
發表於: 2021/1/12 13:34
|
|||
|
Re: dspic33ck128MP505 capture頻率
|
||||
---|---|---|---|---|
版主
|
我想像一下: 因為 Capture 抓到的頻率值,總是會有一段延遲的時間後才會送到 PWM 裡,這就又延遲的產生,如果是中斷處理也會又延遲的。
你是否 Capture 抓一次數值後就馬上更新 PWM 的週期。可否多抓幾次取平均後再更新 PWM,或使用 Timer 計時約每 n 個 mS 後啟動 Capture 抓頻率 (Capture 可以不用中斷方式,直接透過 timer 來啟動) 後再刷新 PWM 的輸出?
發表於: 2021/1/12 17:12
|
|||
|