Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: sedronjames - 09 Mayıs 2022, 17:19:35

Başlık: STM32 ADC eksik değer okuyor.
Gönderen: sedronjames - 09 Mayıs 2022, 17:19:35
Arkadaşlar selamlar.


STM32G serisi bir mikrodenetleyici kullanıyorum.

En temel sorundan başlamak için yalnızca DC bus gerilimini ölçüp debug ekranından kontrol ediyorum.

Başlangıçta tek kanal okuma yaptığım için regular grup single modda çalışıyorum.
 
0.25 saniyede kesme üreten bir timerım var. Bu kesme fonksiyonunun içerisinde ADCyi başlatıyorum.

Bir çevrim okuduktan sonra otomatik olarak kendisini sonlandırıyor. Tekrar okuma yapmak için tekrar ADCyi başlatıyorum.

ADCnin sampling timeı 2.5 cycle seçtim. 12.5 cycle da default olarak ekleniyor. Etti 15 cycle.

Gerilim bölücü kullanarak da DC bus gerilimini ölçüyorum.

Kullandığım dirençler 100k ve 5.1k.

ADC bu ayarlar ile ölçümü 865 gibi bir dijital değer (12 bit) olarak ölçüyor.

Ancak hesaplamaya göre 1165 gibi bir dijital değer olması gerekiyor.

Sampling timeı artırdığımda 1135 gibi daha yakın bir değer elde ediyorum.

Burada sampling timeın etkisi nedir?

2 gündür forumda dolaşıyorum ancak istediğim gibi bir yanıt bulamadım.

Yardımlarınızı bekliyorum.

İyi forumlar :)
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: Erol YILMAZ - 09 Mayıs 2022, 17:37:40
5k1 e paralel 100nF bağlı mı?
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: noravel - 09 Mayıs 2022, 18:02:06
Selam, referans voltaj ayarlarınız nedir? STM32G0 serisi kendi içinde voltaj referans bulunduruyor. Vref+ çıkışından kaç volt ölçüyorsunuz?

https://www.st.com/content/ccc/resource/training/technical/product_training/group0/9f/d7/5e/ce/3a/18/49/7e/STM32G0-Analog-Voltage-reference-buffer-VREFBUF/files/STM32G0-Analog-Voltage-reference-buffer-VREFBUF.pdf/jcr:content/translations/en.STM32G0-Analog-Voltage-reference-buffer-VREFBUF.pdf (https://www.st.com/content/ccc/resource/training/technical/product_training/group0/9f/d7/5e/ce/3a/18/49/7e/STM32G0-Analog-Voltage-reference-buffer-VREFBUF/files/STM32G0-Analog-Voltage-reference-buffer-VREFBUF.pdf/jcr:content/translations/en.STM32G0-Analog-Voltage-reference-buffer-VREFBUF.pdf)
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: z - 09 Mayıs 2022, 18:03:15
Kalibrasyon islemini yapmiyorsan bu hatalarla karsilasman normal.
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: ex_machina - 09 Mayıs 2022, 21:04:36
Muhtemelen empedans uyumsuzluğu var. ADC girişine bir tane voltaj buffer ekleyin bir de öyle deneyin.
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: sedronjames - 10 Mayıs 2022, 08:34:04
@Erol YILMAZ hayır bağlı değil.

@noravel VREFINT referans voltajını 3.41 volt gibi elde ediyorum. VDDA gerilimim yaklaşık 3.3 volt. Ancak datasheette verilen adresteki kalibrasyon değeriyle hesaplama yapınca 3.41 gibi bir değer elde ediyorum.

@ex_machina voltaj buffer deneyeceğim.


Ancak benim burada dikkat çekmek istediğim nokta ADC sampling time değişince ölçümün de değişmesi. Buna anlam getiremedim.

Yanıtlarınız için çok teşekkür ederim. İyi forumlar.
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: e-zeki - 10 Mayıs 2022, 11:16:58
ADC girişlerinde "holding capacitor"ler var ADC örnekleme yapabilmek için belli bir dolum süresine ihtiyaç duyar sampling time bu işe yarar adc girişindeki kapasitörün dolumu ve dolduktan sonraki çevirim için gerekli süreye tekabül eder.
sizin adc giriş empedansınız ne kadar yüksek olursa bu kapasitörün dolum süresi o kadar uzun olur. bu yüzden giriş empedansıyla sampling time ayarı doğru orantılı olmalıdır. sorununuz büyük ihtimalle buradan kaynaklanıyor ölçüm değişikliği kapasitörün doluluk seviyesinden kaynaklı.
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: sedronjames - 10 Mayıs 2022, 11:43:54
yanıtınız için teşekkür ederim. dediğiniz gibi sampling time süresini artırınca doğruya daha yakın bir değer elde edebiliyorum.

Şu an birden fazla kanal okumak için DMA'yı aktif ettim.

Stabil bir okuma yapıyor dalgalanma yok. Ancak olması gerektiğinden yaklaşık 300-400 dijital değer yüksek okuyor. sanki offset varmış gibi.

scan conversion modu enable
cont. conv. modu enable
sampling time'ı da artırdım sonuçlar böyle.
Başlık: Ynt: STM32 ADC eksik değer okuyor.
Gönderen: sedronjames - 11 Mayıs 2022, 07:59:28
Okuma yaptığım diğer kanal pull-up direnci ile 5V'a bağlıymış.

Bu yüzden okuduğum diğer kanallarda offset etkisi yapıyormuş.