MCP4922 Otomatik DAC Kalibrasyonu

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Olur. Aslında referans voltajın ne kadar faydası olacağını test edebilirsin. İki tane 1.5 V pili seri bağla ve onu referans olarak kullan. Eğer fayda sağlarsa 3.3 V referansı da alırsın.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Olur. Aslında referans voltajın ne kadar faydası olacağını test edebilirsin. İki tane 1.5 V pili seri bağla ve onu referans olarak kullan. Eğer fayda sağlarsa 3.3 V referansı da alırsın.
Ama her halukarda önce 1.8v a düşürmem gerekmez mi voltajı?

Bir de pil yerine 3.3 güç kaynağından hassas şekilde ayarlayabilirim ama akım sınırı yok. Picoya zarar verir miki?
 

Endorfin35+

Kayıtsız Üye
Staff member
Katılım
1 Mayıs 2020
Mesajlar
2,730
Arduino adc sinde son hane sürekli bir puan oynuyor. Fazlası yok sadece bir puan. Ortlama alma yöntemlerini denediğimde de sonuçta oynama azalsa da devam etti. Bu durumda bende if ile bir puandan yüksek yeni değeri kabul et dedim oynama falan kalmadı. Sonuç 1 puanlık ölçüm hatası. .

Sende de sadece son hane oynuyor ise deneyebilirsin. Ama 3,5 puan oynuyorsa olmaz tabi.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Arduino adc sinde son hane sürekli bir puan oynuyor. Fazlası yok sadece bir puan. Ortlama alma yöntemlerini denediğimde de sonuçta oynama azalsa da devam etti. Bu durumda bende if ile bir puandan yüksek yeni değeri kabul et dedim oynama falan kalmadı. Sonuç 1 puanlık ölçüm hatası. .

Sende de sadece son hane oynuyor ise deneyebilirsin. Ama 3,5 puan oynuyorsa olmaz tabi.
Bendeki sıkıntı büyük ya. Ama anladığımız kadarıyla 1.8v yerine 3.29v verdiğim için sapıtıyor. Önce bu voltajı ayarlayacağım. Eğer 1 puan oynarsa dediğin gibi halledebilirim.
Şu anda full değerde 1023 okuması gereken ADC maks 1020 okuyor. O da 1013 ile 1020 arasında 7 puan fark ile.
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
3.3 V vereceksin ADC ye, bu besleme voltajı. Ama girişe en fazla 1.8 V vereceksin. Şimdi şundan emin değilim yalnız. Referans voltajı olarak neyi alıyor bu? 3.3 V mu yoksa kendi içinde 1.8 V mu türetiyor? Eğer 3.3 V referans alıyorsa o zaman kötü. ADC efektif olarak 12 bit yerine 11 bit ADC haline geliyor.

Aslında bende bir pico var. Arduino IDE ye nasıl tanıtacağımızı bir keşfedeyim ben de denemeler yapmak istiyorum.
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Şu anda full değerde 1023 okuması gereken ADC maks 1020 okuyor. O da 1013 ile 1020 arasında 7 puan fark ile.

Bu değişkenliği sebebi 1.8 V u aşman değil. Bu büyük ihtimalle ADC besleme voltajındaki gürültüden kaynaklanıyor.

1.8 V u aşınca yanlış ölçüm olur, eksik ölçersin.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
3.3 V vereceksin ADC ye, bu besleme voltajı. Ama girişe en fazla 1.8 V vereceksin. Şimdi şundan emin değilim yalnız. Referans voltajı olarak neyi alıyor bu? 3.3 V mu yoksa kendi içinde 1.8 V mu türetiyor? Eğer 3.3 V referans alıyorsa o zaman kötü. ADC efektif olarak 12 bit yerine 11 bit ADC haline geliyor.
Benim de kafam karıştı. ADC nin GND side ayrı sanırım. Şimdi benim şemaya bakacağım GND yi ne yapmışım diye.

Aslında bende bir pico var. Arduino IDE ye nasıl tanıtacağımızı bir keşfedeyim ben de denemeler yapmak istiyorum.
Bu çok kolay.
Arduino ide tercihlerden pico linkini yapıştırıp, kart kütüphanesinden pico aratıp yüklüyorsun o kadar. Github da linki var. Ben evde olmadığımdan veremiyorum linki.

Bu değişkenliği sebebi 1.8 V u aşman değil. Bu büyük ihtimalle ADC besleme voltajındaki gürültüden kaynaklanıyor.

1.8 V u aşınca yanlış ölçüm olur, eksik ölçersin.
Netteki videolarda genelde 3.3v veriyorlar ADC ye 1.8v dan hiç bahseden olmamış. Ama hayırlısı bakalım. Senin testlerin asıl sonucu verir.
 

Ahmet

Kıdemli Üye
Katılım
31 Mayıs 2021
Mesajlar
2,597
3.3 V vereceksin ADC ye, bu besleme voltajı. Ama girişe en fazla 1.8 V vereceksin. Şimdi şundan emin değilim yalnız. Referans voltajı olarak neyi alıyor bu? 3.3 V mu yoksa kendi içinde 1.8 V mu türetiyor? Eğer 3.3 V referans alıyorsa o zaman kötü. ADC efektif olarak 12 bit yerine 11 bit ADC haline geliyor.

