Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

adc ref+ ref-

Başlatan jackal183, 22 Mayıs 2011, 18:42:33

jackal183

iyi günler arkadaşlar, bir sorum olacaktı, projemde iki adet adc channelı farklı zamanlarda kullanmam gerekiyor, öğrendiğime göre bunun için vref+ ve vref- değerlerini harici olarak bir kaynaktan vermeliymişim, bu doğru mu? eğer doğruysa, iki kanaldan adc okuma işlemi yapabilmenin başka bir yolu var mı? eğer doğruysa harici bir kaynak bağlamak yerine bunu yazılımla yapabilmenin bir yolu var mı?

niye bu kadar uğraşıyorsun bir kaynak bağla olsun bitsin diyeceksiniz ama baskı devre çıkarıldı bütün elemanlar dizildi lehimlendi, kaynak bağlamaya uğraşmamak için soruyorum.

X-Fi

Referans gerilimlerini kullanma zorunluluğunuz yok ayarlamadığınız taktirde yüksek Vdd düşük GND kabul edilip bu aralıkta ölçüm yapıyor. mcu da kaç pin adc varsa aynı zamanda olmamak şartıyla çalıştırıp ölçüm yaptırabilirsiniz. İşin gerçeğinde internal adc donanımı 1 tane olur adc pinleri birden fazladır mux. yardımıyla pin seçilir tek donanımdan ölçüm yapılır. datasheet de adc ile ilgili blog şemalar bulunmakta bunlar neyin ne olduğunu çok basit anlatıyor. Ek bilgi olarak söylüyorum referans girişleri değiştirilirse yapılan tüm adc ölçümleri bu voltajlar referans alınarak yapılır.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

jackal183

anladığım kadarıyla iki kanaldan da ölçüm yapabilmek için ref+ ve ref- yi kullanmadan da yapabilirsin diyorsunuz. ancak isiste yaptığım simülasyonda ref+ ve ref- ye kaynak bağladım sorunsuz iki kanaldan da ölçüm aldım, ancak bağlamadığım zaman iki kanaldan da ölçüm alamadım? anlayamadım şimdi isis bunu yapamıyor mu  :o

Maxim

ne soruyorsunuz anlaşılır değil ?

iki adc kanalından farklı zamanlarda okuma yapacaksanız yapın
bunun referans girişleri ile bir ilgisi yok

adc ref+ ve ref - veya +5 volt ve ground olabilir
10 tane adc varsa hepsinden okuma yaparsınız sorun nedir

X-Fi

isisde böyle bir hata ile karşılaşmadım mühtemelen sizin set ettiğiniz bitlerde bi yanlışlık veya birbirini etkileyen bi durum olmuş olabilir. CCS kullanmadığımdan bişey diyemiyeceğim örnekleri inceleyerek sorunu çözebilirsiniz veya kodu buraya ekleyin bilen arkadaşlardan yorum gelecektir. ben hatanızın donanımdan kaynaklanmadığını anlatmaya çalıştım.

kolay gelsin.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

jackal183

ben de anlayamıyorum niye böyle olduğunu kod böyle;
void main()
{
    float voltage1,voltage2;
   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   // TODO: USER CODE!! 
   while(1)
   {  
   
      set_adc_channel(0);  
      voltage1=0.0048828125*read_adc(); 
      set_adc_channel(1); 
      voltage2=0.0048828125*read_adc(); 
        lcd_gotoxy(0,0);
        printf(lcd_data,"voltage1=%f"voltage1); 
        lcd_gotoxy(1,0);
        printf(lcd_data,"voltage2=%f"voltage2); 
   }

}


bu kod ile, eğer isiste ref+ ve ref- ye kaynak bağlarsam çalışıyor ama bağlamazsam çalışmıyor :o

jackal183

sorun çzöüldü arkadaşlar her ne yaptıysam artık bilmiyorum, yeni bir proje açıp herşeyi baştan yapınca düzeldi, ref+ ve ref- bağlamama gerek yok artık, yardım edenlere teşkkür ederim