MCP4922 Otomatik DAC Kalibrasyonu

Aslında senin bu konuyu ilk başlatırken dediğin şeyi denemek lazım. Adım adım 0 dan başlayıp 4095 e kadar bütün kodları üreteceksin, sonra da her birisi için voltaj ölçümü yapıp grafik çıkaracaksın. Sonra da bu grafiği kullanarak düzeltme yapacaksın.
 
Tabi bunu yapmak için ADC tarafından emin olman lazım. ADC de de lineerlik hataları varsa, körler sağırlar, birbirini ağırlar olur :D

Aslında benim Rigol DM3068 ile PC kontrollü ölçüm yapabilirim, ama hemen yapılabilecek birşey de değil.
 
Aslında senin bu konuyu ilk başlatırken dediğin şeyi denemek lazım. Adım adım 0 dan başlayıp 4095 e kadar bütün kodları üreteceksin, sonra da her birisi için voltaj ölçümü yapıp grafik çıkaracaksın. Sonra da bu grafiği kullanarak düzeltme yapacaksın.
Ben o grafiği çıkartırım ama o kadar veriyi nasıl işlerim bilmiyorum. :D
 
Şimdilik 25 adım saydım. Tablo bu.

DAC_SAY.png
 
Buda 25 adım 100'er 100'er artırıp gönderdiğim değerler.
Bu değerler kodlama ile düzeltilir mi bilmiyorum. Benim yine aklıma gelen güç kaynağı çıkışını okuyup DAC'ı 0,01 adımlar ile kalibre etmek.

DAC_SAY_100.png
 
Aslında bu verilere göre lineer interpolasyon yapılabilir. Her 25 veri için DAC düzeltme farkını koyarsın tabloya. Ama aradaki farklar 1 civarında, ne kadar fayda sağlar emin değilim.
 
Aslında bu verilere göre lineer interpolasyon yapılabilir. Her 25 veri için DAC düzeltme farkını koyarsın tabloya. Ama aradaki farklar 1 civarında, ne kadar fayda sağlar emin değilim.
İnterpolasyon nasıl yapılır bilmiyorum ki :)
 
İnterpolasyon yapmadan doğrudan voltu alıp yukarıdaki tabloya index olarak kullanabilirsin. Mesela 22.57 V üretilecek, tablodaki 22 inci düzeltme faktörünü uygulayacaksın.

İnterpolasyon yaparken ara değerleri de hesaba katmış oluyorsun, ama düzeltme faktörler 0, 1, veya 2 gibi. Değişik ara değer fazla yok, o yüzden gene kaba olacak.
 
Demekki 12 bit DAC ile elde edebileceğimiz çözünürlük belli. Bit sayısının artması lazım. 20 mV çözünürlük senin bu güç kaynağı için yeterli değil mi?
 
Demekki 12 bit DAC ile elde edebileceğimiz çözünürlük belli. Bit sayısının artması lazım. 20 mV çözünürlük senin bu güç kaynağı için yeterli değil mi?
20mV 0.20 ye mi denk geliyor yoksa 0.020 ye mi?
Çünkü 0.20 olursa 3.3v ayarlayamam. Ya 3.2 olur yada 3.4. Bu işime gelmez.
 
20mV 0.20 ye mi denk geliyor yoksa 0.020 ye mi?
Çünkü 0.20 olursa 3.3v ayarlayamam. Ya 3.2 olur yada 3.4. Bu işime gelmez.
0.020V oluyor.

Redmi Note 8 Pro cihazımdan Tapatalk kullanılarak gönderildi
 
Aslında bildiğim halde sordum. Sağlama almak için. 0.20 dediğimiz 200mV oluyor.
 
Demekki 12 bit DAC ile elde edebileceğimiz çözünürlük belli.
Abi sanki burada çözünürlükten ziyade DAC'ın düzgün adım atmamasından kaynaklı sorun yaşıyoruz. 16bit DAC da kullansak adımı düzgün saymadığı sürece yine istediğimizi elde edemeyeceğiz.
 
Regülasyon un iyi veya orta sayılması için kaç mv oynama normal kabul edilir.?

Atıyorum yükte 50mv kayma iyimi ortamı kötümü?
 
Abi sanki burada çözünürlükten ziyade DAC'ın düzgün adım atmamasından kaynaklı sorun yaşıyoruz. 16bit DAC da kullansak adımı düzgün saymadığı sürece yine istediğimizi elde edemeyeceğiz.

Bu sorun büyük ölçüde çözünürlük ile ilgili. Tamam DAC da süper üst seviye kaliteli bir DAC değil, ama DAC'taki her adım çıkışa 7.5 mV olarak yansıyor. Yani DAC ideal bile olsa çıkış voltajını en az 7.5 mV adım attırabiliyorsun. 16 bit DAC kullansan çıkışta 0.468 mV çözünürlük elde edersin.
 
Regülasyon un iyi veya orta sayılması için kaç mv oynama normal kabul edilir.?

Atıyorum yükte 50mv kayma iyimi ortamı kötümü?

Lineer regülatörde feedback döngüsü kullanıldığı için, eğer referans voltajı sabit ise çıkıştaki oynama çok az olur. Hele bir de voltaj sensing kullanırsan, yük voltajının akım artsa bile neredeyse hiç değişmemesi lazım.
 
Bu sorun büyük ölçüde çözünürlük ile ilgili. Tamam DAC da süper üst seviye kaliteli bir DAC değil, ama DAC'taki her adım çıkışa 7.5 mV olarak yansıyor. Yani DAC ideal bile olsa çıkış voltajını en az 7.5 mV adım attırabiliyorsun. 16 bit DAC kullansan çıkışta 0.468 mV çözünürlük elde edersin.
Anladım abi.
O zaman benim bu durumda ne yapmam gerek?
Bunun hesabının ve kodlamasının nasıl yapılacağını bilmiyorum.
 
Benim DAC'ta uygulamaya çalışayım bakalım ne kadar adam edebileceğiz bu DAC'ı. Olmazsa şöyle bir opsiyon da var, bu DAC'ın datasheet'inde anlatılıyor. İki tane MCP4922 kullanıp 24 bit DAC elde etmek mümkün. Onu da deneyebiliriz.
 
Benim DAC'ta uygulamaya çalışayım bakalım ne kadar adam edebileceğiz bu DAC'ı. Olmazsa şöyle bir opsiyon da var, bu DAC'ın datasheet'inde anlatılıyor. İki tane MCP4922 kullanıp 24 bit DAC elde etmek mümkün. Onu da deneyebiliriz.
Olursa onuda yaparım. İkinci DAC yolda nasılsa.
 
Evet aşağıdaki satırda yuvarlama hatası oluyor
C++:
ival = voltaj * 100;

Onu şöyle değiştirmen lazım:
C++:
ival = round(voltaj * 100);
Aklıma eskilerden bir durum takıldı.
Float değişkenine gönderdiğimiz değerlerde yuvarlama hatası oluyordu ve bu durumu round() fonksiyonu kullanarak çözmüştük.
Acaba aynı durum burada da olabilir mi diye akşam eve döndüğümde set ettiğim voltaj değişkenini serial monitöre yazdırarak ayrıca takip edeceğim. Şuan da içime bir umut daha doğdu :)

Bu arada @Ahmet nerede yav? Sabahın 7'sinde damlardı her gün. :katil2:
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,659
Mesajlar
97,345
Üyeler
2,438
Son üye
İbrahimSönmez

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top