přesnost měření pomocí AD převodníku ATMega8
Moderátor: Moderátoři
přesnost měření pomocí AD převodníku ATMega8
datel12 píše:Pomocí AD převodníku měřím napětí. Výsledek měření zobrazuji jako hodnotu ADC registrů přímo na displej. Bohužel se mi stává, že naměřená hodnota velmi kolísá (jednotky až desítky bitů). Používám interní referenci. Dá se toto kolísání nějak odstranit, nebo jde o běžnou odchylku?
Jak to myslíš desítky bitů, 10 LSB? Musíš mít dobře navržený plošňák, napájení převodníku oddělené LC článkem (je to v datašítu), blokovací kondík na referenci a dobře rozvedenou zem. Případně ještě RC filtr na vstupu převodníku. Pak se ta hodnota při měření stabilního napětí (třeba baterky) mění o 1 LSB.
Jak to myslíš desítky bitů, 10 LSB? Musíš mít dobře navržený plošňák, napájení převodníku oddělené LC článkem (je to v datašítu), blokovací kondík na referenci a dobře rozvedenou zem. Případně ještě RC filtr na vstupu převodníku. Pak se ta hodnota při měření stabilního napětí (třeba baterky) mění o 1 LSB.
No někdy je to i více než 10 LSB. Hodnota kolísá v cyklech s periodou několik vteřin. LC článek tam nemám ale zkusím ho tam přidat. Jakou hodnotu by měl mít ten blokovací kond na AREF, to jsem v datasheetu nenašel.
Měření pomocí průměrování hodnot se mi moc nelíbí. Měřené hodnoty zabírají paměť a o tu je většinou nouze.
datel12 píše:Andrea píše:Jak to myslíš desítky bitů, 10 LSB? Musíš mít dobře navržený plošňák, napájení převodníku oddělené LC článkem (je to v datašítu), blokovací kondík na referenci a dobře rozvedenou zem. Případně ještě RC filtr na vstupu převodníku. Pak se ta hodnota při měření stabilního napětí (třeba baterky) mění o 1 LSB.
No někdy je to i více než 10 LSB. Hodnota kolísá v cyklech s periodou několik vteřin. LC článek tam nemám ale zkusím ho tam přidat. Jakou hodnotu by měl mít ten blokovací kond na AREF, to jsem v datasheetu nenašel.
Měření pomocí průměrování hodnot se mi moc nelíbí. Měřené hodnoty zabírají paměť a o tu je většinou nouze.
Na ref dávám 4u7 keramiku, ale vyhoví i 100nF + 10uF tantal. Jaké napětí tím měříš, nemění se náhodou? Zkus měřit tužkový monočlánek.
Na ref dávám 4u7 keramiku, ale vyhoví i 100nF + 10uF tantal. Jaké napětí tím měříš, nemění se náhodou? Zkus měřit tužkový monočlánek.
Dík, zkusím. Napětí se nemění, zkoušel jsem tu baterku a když jsem měřil napětí z jiného zdroje tak jsem měl připojený měřák a ten se ani nehnul.
V datasheetu je obrázek, jak se má navrhovat tišťák. Kolem vývodů pro ADC je rozlitá měď s nulou. Předpokládám, že se to tak dělá na dvouvrstvém spoji, kdy se z jedné strany přivedou signály na piny a z druhé strany se rozlije ta měď. Jak toto ale udělat na jednovrstvém spoji?
- tominekk
- Příspěvky: 295
- Registrován: 16 črc 2004, 00:00
- Bydliště: 49°11'30.229"N, 16°35'29.415"E
- Kontaktovat uživatele:
Mega8 ma pameti az az. RAM myslim 1kB a E2PROM tusim 512B.
Kdyz nameris 10vzorku a zprumerujes, tak ti to pameti moc nevezme.
Kdyz kod pises v C, tak ses v pohode.
Ad 2.
Nejak nerozumim pojmu 10 LSB apod. LSB znaci nejmene vyznamny bit. MSB znaci nejvice vyznamny bit.
Takze nevim o kolik se ti to meni. Ted to nevim jiste, ale prevodnik to ma nejspis 10bit nebo 8bit. Pokud se ti meni dva posledni nejmene vyznamne bity, tak je to OK. Pokud se ti meni vyssi bity, tak je na tom neco spatne. Pokud teda meris stabilizovane napeti
Jak pise Andrea, koukni do datasheetu a snaz se to zapojit stejne. Precti si, jak rychly ten AD prevodnik je apod. Podle toho uzpusob HW a SW.
tominekk píše:Ad 2.
Nejak nerozumim pojmu 10 LSB apod. LSB znaci nejmene vyznamny bit. MSB znaci nejvice vyznamny bit.
Takze nevim o kolik se ti to meni. Ted to nevim jiste, ale prevodnik to ma nejspis 10bit nebo 8bit. Pokud se ti meni dva posledni nejmene vyznamne bity, tak je to OK. Pokud se ti meni vyssi bity, tak je na tom neco spatne. Pokud teda meris stabilizovane napeti
Myslím to tak, že se hodnota mění o +-10. Takže např. v rozsahu 240-260.
radekrd píše:datel12 píše:radekrd píše:To chce externí převodník, ty interní vlivem rušení z procesoru jsou na přesná měření nepoužitelné.
Nepotřebuji měřit až tak přesně ale odchylka +-10LSB mi přijde docela dost.
Běžně to ujíždí na posledních dvou bitech, ty se mění zcela náhodně.
No to by přesně odpovídalo. Né že by se s tím nedalo žít ale trochu mě to překvapuje. Podle datasheetu by odchylka měla být menší.
Je třeba zapojovat LC článek pokud používám interní napěťovou referenci?
datel12 píše:radekrd píše:datel12 píše:radekrd píše:To chce externí převodník, ty interní vlivem rušení z procesoru jsou na přesná měření nepoužitelné.
Nepotřebuji měřit až tak přesně ale odchylka +-10LSB mi přijde docela dost.
Běžně to ujíždí na posledních dvou bitech, ty se mění zcela náhodně.
No to by přesně odpovídalo. Né že by se s tím nedalo žít ale trochu mě to překvapuje. Podle datasheetu by odchylka měla být menší.
Je třeba zapojovat LC článek pokud používám interní napěťovou referenci?
Když se ti to mění o +-10LSB, tak se ti mění 4-5 dolních bitů. Chtělo by si to v tom udělat jasno.
- MartasBrno
- Příspěvky: 131
- Registrován: 25 lis 2007, 00:00
- Bydliště: Brno
Jednoduše jsem udělal průměr - sečetl 8 hodnot a součet bitově posunul o 3 bity. To je sice jedno, ale po zákroku se měření značně zklidnilo. Druhá možnost by byla "filtrovat" - ignorovat zjevně chybné hodnoty.