ADC Bozuk mu?

Başlatan hazad, 04 Şubat 2012, 20:55:21

hazad

MErhaba Arkadasşar,

Yaptıgım devrede ADC Girişi var. 1 aydır üzerinde çalışıyorum. adc Suana kadar doğru çalışıyordu ancak test için verdikten sonra ölçümler yanlış olmaya başladı.

Vref    0   -    +5v,
ADC Max 221 falan bu aralarda okuyor halbuki girişe 5V Geliyor. 0   -   1.5 Volt ta doğru değeri gösteriyor. Voltaj hesaplamasından sonra 1.51 volt falan gösteriyor ancak bundan sonra kac volta getiresem getireyim, Max 1.78 volt falan ölçüyor.  Ben 5V Volta geldiğim de 1.78V Gösteriyor sayısal değeride 210 falan

Sizce bunun ne deni ne olabilir. PIC SMD olduğu için şuan sökme şansım yok.

camby


eraygil

adc giriş pinindeki voltajını ölçtünmü yada vref ucundaki referans voltajını ölçtün mü?

hazad

Test; müşteriye verdim yani herşeyi kontrol etmesi için. ben kontrol etmiştim. Onlar Kontrol ederken ADC 3 incü girişi hatalı ölçüm yapıyodu. 0 - 1.5V arasını doğru bunun üstünü max 1.78V gösteriyordu. Daha sonra Diğern 0 1 2inci girişlerde aynı hatayı vermeye başladı.


Vref+ = Vdd
Vreg- = Vss

Tüm gerilimleri kontol ettim. Girişten önce 2.3K Bağladım.

[Input]---->Opamp->----Mux->-------[2.3K]->-------- ADC(0)

Yukardaki akışın aynısı herşey normal hatta adc girişine kadar normal ama Sampling ederken mi artık neyden anlaladım. Bir problem var.

muhittin_kaplan

kod yok şema yok.
Düşünelim, Başak Burcuna Göre ADC nin ölçüm yapması gerekirken Aslan Burcunun Özelliği olan ADC de problem yaratma ihtimali yüksek. Buradan Yapılacak olan çıkarım ise Zodiakla Elektroniğin pek alakası olmaması ve bu işlerde afaki konuşulmamasıdır.

hazad

Tamam ben size şemayı Hazırlayayım bir saniye

hazad

Project03_SUB_Circuit_Test.jpg:[IMG]http://imageupload.org/thumb/thumb_173850.jpg[/img]



Arkadaşlar Aşağıda ki Kodu test etmek için kullanıyorum. Diğer Kod Çok fazl satır olduğunda koymadım.

Şimdi Aşağıda ki Kod Daha önce çalışıyodu.
Ne olduysa Artık Ölçümleri yanlış ölçmeye başladı.

Lcd De 0 ile 1023 arası değer göstermesi gerekiyor. Ancak PRoblem var.
Yeni den Gerilimleri Kontrol ettim.

0.7 Volttan itibaren saçma değeler ölçüyor.

kod Çaşıyor. Geliştirme Kitinde Başka bir İşlemci ile denedim.
Ama asıl devrede problem var