Aslında bende bir pico var. Arduino IDE ye nasıl tanıtacağımızı bir keşfedeyim ben de denemeler yapmak istiyorum.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Kafama takılan iki sorum var.

1- DAC' a set ettiğim değeri çıkışından alamıyorum. 998,3 gönderdiğimde DAC' çıkışından tam 1V alabiliyorum. Bu sorunu çözmem lazım.

2- İlk açılışta DAC'a 0 set ediyorum ama çıkışında 0,001 oluyor. Bu da güç kaynağı çıkışında 0.025V veriyor. Böyle olunca da ekranda da 0.18V civarı görünüyor. Ben bunu if ile sıfırlıyorum ama bunun yansıması sadece ekrena oluyor. Hadi onu kabul ettim diyelim ama 1V ayarladığım da tekrar devreye giriyor ve 1.18V oluyor.

Bu iki adım sorunumun en başı. Öncelikle bu ikisini çözmeliyim. Zaten anladığım kadarıyla gerisi çorap söküğü gibi gelecek.
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Gene böl ve yönet taktiğini uygula. DAC'ın çıkışını devreden ayır ve o şekilde istenen değeri veriyor mu bak.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Gene böl ve yönet taktiğini uygula. DAC'ın çıkışını devreden ayır ve o şekilde istenen değeri veriyor mu bak.
Abi DAC'ın iki kanalına da aynı değeri set ettim.

Voltaj kanalına en son 1K direnç takmıştık onu söktüm.
Şuanda voltaj kanalını boşta ölçtüğüm de gönderdiğim değer 998.3, okuduğum değer 1V
Test için amper kanalınada aynı işlemi uyguladım. Onda 27K direnç vardı. Sökmeden ölçüm yaptım.
998.3 gönderiyorum, çıkışından 998mV değer okuyorum. Amper kanalında sorun yok gibi.
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Sorunu anlayana kadar sadece dijital veri göndererek test et. Yani DAC registerine ne yazıyorsun, çıkışta kaç volt okuyorsun.

Akım DAC'ı ve gerilim DAC'ına aynı veriyi yazarsan çıkışta da aynı voltajı görmen lazım. Görmüyorsan çok temel bir sorun vardır.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Sorunu anlayana kadar sadece dijital veri göndererek test et. Yani DAC registerine ne yazıyorsun, çıkışta kaç volt okuyorsun.

Akım DAC'ı ve gerilim DAC'ına aynı veriyi yazarsan çıkışta da aynı voltajı görmen lazım. Görmüyorsan çok temel bir sorun vardır.
Abi DAC 0 ve DAC 1 çıkışlarına 1000 değeri gönderiyorum.
Multimetreden okuduğum
DAC 0 (Amper çıkışı) 1000
DAC 1 (Voltaj çıkışı) 1002

Bu voltaj çıkışında 2 puanlık bir sorun var.
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Abi DAC 0 ve DAC 1 çıkışlarına 1000 değeri gönderiyorum.
Multimetreden okuduğum
DAC 0 (Amper çıkışı) 1000
DAC 1 (Voltaj çıkışı) 1002

Bu voltaj çıkışında 2 puanlık bir sorun var.

Bu şekilde sistem dursun bakalım. Ara ara ölç, çıkış her zaman sabit 1.000 V ve 1.002 V mu kalıyor yoksa oynuyor mu görelim.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Bu şekilde sistem dursun bakalım. Ara ara ölç, çıkış her zaman sabit 1.000 V ve 1.002 V mu kalıyor yoksa oynuyor mu görelim.
Tamam abi.
Arkotek de Orjinal Microchip MCP4922 var. 69TL fiyatı var ama kargosuyla 90'a geliyor. Ondan alıcam bir tane.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Bu şekilde sistem dursun bakalım. Ara ara ölç, çıkış her zaman sabit 1.000 V ve 1.002 V mu kalıyor yoksa oynuyor mu görelim.
Yaklaşık 4 saattir açık. Ara ara ölçüyorum. 1 puan bile değişim yok. Biri 1000, diğeri 1002
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Bu iyi, herşey stabil o zaman. Bu durumda tek yapman gereken, DAC'a yazılan dijital veriden 2 çıkarmak.
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,798
Hmm ama bir dakika. 2 çıkarırsan DAC verisi 1 ve 0 olduğunda negatife inersin, olmaz.
 

Gokrtl

Gökhan Kartal
Staff member
Katılım
27 Şubat 2019
Mesajlar
7,855
Hmm ama bir dakika. 2 çıkarırsan DAC verisi 1 ve 0 olduğunda negatife inersin, olmaz.
DAC çıkışı ile oynayamayız ki abi. Set ettiğimiz sayı ile oynarız.
Ben katsayısından değil de katsayı ile çarpılacak voltajı -2 gönderirim sorun çözülür diye düşünüyorum.
Eğer sıfır gönderme ihtiyacı hissedersem de if ile sıfır geldiyse -2 yapma derim.
Biraz kurcalayayım bakalım.
 
Top