Raspberry pico harici voltaj referansı ile ADC

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
21,896
Biraz önce raspberry pi picoya harici voltaj referansı bağladım. 2.500V luk harici referansı bağlamak için piconun üzerindeki R7 yi sökmek lazım. Bu direnç sökülünce ADC referans girişi ile 3.3 V besleme arasındaki bağlantı kesiliyor. Sonra da artık ADC_VREF pinine harici bir referans bağlanabiliyor.

Bu bağlantıyı yaptım. Sonra şu basit programı yükledim:

C++:
#define ADC0 26

void setup()
{
  pinMode(ADC0, INPUT);

  Serial.begin(115200);
}

void loop()
{
  analogReadResolution(12);

  while (1)
  {
    unsigned int value = analogRead(ADC0);

    char buffer[100];
    snprintf(buffer, sizeof(buffer), "%u\n", value);
    Serial.print(buffer);

    delay(10);
  }
}
 
Sonra da SMU ile ADC girişine 1.25V verdim. Serial monitöre aktarılan değerleri bir text dosyaya kaydettim ve sonra da MATLAB'e aktardım. Okumalarda inanılmaz gürültü var. İdealde 2048 okumam gerekiyor, çoğu zaman da okunan değer bu civarda, ama bu değer dışında çok fazla gürültü var.

1658700644598.png
 
Bu testi yaptığım şartlarda pico, USB portu üzerinden linux PC ye bağlı idi. Besleme voltajını da oradan alıyordu. Acaba PC'den mi gürültü kapıyor diye şüphelendim. PC olmadan, doğrudan güç kaynağı ile besleyeyim dedim picoyu. Ama o zaman sonuçları nasıl alacağım? PC ye bağlamadan verileri almak için şöyle bir çözüm uyguladım: Bir program ile ADC den okunan değerleri SPI porta yazdırdım. Bu porta da osiloskobu bağlayıp yazılan verileri topladım. Sonra da verileri bir text dosyaya kaydettim.

C++:
#include <SPI.h>

#define ADC0 26

#define PIN_SPI_CS 17
#define PIN_SPI_SCK 18
#define PIN_SPI_TX 19

void setup()
{
  pinMode(ADC0, INPUT);

  SPI.setCS(PIN_SPI_CS);
  SPI.setSCK(PIN_SPI_SCK);
  SPI.setTX(PIN_SPI_TX);
  SPI.begin(true);
}

void loop()
{
  analogReadResolution(12);

  while (1)
  {
    unsigned int value = analogRead(ADC0);

    SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE0));
    SPI.transfer16(value);
    SPI.endTransaction();
  }
}

Bu şekilde yapınca gürültü biraz daha azdı, ama gene kabul edilemeyecek kadar fazla gürültü var.

1658701038268.png
 
ADC girişini şaseye çekince bile 20 civarında değerler okuyorum. Ya ben bir yerde hata yapıyorum yada bunun ADC si gerçekten çok berbat.
 
İki grafiği üst üste görünce aradaki büyük fark görülüyor. Mavi olan PC ye bağlantılı durum, kırmızı olan PC den bağımsız durum.

1658701514568.png
 
Benim aklıma tek gelen, benim UPS den gelen gürültü buna sebep oluyor. UPS'i bypass'a alamıyorum, şu anda çalışan tunçmatikte o özellik yok. İnform'da vardı ama o da çok cırıltı yaptığı için onu söktüm götürdüm bahçeye.
 
Gene aynı hatayı yaptım, kullanım kılavuzunu okumadım ve benim Tunçmatik'te bypass modu olmadığını düşündüm. Şimdi kullanım kılavuzuna bakınca, bypass modu olduğu anlaşılıyor.

Bypass modu olduğuna göre, önce bypass'a girince inverteri kapattığından emin olmam gerekti. Osiloskobu 50 mV kademesine alıp probun şase kablusunu probun ucuna bağladım. Sonra da probu UPS'e iyice yaklaştırdım. Bypass modda değilken prob bir sürü gürültü kapıyordu UPS'den. Sonra UPS'i bypass'a alınca bütün gürültünün kesildiğini gördüm. Neyse, UPS bypass modda tekrar ölçümleri yaptım, neredeyse hiç fark yok. Yani UPS değil gürültünün kaynağı.

Sonra gene probun şasesi probun ucuna bağlı iken ve gene osiloskop 50 mV kademesinde iken probu picoya yaklaştırdım. Prob gürültü kapıyor. Sonra piconun 5 V beslemesini kesdim, gürültü de kayboldu. Demekki gürültünün kaynağı, pico üzerindeki SMPS gibi duruyor. Yani biz harici voltaj referansı da kullansak, oradaki SMPS'in gürültüsü ADC performansını olumsuz etkiliyor.