//FOR LCD PIN DIRECTION
	TRISD3_bit = 0;
	TRISC4_bit = 0;
	TRISD1_bit = 0;
	TRISC5_bit = 0;
	TRISC6_bit = 0;
	TRISD2_bit = 0;

	//FOR CONTROLLER PIN DIRECTION
	TRISC7_bit = 1;
	TRISD4_bit = 1;
	TRISD7_bit = 1;
	TRISB0_bit = 1;
	TRISB1_bit = 1;

	//FOR SELECTOR PIN DIRECTION
	TRISE0_bit=0;
	TRISE1_bit=0;
	TRISE2_bit=0;
	TRISB4_bit=0;
	TRISA5_bit=0;

	//FOR BUZZER & LED PIN DIRECTION
	TRISD6_bit = 0;
	TRISD5_bit = 0;
	Sound_Init(&PORTD, 5);
	INFOLED = 1;
	Sound_Play(1500,50);
	INFOLED = 0;
	Delay_ms(50);
	INFOLED = 1;
	Sound_Play(1500,50);
	INFOLED = 0;

	//EXCITER ENABLE PIN DIRECTION
	TRISB3_bit = 1;

	//OPTOCOUPLER
	TRISB5_bit = 0;
	RB5_bit = 1;
	TRISB2_bit = 0;
	CUTBACK = 0;
	//RELAY
	TRISB6_bit = 0;
	
	//
	//ADCON1 = 0x0E;
	//ADCON1 = 0b00001110;
	Lcd_Init();
	ADC_Init();
	Lcd_Cmd(_LCD_CURSOR_OFF);

	Lcd_Cmd(_LCD_CLEAR);
	Lcd_Out(1,1,"SYSTEM");
	Lcd_Out(2,1,"CONTROLLER");
	//Delay_ms(500);

    INTCON = 0b00100000;
    INTCON.GIE = 0;
    T0CON = 0b11000000;



	while(1){
		
		tempint = ADC_Read(0);
		IntToStr(tempint*4,str);
		Lcd_Out(1,1,str);
		tempint = ADC_Read(2);
		IntToStr(tempint,str);
		Lcd_Out(2,1,str);
		tempint = ADC_Read(1);
		IntToStr(tempint,str);
		Lcd_Out(1,10,str);
		tempint = ADC_Read(3);
		IntToStr(tempint,str);
		Lcd_Out(2,10,str);
		Delay_ms(250);
		
		}

camby

Donanımı çalışır halde verdiniz , çalışmaz halde geri mi aldınız ?

Donanım , yazılım herhangi bir şey değişti mi bu arada ?

Bahsettiğiniz 2.3K şemada yok bu arada.

hazad

Vermeden Önce Çalışıyodu. Hepsini kendim Test Ettim.

Daha sonra ADC2 Bozulmuş yanlış ölçüm yapıyordu. Onu düzelteyim derken diğer Girişlerde Aynı Hatayı verdi.

AN1 Sayısal olarak 110 gösteriyor Sabit. Halbuki burda hiç gelim yok 0 V yani.
AN3 Ucu boşta. Oda 123 falan gösteryor.
AN2 2.20 Voltta -> 218 Gösteriyor.
AN0 0.7 Volta(175) kadar Doğru Ölçüyor. Daha Yukarıyı Scalası daralmış şekilde ölçüyor. 5V -> 245   4.14V -> 230 Gösteriyor.
Vref+ = Vdd
Vref-  = Vss

Diyotlarla mı bir problem var dicem diyot kullanmadım ancak ADC Girişinde(PIC DataSheet) Koruma Diyotları var. 

hazad

#9
Alıntı yapılan: camby - 04 Şubat 2012, 23:23:27
Donanımı çalışır halde verdiniz , çalışmaz halde geri mi aldınız ?

Donanım , yazılım herhangi bir şey değişti mi bu arada ?

Bahsettiğiniz 2.3K şemada yok bu arada.

donanım ve yazılımsal olarak hiç bişey değişmedi

daha sonradan bağladım

hazad

PIC adc modelin de şöyle bir şema var.


Dikkatmi çeken şey. diyot geriliminden sonra yanlış ölçüm yapıyor


adc.jpg:[IMG]http://imageupload.org/thumb/thumb_173881.jpg[/img]

fahri-

Pic i değiştirmeyi denediniz mi?

hazad

PIC SMD olduğu için sökmek baya zor. ne yapabilirim bilmıyorum. Projede daha cok detay var. Yeniden yapmak gerçekten ölüm

muhittin_kaplan

bencede Başka Bir Pic le deneyiniz.

hazad

Sıcak Hava Havyası buldum değiştirdim Düzeldi ama bu sorun neden oldu anlamadım. İçime kurt düştü şimdi bunu böyle vermek müşteriye sıkıntı çıkarır gibi.


Datasheet'i inceledim orda max 2.5K Bağlayın yazıyor Min Değer için bişey söylememiş.