Re: AD 問題
|
||||
---|---|---|---|---|
版主
|
SAR ADC channel 會互相影響八成就是這個原因。
發表於: 2005/3/4 14:08
|
|||
|
Re: AD 問題
|
||||
---|---|---|---|---|
資深會員
|
參照:
所以每次Channel切換時就需先延遲20uS後再轉換。 上述方案的前提是,信號源的 輸出阻抗 要小於 10 kohm 若信號源的輸出阻抗大於 10 kohm,我用的延遲時間是 (R_source / 10 kohm) * 10 us + 10 us 比技術手冊上的公式稍微簡單一點,也比較好記
發表於: 2005/3/4 10:14
|
|||
|
Re: AD 問題
|
||||
---|---|---|---|---|
高級會員
|
謝謝Ryang版主得回答
但是我上次碰到的問題是多個通道輸入多個類比電壓, 例如AN0輸入0.5 V, AN1輸入1 V等等的情形, 然後就 相互干擾了 是不是因為上述所講的遊戲規則
發表於: 2005/3/4 0:31
|
|||
人生最長久的擁有是珍惜 但是大都在失去後才發現
|
||||
|
Re: AD 問題
|
||||
---|---|---|---|---|
高級會員
|
版主請問
當使用AD轉換器多通道時好像會有洩漏的問題 還是每個通道的取樣時間要錯開 所以chinedan是否問題在此
發表於: 2005/3/2 9:28
|
|||
人生最長久的擁有是珍惜 但是大都在失去後才發現
|
||||
|
Re: AD 問題
|
||||
---|---|---|---|---|
新會員
|
HI 版主
試了一下 全部都在中斷裡做 沒發生問題 全部都在 MAIN_LOOP做 也沒發生問題 謝謝版主的幫忙 我之前的做法 有2點疑惑 請版主指導一下 1.為什麼 AN1 在電壓超過4V時 才會有問題 但是 低於4V又不會有問題 2.AN0 卻沒有這方面問題ㄋ
發表於: 2005/3/2 9:22
|
|||
|
Re: AD 問題
|
||||
---|---|---|---|---|
版主
|
用軟體分析一下程式的取樣時間是否足夠。
MPLAB SIM + Stepwatch 再加上中斷點應該就可以找出問題了。 有可能是跑Main_Loop 的 AN2與 AN4 時的取樣時又發生了中斷,建議程式不要這樣寫,把AN0~AN4的轉換通通交給Timer的中斷來做轉換(Background Convert)
發表於: 2005/3/1 16:46
|
|||
|
Re: AD 問題
|
||||
---|---|---|---|---|
新會員
|
AN0 AN1 是寫在中斷程式裡面的
AN2 AN4 是寫在MAIN_LOOP 裡面的 如果分開來跑..只跑中斷部分 或只跑 MAIN_LOOP部分 都很正常 但是 合起來跑 就出現這個問題
發表於: 2005/3/1 16:29
|
|||
|
Re: AD 問題
|
||||
---|---|---|---|---|
新會員
|
是阿
MOVLW B'11010001' MOVWF ADCON0 CALL SAMPLE_DELAY BCF PIR1,ADIF BSF ADCON0,GO BTFSC ADCON0,GO GOTO $-1
發表於: 2005/3/1 15:31
|
|||
|
Re: AD 問題
|
||||
---|---|---|---|---|
版主
|
你確定這20uS的延遲是在下AD 轉換動作之前?
底下範例是轉換單一channel的程式僅供參考: main banksel TRISD clrf TRISD ; Set PORTD for LED Output Port movlw b’00000111’ ; Disable the Analog Comparator movwf CMCON movlw b'00001110‘ ; Select AN0 for the A/D input movwf ADCON1 banksel ADCON0 movlw b'10000001‘ ; Enable A/D converter module movwf ADCON0 Loop call Convert movwf PORTD ; Put the A/D result on LED goto Loop ; Convert: call Delay_20uS ; Delay for sample hold bsf ADCON0,GO ; Start convert A/D AD_Loop btfsc ADCON0,GO ; Completed? goto AD_Loop ; No, loop test. movf ADRESH,W ; Yes, save the A/D result to W reg. return
發表於: 2005/3/1 15:14
|
|||
|