Stránka 1 z 1
Arduino a analogový šum
Napsal: 23 bře 2021, 16:00
od Cust
Zdravím,
postavil jsem si zařízení, kde potřebuju měřit hodnoty o velikosti promile maxima.
Pro převod do PC jsem použil Arduino UNO a vše pracovalo správně. Minimální naměřená hodnota je 0 až 0.1 % z maxima a šum v průměru (10 vzorků) odpovídá cca 0.02 %.
Problém nastal, když jsem do Arduina doprogramoval web server. Došla paměť!
Koupil jsem tedy Arduino ZERO (Seeedstudio), kde s pamětí problém není a navíc získám 12 bit ADC. Juchů.
Zklamání přišlo při testech šum narostl na 0.4 % i když jsem ho očekával někde na 0.04 % a průměrování s tím nic nenadělá - jeden vzorek jako druhý. Prostě šumí ADC respektive multiplexor dělá bordel.
Otázka tedy zní: Víte někdo jak na Arduino Zero (ARM Cortex+ M0) ovládat multiplexer z Arduino IDE. Jde mi o buď výrazné snížení přepínání multiplexoru či přímo výběr jednoho konkrétního kanálu. Funkce Delay před funkcí analogRead nic neřeší.
Díky Čust
Napsal: 23 bře 2021, 17:05
od ZdenekHQ
To vypadá, že se jedná o rozšířený mor.
U NRF9E5 jsem například zjistil, že když se přepne jádro na čtyřnásonek, abych z toho vyrazil na UART 56kbit, tak 12bit převodník ukazuje asi o 10% méně. Což o to, to se dá zkalibrovat, ale u serie 10ks jsem našel 5, co byly dost výrazně nelineární.
Přeju příjemný zážitky.
Napsal: 23 bře 2021, 17:53
od Zaky
Jak se začne potřebovat pořádně měřit, tak se skončí u externího převodníku. Ono v jednočipu nepanuje zrovna z hlediska rušení přátelské prostředí. Také se stačí podívat, co stojí běžný jednočip a co slušný převodník, rozdíl je celkem markantní. Pak se to samozřejmě nesmí zabít layoutem desky.
Napsal: 23 bře 2021, 18:03
od termit256
Prostuduj datasheet k tomu obvodu. Byva tam napsane co vsechno se ma povypinat v prubehu mereni, jak rychle se ma merit apod. aby se redukoval sum. Ale obecne jsou ty integrovane prevodniky dost tragedie.
Napsal: 23 bře 2021, 19:43
od Cust
první vlašťovka - průměrovaný šum pod 0.02 % zatím jen na jednom kanále
ostatní mlčí
asi bude dluhá noc

Napsal: 23 bře 2021, 19:52
od ZdenekHQ
Zaky to napsal přesně. Taky jsem skončil externím převodníkem. Jo ten můj slavnej zákazník, ten nezná ani slovo kalibrace. Pak nadává, ale mně...
Stochastické chyby se bohužel sčítají.
Napsal: 23 bře 2021, 23:18
od samec
Tiež som si kedysi na začiatku kúpil arduino zero, že ho použijem na nejaké sofistikované veci, ale nakoniec som skončil pri neoficiálnom arduino pro micro, čo je zmenšená verzia arduino leonardo s čipom mega32u4. Za tie tri doláre z ebay by som v tomto prípade použil aj dve arduina. Jedno na meranie a druhé na internet.
Napsal: 24 bře 2021, 00:59
od Cust
Hmmm
já bych raději potřeboval vyřešit to ZERO... Něco málo jsem vylepšil, ale
nicméně šum stále je! něco jsem měl špatně... předchozí příspěvek je error
PO HODINĚ PRÁCE:
Každopádně, Zero má vlastní offset cca 0.15 % rozsahu i po zapnutém HW průměrování, u mě tedy cca 3.7 mV. Pak se šum zmenšuje s impedancí zdroje, logicky - vyhodil jsem RC článek (dolní propust) a zapojil jsem výstupní OZ natvrdo (přes odpor 47 Ohm) do ADC.
Další kus práce:
Nyní mám šum s offsetem OZ (a po odečtení offsetu ADC) na hodnotě 0.17 %.
Po odečtení offset OZ (dle měření osciloskopem 250 uV) jsem na hodnotě šumu 0.16 %.
Řekněme, že tomu věřím a ukončuji akci improve ADC!
Signál budu asi 4x zesilovat, takže se mi šum projeví jako 0.04 %. To už je lepší než 60 dB a s tím se dá pracovat!
Napsal: 24 bře 2021, 01:49
od Cust
příští akce bude externí ADC

Napsal: 10 dub 2021, 21:16
od Cust
Ještě jsem si cvičně koupil STM32... Přesněji desku Nucleo G071RB. Je to dokonce levnější než to Arduino.
Tam ten šum na AD převodníku je mnohonásobně lepší naž na procesoru SAMD21.
Takže pokud budete chtít měřit analogové hodnoty Arduino Zero není nejlepší volba.
Zatím nejlepší výsledky mám na Arduinu Due.
Napsal: 13 dub 2021, 18:36
od Cust
Tak to Arduino Due beru zpět. Sice moc nešumí, ale offset dle datasheetu nic moc (můj kus je zrovna OK). Tedy spíše bych šel do toho STM, když už teda interní ADC. A číst chvilku po přepnutí kanálů...