Re: 求教A/D转换问题!
|
||||
---|---|---|---|---|
新會員
|
我試了你所寫的設定,我沒有4013,使用APP009(網站有資料)測試,全部程式如下,使用ICD2 debug mode
並無不正確的值,請自行對照一下吧! #include <p30f4011.h> unsigned int ADCValue; int main(void) { ADPCFG = 0xFFFE; // <====這和你設定不同 ADCON1 = 0x00E0; ADCSSL = 0; ADCON3 = 0x1F02; ADCON2 = 0; ADCHS = 0x0000; ADPCFGbits.PCFG0 = 0; ADCON1bits.ADON = 1; while(1) { ADCON1bits.DONE = 0; // <+++加這一行 ADCON1bits.SAMP = 1; while (!ADCON1bits.DONE); ADCValue = ADCBUF0; // <===中斷觀查點 } }
發表於: 2006/5/25 11:30
|
|||
|
Re: 求教A/D转换问题!
|
||||
---|---|---|---|---|
新會員
|
yuyu 寫到:
參照:
1. 不知您指的差很多是何種情形呢? 數值會不會隨電壓變化? 2. 先將電路與dsPIC分開,先使用電位計(可變電阻),使AN0電壓變化在0-5V之間,對照A/D數值是否在0-1023之間? 3. 您指的應如何處理是指什麼? 4. 對DC而言,若無noise干擾,A/D值是不會有太大變化,sample rate 也不會有太大影響。 5. 找問題的方法,二分法,將軟體、硬體分開,相互驗證,有問題,最好力求知道原因,如此才能更深入了解…。個人經驗。 6. 會不會在硬體有問題呢?是否方便貼個A/D區塊電路圖? 7. 很高與能和你一同找問題,找到了也不要忘了回應,與大家分享。
發表於: 2006/5/18 9:49
|
|||
|
Re: 求教A/D转换问题!
|
||||
---|---|---|---|---|
新會員
|
就先前使用的2010的經驗,使用AVSS在30MIPS會有差,你可先調降至1~2MIPS試試,看是否接近理論值,當然也有可能是取樣時間不足…等可能情形,最好使用Vref-為參考點。
發表於: 2006/5/13 10:35
|
|||
|
Re: dsPIC30F2010 A/D
|
||||
---|---|---|---|---|
新會員
|
感謝Ryang兄
我的問題解決了,最後只好採用外部參考Vref-, 目前推測是因AVSS和VSS內部連接,當耗電增加時,造成A/D誤差。
發表於: 2006/5/5 17:02
|
|||
|
Re: dsPIC30F2010 A/D
|
||||
---|---|---|---|---|
新會員
|
目前將振盪由x16改為XT,可以解決A/D的問題,可得到值7,
x4可得數值6, x8為數值4, x16為0~1,但我將取樣時間延長(1ms~100ms)也沒用,轉換時間己用32Tad,且OSC 需使用在x16, 請教是否有其它解決方法?
發表於: 2006/5/5 15:50
|
|||
|
Re: dsPIC30F2010 A/D
|
||||
---|---|---|---|---|
新會員
|
感謝您
1. 低於0.06V以下皆為零 2. 內阻是多少我不清楚,但用兩個不同廠牌皆可量到0.06左右的電壓,其中一個電錶為FLUKE 8060A 3. 目前跳動不是問題,而是數質為零,先前有接104,但剪掉後亦無差別 原本GND及AGND分開接,只靠IC內部連接,VDD及AVDD亦是不同回路,但現在GND及AGND外部接在一起,亦是如此。 不知硬體還有那些該注意,因有兩個2010都有類似問題,所以IC應無問題才對。 暫存器設定不知還有那些應注意?
發表於: 2006/5/5 11:59
|
|||
|
Re: dsPIC30F2010 A/D
|
||||
---|---|---|---|---|
新會員
|
這個電壓值是由電表所量出的,因為值小,也有可能是受電源訊號60Hz所影響,造成取平均後數值過小或跳動的問題,不知先進有何高見?
我的電路是輸入0~10V,經由op(HA17358)1:1輸出,接5K電阻及5K VR後,再接入dsPIC30F2010的AN0,量測也是指AN0對AVSS 正想是否是我取平均照成的結果??
發表於: 2006/5/5 9:54
|
|||
|
dsPIC30F2010 A/D
|
||||
---|---|---|---|---|
新會員
|
請問先進
使用A/D時,以AVDD(5.062V),AVSS為參考電壓,1bit約為0.0049V, 當我輸入0.05V時,得到A/D值應10,但我卻只看到1或0, 當輸入4.802V, 得到972,這個接近理論值, 是否有什麼方式可以解決0.05V輸入而得到10的結果呢? 量電壓是直接量PIN腳位和AVSS PIN, 設定如下 ADCON2 = 0x043d; ADCON3 = 0x01f3f; ADCHS = 0x0100; ADCON1 = 0x0000; ADCSSL = 0x0001; ADCON1bits.ADON = 1; T3CON = 0x0030; PR3 = 115; T3CONbits.TON = 1; 使用振盪7.3728M x16 取樣放慢也一樣。
發表於: 2006/5/4 17:52
|
|||
|
Re: dsPIC30F2010內部data EEPROM如何讀取及寫入
|
||||
---|---|---|---|---|
新會員
|
我正在研究中,請版主也給我一份吧!
edison@realscene.com.tw
發表於: 2005/8/19 10:26
|
|||
|