Adc channel rank sıralaması problemi yaşıyorum (stm32f030f4p6)

Başlatan sessiz_roman, 31 Mayıs 2019, 08:35:07

sessiz_roman

Arkadaslar dma ile birden cok adc verisinin okunabilecegini öğrendim ve buna dair videolari internette buldum ve cube mx de yapmaya calistim ancak işlemciyi stm32f030f4p6 sectigimde adc kanallari icin rank siralamasi yapamiyorum cunku cube mx de boyle bir secenek aktif olmuyor.

Bu sefer cubemx de islemciyi degistirip nucleo karti sectigimde cumemx de adc kanallari icin rank siralamasi aktif oluyor ve secim yapabiliyorum.

Konuyu resimler ile daha iyi aciklarim sanirim.

Stm32f4 nucleo icin 2 kanal adc secildiginde rank siralamasi cikiyor.
https://i.hizliresim.com/bvQJyZ.jpg

Stm32f030f4p6 icin 2 kanal adc secildiginde rank siralamasi cikmiyor
https://i.hizliresim.com/JVdn3J.jpg

Stm32f4 nucleo karti icin kodlar generate edildiginde rank siralamasi su sekilde
https://i.hizliresim.com/9Yv2GN.jpg

Stm32f030f4p6 icin kodlar generate edildiginde rank siralamasi su sekilde.
https://i.hizliresim.com/P7vPQO.jpg

Ilginctir ki nucleo karti icin adc init islemlerini kendimiz yapmaya kalksak şöyle secenekler cikiyor.
https://i.hizliresim.com/Z527YV.jpg

Ama ayni islemi stm32f030f4p6 adc init islemlerini yapacak olursak karsimiza soyle secenekler cikiyor.
https://i.hizliresim.com/VQ2vEv.jpg

Simdi sizden ricam ben bu rank siralamasini nasil yalacagim hkcam bi yardimci olsanız cok makbule gececek.

Tagli

İki işlemcinin ADC modülleri aynı olmayabilir. Belki birinde olan bir özellik diğerinde yoktur.
Gökçe Tağlıoğlu

sessiz_roman

Alıntı yapılan: Tagli - 31 Mayıs 2019, 08:56:19İki işlemcinin ADC modülleri aynı olmayabilir. Belki birinde olan bir özellik diğerinde yoktur.
Dediginiz ihtimal var hocam ancak datasheetinde adc nin cevrebirimleri ve dma ile kullanilabilecegi yaziyor yani bir yolu mutlaka var ama bulamadim.
Kac gundur ugrasiyorum.

Tagli

STM32'lerin ADC modülleri ile ilgili bir bilgi ve deneyimim yok. Senin sorunu görünce referans dokümanlarına bir göz attım. PDF'te "rank" kelimesini aratınca bir şey çıkmıyor. Ancak bir ihtimalle, ardışık dönüşüm sıralaması ile ilgili olabilir. Yani ADC kanallarının hangi sıra ile örnekleneceği. F4'ün dokümanında "sequence" ayarları ile ilgili register'lar var, F0'da ise yok. Belki onunla ilgili bir durumdur. Yani DMA ile ilgisi olmayabilir. Yanılıyor da olabilirim tabi.
Gökçe Tağlıoğlu


Cemre.

STM32F030F4 işlemcisinde rank yok. Yalnızca sıralamayı baştan veya sondan başlatacak şekilde çalıştırabiliyorsunuz. Kanal numarası = rank gibi düşünebilirsiniz.

sessiz_roman

Alıntı yapılan: 10f200.h - 31 Mayıs 2019, 11:50:49hocam bu linkte stm32f0 için çoklu adc dönüşümünü anlatıyor.

https://stackoverflow.com/questions/45291690/individually-read-distinct-inputs-with-stm32f0-adc
evet hocam su an icin sorunum adina en etkili cozum yontemi bu görünüyor. Ancak burada galiba bir adc kanali ve dahili sicaklik sensoru ve bataryanin adc degerleri islenmis. Bana sadece iki tane potansiyometre icin adc islemi lazimdi.
Aksam eve gidince ayrintili inceleyip neler cikarabilevegime bakacagim.
Tekrar teşekkür ederim

sessiz_roman

Alıntı yapılan: Cemre. - 31 Mayıs 2019, 12:12:23STM32F030F4 işlemcisinde rank yok. Yalnızca sıralamayı baştan veya sondan başlatacak şekilde çalıştırabiliyorsunuz. Kanal numarası = rank gibi düşünebilirsiniz.
Evet hocam oradaki forward ifadesi siralamanin bastan başlayacağını isaret ediyor olabilir. Peki hocam sadece iki tane potansiyometre icin dma olmadan islem yapmaya kalksak nasil bir kod uygulamamiz lazim.
Mesela a ve b degiskenlerimiz olsun ve pa0 ve pa1 adc degerlerini sirasiyla a ve b degiskenlerine atamamiz gerekiyor diyelim bunu nasil yapacağız bilginiz var mi.
1 adc degeri alacak olsaydik hal_adc_start fonksiyonu ile islemi baslatip get value islemi ile degeri a degiskenine atabilitdik ama iki degisken ve iki adc birimi olduğunda bu degiskenlere nasil adc verilerini aktaracagiz. Asil sorunum bu su an icin.
Size de teşekkür ederim

bymrz

Alıntı yapılan: mustafa704250 - 31 Mayıs 2019, 12:14:26evet hocam su an icin sorunum adina en etkili cozum yontemi bu görünüyor. Ancak burada galiba bir adc kanali ve dahili sicaklik sensoru ve bataryanin adc degerleri islenmis. Bana sadece iki tane potansiyometre icin adc islemi lazimdi.
Aksam eve gidince ayrintili inceleyip neler cikarabilevegime bakacagim.
Tekrar teşekkür ederim

Hocam bu arada bir bilgi vereyim. İki kanal ölçüm yapacak olsan da, daha doğru bir sonuç elde etmek istiyorsan VrefInt kanalını da okumak zorundasın. Vrefint kanalını okuyarak önce işlemcinin besleme voltajının gerçek değerini hesaplayacaksın. Daha sonra da gerekli orantılarla potansiyometreden aldığın verileri işleyeceksin.

Yani kısace, Vrefint olayını da araştırmalısın...


sessiz_roman

Alıntı yapılan: alone_lover - 31 Mayıs 2019, 22:16:38Hocam bu arada bir bilgi vereyim. İki kanal ölçüm yapacak olsan da, daha doğru bir sonuç elde etmek istiyorsan VrefInt kanalını da okumak zorundasın. Vrefint kanalını okuyarak önce işlemcinin besleme voltajının gerçek değerini hesaplayacaksın. Daha sonra da gerekli orantılarla potansiyometreden aldığın verileri işleyeceksin.

Yani kısace, Vrefint olayını da araştırmalısın...


Hocam vrefint ile potansiyometrenin baglantisini anlayamadim.  Benim bildigim vrefint islemcide ki dahili termometre icin kullanilan bir deger. Yani sicaklik hesaplamasi icin kullaniliyor diye biliyorum.
Peki vrefint normal bir potansiyometre kullaniminda nasil kullaniliyor. Yani denkleme nasil enjekte ediliyor.