Demekki üç tane sorun var.

1) ADC voltaj referansı 3.3 V beslemeden alınıyor ve bu da gürültülü olduğu için ADC performansını etkiliyor. GreatScott zaten videosunda bunu belirtti. Ama o tek sorunun bu olduğunu, harici bir referansın sorunu gidereceğini belirtiyor. Bu doğru değil.

2) PICO üzerindeki SMPS'in gürültüsü, harici referans durumunda bile ADC'ye gürültü enjekte ediyor.

3) ADC'nin kendi tasarımında da sorun var, bu tespit edilmiş ve Raspberry foundation da konu ile ilgili bir açıklama yapmış.

SMPS gürültüsünün yarattığı olumsuz etkiyi dijital filtreleme ile belki uzaklaştırmak mümkün olabilir. Ama bunu ayrı bir konuda ele almak lazım.
 
Gene aynı hatayı yaptım, kullanım kılavuzunu okumadım ve benim Tunçmatik'te bypass modu olmadığını düşündüm. Şimdi kullanım kılavuzuna bakınca, bypass modu olduğu anlaşılıyor.

Bypass modu olduğuna göre, önce bypass'a girince inverteri kapattığından emin olmam gerekti. Osiloskobu 50 mV kademesine alıp probun şase kablusunu probun ucuna bağladım. Sonra da probu UPS'e iyice yaklaştırdım. Bypass modda değilken prob bir sürü gürültü kapıyordu UPS'den. Sonra UPS'i bypass'a alınca bütün gürültünün kesildiğini gördüm. Neyse, UPS bypass modda tekrar ölçümleri yaptım, neredeyse hiç fark yok. Yani UPS değil gürültünün kaynağı.

Sonra gene probun şasesi probun ucuna bağlı iken ve gene osiloskop 50 mV kademesinde iken probu picoya yaklaştırdım. Prob gürültü kapıyor. Sonra piconun 5 V beslemesini kesdim, gürültü de kayboldu. Demekki gürültünün kaynağı, pico üzerindeki SMPS gibi duruyor. Yani biz harici voltaj referansı da kullansak, oradaki SMPS'in gürültüsü ADC performansını olumsuz etkiliyor.

Demekki üç tane sorun var.

1) ADC voltaj referansı 3.3 V beslemeden alınıyor ve bu da gürültülü olduğu için ADC performansını etkiliyor. GreatScott zaten videosunda bunu belirtti. Ama o tek sorunun bu olduğunu, harici bir referansın sorunu gidereceğini belirtiyor. Bu doğru değil.

2) PICO üzerindeki SMPS'in gürültüsü, harici referans durumunda bile ADC'ye gürültü enjekte ediyor.

3) ADC'nin kendi tasarımında da sorun var, bu tespit edilmiş ve Raspberry foundation da konu ile ilgili bir açıklama yapmış.

SMPS gürültüsünün yarattığı olumsuz etkiyi dijital filtreleme ile belki uzaklaştırmak mümkün olabilir. Ama bunu ayrı bir konuda ele almak lazım.
piconun alt tarafı ve kartın üstündeki boş olan kısım bence değerlendirilmeli.
Eğer boost özelliği kullanılmayacaksa hiç o regülatör kullanılmamalı kartın üstündeki boşluklara 1117 3.3 sığar.
Buck converteri kullanmak yerine 1117 montajı yaparsak bence smps gürültülerinide elemiş oluruz.
 
piconun alt tarafı ve kartın üstündeki boş olan kısım bence değerlendirilmeli.
Eğer boost özelliği kullanılmayacaksa hiç o regülatör kullanılmamalı kartın üstündeki boşluklara 1117 3.3 sığar.
Buck converteri kullanmak yerine 1117 montajı yaparsak bence smps gürültülerinide elemiş oluruz.

Evet onu denemek lazım. 1117 terarik edeyim ve deneyelim.
 
yükümüz çok az abi birtek işlemci çalışacak ilave bir yükü neredeyse yok

Yükün az veya çok olması önemli değil, önemli olan, yükün çektiği akımın sürekli olarak değişmesi. Akım sürekli değişince de gerilim bölücü voltajı sürekli değişecek.
 
Yükün az veya çok olması önemli değil, önemli olan, yükün çektiği akımın sürekli olarak değişmesi. Akım sürekli değişince de gerilim bölücü voltajı sürekli değişecek.
Yakın olsaydık veya kayıt oluşturacak ortamım olsa ben test yapardım abi.
1117 stoğum var artık biraz zor bulunuyor
 

Forum istatistikleri

Konular
5,885
Mesajlar
100,424
Üyeler
2,493
Son üye
cym247

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
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)
Back
Top