Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
版主
|
詢問專做 DC/DC Power 的專家中....
發表於: 2021/1/28 16:18
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
中級會員
|
補充一下
在MCC上設定TMR1 Clock source為Fosc/2 =42.5MHz Period count為0x1 Timer period為23.5ns Calculated period為23ns 但從示波器上看間隔約700ns才觸發下一次timer 再麻煩了 感謝
發表於: 2021/1/28 18:39
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
版主
|
參照:
想請問dsPIC33ep64GS502 若是用timer1最快可以多久抓一次ADC 14.28是規格上最快,但用內頻方式無法做到整除,通常是15ns左右。 取樣時間通常沒有所謂最快,因為快不了,這跟外部阻抗造成的充電速度有關,快就不準。 不過硬是要快的話,最快應該是2xTad. 參照: 因為從示波器看起來 取樣+轉換約400ns 等待timer1下次觸發約500ns 猜測量測方式包含了: 1. 進中斷時間? 2. I/O翻轉時間? 3. …可能還有別的因素,從文字描述看不出來。 以上時間影響,準確時間其實無法量到,不確定目的是什麼? 若是希望快速捕捉一段時間,用over-sampling可能更簡單,自動快速取樣與轉換,CK甚至可以自動搬進DMA。 不進中斷才能省時間。
發表於: 2021/1/29 10:22
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
中級會員
|
ryan大好
因看dspic33ep64GS502的型錄上有提到以下規格 "Up to 3.25 Msps Conversion Rate per Channel at 12-Bit Resolution" 但我實際操作用timer1觸發只能達到約1Mhz的取樣率 , 和3.25有點差距, 還是3.25Mhz是只有轉換,不包含取樣與等待觸發的時間 我的目的是希望能以1.28Mhz的取樣率來抓AD值, 判斷方式是進timer中斷後,IO輸出high,ADC做完後,IO輸出low , 並等待下次timer觸發, 從IO的間隔時間看起來ADC 取樣+轉換約400ns , 等待timer下次觸發約500ns 另外請問你是指使用over-sampling mode就可以自動快速取樣轉換嗎? 那TRGSRC這個register要設定為什麼? 感謝回復
發表於: 2021/2/8 11:05
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
版主
|
這最高轉換速度不是用 Timer 1 來完成的,因為 Timer 1 再怎麼快也到不了 15nS 的 Tad。要達到 3.25Msps 的速度 要用 Tosc 作為 Tad 的來源。
發表於: 2021/2/17 14:03
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
中級會員
|
Ryang大 好
感謝您的建議 後來我將TRIG方式改為common software trigger 然後在程式中加入以下程式 在Fosc=85M下可得到1.8M的取樣率 ADCON3Lbits.SWCTRG=1; while(!ADSTATLbits.AN1RDY) { } x=ADCBUF1; 但想再請問幾個問題 1. 當使用8MHz的震盪器, 在MCC中 PLL頻率最高只能設為85M 但若從程式去設定PLLPRE , PLLPOST , 等暫存器 可以將PLL輸出頻率提高為100M以上 想請問MCC設定這樣的上限是有什麼用意嗎 2. dsPIC33ep64gs502型錄內說最高可至70MIPS 是指Fcy最高為70M ,Fosc最高為140M嗎 不知道這理解正確嗎 感謝您抽空回覆
發表於: 2021/3/4 9:15
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
版主
|
頻率的設定需參考附圖的方塊圖,沒有說 FIN 要用 8MHz 的輸入。你可以設定輸出頻率為 140MHz 後按照公式反推回來得到輸入頻率需要多少,按規格書上所限制的輸入頻率 (Fin) 其範圍在 0.8MHz ~ 8MHz 之間。透過 PLL 的倍率調到你所需的頻率。140MHz 不見得一定就可以被整除,一般都使用相近的頻率即可。
這顆元件如在溫度 -40 度~ +85 度的範圍是有 70 MIPS 的速度,在 +125 度則限制在 60 MIPS。以 dsPIC 的頻率對指令週期換算是 Fosc/2=Fcy。所以 70MIPS 的 Fosc 是要有 140MHz 的頻率。 如果 dsPIC33EP64GS502 的效能不夠,可以考慮看看 dsPIC33CK256MP506 系列的元件,CK 系列可以有 100MIPS 的速度,也可以用 MCC 來設定。
發表於: 2021/3/4 10:43
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
中級會員
|
Ryang大 好
感謝回覆!! 想再請教一下 在Fosc=140MH時 觸發ADC取樣並轉換成功耗時350ns (接近3.25M/s) 但x=ADCBUF1;這個指令就花費390ns 不知道是否有其他更快速的方式去抓取ADCBUF THX /////////////////////////////////程式範例/////////////////////////////// ADCON3Lbits.SWCTRG=1; while(!ADSTATLbits.AN1RDY) { } x=ADCBUF1;
發表於: 2021/3/4 20:24
|
|||
|
Re: ADC最快多久抓一次
|
||||
---|---|---|---|---|
中級會員
|
補充一下
若程式改為 x=ADCBUF2; 則只需要耗時110ns 看起來讀取ADCBUF1的時間會是ADCBUF2的三倍
發表於: 2021/3/5 8:57
|
|||
|