Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Egy kis korrekció: nem az a lényeg, hogy a mérendő jel stabil e, hanem hogy az ADC eredménye az e?!!
Ha igen, zajt kell hozzáadni. Ezt vagy a bemenethez, magához a jelhez adod hozzá, vagy azt meghagyod eredetiben, és a referenciát zajosítod el. A végeredmény ugyanaz: zajos ADC értékek....
Ha ezek a billegések, nem kvázi fehér zaj eloszlást mutatnak, akkor ez nem elég a túlmintavételezés helyes működéséhez! Oda az kell, hogy a statisztikai jellege egyenletes eloszlást mutasson, máskülönben lépcsők lesznek továbbra is az eredményben(és itt nem a legutolsó bit lépcsőjére gondolok)
> A másik hibát pedig maga az ADC produkálja. Nem preciziós ADC van benne és nem is lineáris.
Az ADC-vel kapcsolatban nagyon fontos kérdés az, hogy a csip köré épített áramkör milyen. Emiatt gyengébb "netes forrásokra" nem érdemes hivatkozni, ha tudni akarjuk a pontosságot, akkor az adatlaphoz kell fordulni, illetve ha nem hiszünk neki akkor mérni kell, de rendesen megtervezett áramkörben, nem demo boardon. Bár kicsit más példa, de érzékelteti a véletlenszerű netes források használhatóságát, hogy az ATMEGA328P csip fogyasztásáról többféle legenda keringett a neten, és egyszer vettem a fáradságot és megmértem amennyire tudtam az eszközeimmel. Sikerült reprodukálnom a netes pesszimista eredményeket, amik a gyári adattól nagyságrendileg rosszabbak voltak. De elkövettem azt a hibát, hogy nem kötöttem be az összes lábat. Amint bekötöttem az AREF lábat is az adatlap szerint, abban a pillanatban a fogyasztás nagyságrendeket csökkent, és az adatlap szerinti lett (amennyire az ilyen kis értéket mérni tudtam az eszközeimmel). Ebből arra a következtetésre jutottam, hogy a fórumtalálatok eredményeit szintén hibás áramkörökre alapozva osztották meg. Persze nem adtak hozzá áramköri rajzot, vagy mérési jegyzőkönyvet csak odadobtak egy számot, hogy szerintük a csip nem annyit fogyaszt, mint az adatlap szerint, hanem nagyságrendileg többet, ennyit és ennyit. Így keletkeznek a pletykák. Tehát ha fogyasztást vagy analóg pontosságot mérünk, akkor nem önmagában a csipet mérjük, hanem a csipet és az áramkört! Ha egy kezdő egy kutyaütő áramkörrel gyenge ADC pontosságot tapasztal, az nem jelenti azt, hogy maga a csip rossz. Nem akarom védeni az ESP32-t, nem ismerem egyáltalán, csak azért szóltam hozzá, hogy szerintem tisztességes mérések nélkül Internet szóbeszédre hivatkozva ezek megalapozatlan állítások.
Ezt le lehet tesztelni a gyakorlatban, és kiderül mennyire egyenletes az eloszlás. Ha nem tökéletesen egyenletes a zaj eloszlása, akkor az eredmény nyilván rosszabb lesz, mint ideális esetben. Ugyanakkor nagy valószínűséggel jobb jobb lesz, mint túlmintavételezés nélkül.
Végülis a kérdés, hogy arra feladatra amire használni kellene, elegendő-e vagy sem.
Sajnos az ESP32 ADC konvertere valóban gyengén sikerült. Három különböző hibája van, ebből kettő csökkenthető szoftveres kompenzálással, a harmadik nem.
Egyik hiba a nem lineáris jelleg, a magasabb tartományban jelentősen görbül a feszültség vs ad value fgv. Ezt lehet szoftveresen javítani. A következő hiba az, hogy zavarja a saját wifi rádiója. Mikor ad, mást mér. Gondos szűréssel sem védhető ki, az sem világos, hogy nagyfrekvenciás zavar okozza, vagy hőlökés a chipen belül. Ez is javítható szoftveresen - nem mér mikor ad. ![]() A harmadik hiba sajnos nem kivédhető. Kapacitív elvű SAR konvertere van, és pontatlan az egyik kondenzátor értéke. Ez azt eredményezi, hogy mikor az ennek megfelelő bit változik, ugrik több egységet az érték. A végeredmény egy fűrészfog szerű hiba. Összességében jóval gyengébb eredményt ad, mint egy rendes, jól sikerült 10 bites ADC.
Az ADC hibáival saját project fejlesztése során találkoztam. Az lett a vége, hogy beépítettem mellé egy STM32-t, minden mérést az végez, az ESP32 pedig a WiFi-t kezeli.
Próbáltam keresgélni, hogy az újabb változatokban, pl. a RISC-V magos c3-ban javítottak-e az ADC-n. Sajnos nem találtam adatot. Nem meglepő, nagyon munkaigényes korrekt módon letesztelni. A hozzászólás módosítva: Hé, 23:01
Szegény Elactrofan 2 oldalon keresztül olvasta a veszekedést, de senki sem segít neki.
Képzeljétek el, 10bit-tel is el lehet 1mA-es felbontást érni, 5A-ig. Mégpedig a kulcsszó: átlagolás. ha van egy pici zaj a mért jelen (márpedig mindig van), akkor a 10bitből egyből 11 vagy 12bit lesz, és megjelennek a kicsi áramértékek is. Megfelelő kalibrációval pedig a pontosság is meglesz (nagyjából). A kínai labortápok pontossága is kb. 1-5% között van... Kijelzi az 1mA-t is, aztán vagy annyi folyik, vagy nem. Az átlagolást érdemes állíthatóra programozni, mert minél több mintát veszünk, annál tovább tart a mérés, lehet már 32db is tökéletes eredményt ad. Vagy ahogy Attila86 írta a weboldalán: vett mondjuk 100db mintát, a 10 legkisebbet és 10 legnagyobbat eldobta, a többit átlagolta. Az arányokat majd kikísérletezi mindenki magának. De ha valaki az 5V-ot akarja mint referencia felhasználni, az inkább csak 0.1A-es lépésekben mérjen 0-5A között! Inkább legyen a belső 1.1V-os, vagy egy TL494 a referencia.
Amit említesz, az a statisztikai átlagolás, ami egyfajta digitális szűrés. De az ADC pontatlanságát az sem képes korrigálni. Egy érték még nem válik pontossá attól, hogy sok tizedesjegyet tartalmaz. Nem lehet a 10 bitesből 11 vagy 12 biteset csinálni! Gondold át a működését és rájössz, hogy miért nem.
Idézet: „Nem lehet a 10 bitesből 11 vagy 12 biteset csinálni!” Mások ezt másképp tudják: Microchip AN1152: Achieving Higher ADC Resolution Using Oversampling AVR121: Enhancing ADC resolution by oversampling Silicon Labs AN118: Improving ADC Resolution by Oversampling and Averaging
Te amúgy érted az oversampling fogalmát és a működési elvét? Szerinted az átlagolás az analógiája?
És csak úgy mellékesen megjegyzem, hogy mivel már itt megkaptam azt, hogy ez egy hobbi fórum, ezért ne hivatkozzak magasabb szintű eljárásokra, mert csak összezavarja a kezdőket, így most azt is megkérdezem, hogy erről mi a véleményed? ![]()
Én Josi777-tel értek egyet. Ha elolvasod az icserny hozzászólásában lévő Silicon Labs-os dokksit abban benne van hogy mikor működik az amit írtál.:
"The noise amplitude must be sufficient to cause the input signal to change randomly from sample to sample by amounts comparable to at least the distance between two adjacent codes (i.e., 1 LSB - please see Equation 5 in Appendix A). The input signal can be represented as a random variable that has equal probability of existing at any value between two adjacent ADC codes." Legalább annyi zajnak kell lennie hogy rángassa az ADC-t legalább egy digitet. Na ez az ami nincs meg gyakran.
Mellé tesz bármit ami zajt termel, és meg is van. Valamelyik doksi éppen írta is.
Ti szoktatok visszaolvasni legalább néhány hozzászólást, mielőtt hiányos hozzáértéssel rágjátok tovább a csontot?!!
![]() Leírtuk nem sokkal korábban, mi a pontos feltétele a túlmintavételezésből adódó felbontásnövelésnek, ami matematikailag is levezethető! Tehát felesleges tovább csámcsogni ezen..., ott van egy beidézett doksi is, ami elég szépen leírja a fizikáját ennek. Tessék elolvasni, és értelmezni...
Igazad van. Valóban nem olvastam most vissza. MeaCulpa
A pontosság pedig attól fog függeni, hogy hogyan kalibrálod be, mihez, és milyen referenciát használsz. Én kétpont kalibrációt alkalmaztam, és kielégítö eredményt kaptam. 10bit-et simán lehet 11bitre növelni, de a 12bit sem akkora probléma, sokkal pontosabb lesz a mérésed, mint sok más kínai szerkezet! Ha viszont használsz egy 16bites ADC-t, ott meg ugye lefelé fogod a mért eredményt rontani (átlagolni), mivel nem akarsz 12.17554V-ot látni a kijelzön.
Szerinted nincs zaj a tápodon? ![]() ![]() ![]() |
Bejelentkezés
Hirdetés |