Atmega a prevod 20-30V na 0-5V

Preji hezky den.
Pro pritele se snazim udelat takovou vyhodnocovaci jednotku, a chci si jen overit jestli uvazuji spravne, nez zacnu nakupovat soucastky.
Zarizeni je pohaneno baterii ktera ma 30-20V. Mam tedy DC/DC menic, ktery mi vytvari 5V. Z tech 5 Voltu si OZ udelam 20V pomoci pomeru 5. Na dalsi OZ si privedu merene napeti a udelam differencni zapojeni, tudiz mi vyjde max 10V rozdil. Ten vhodnym odporovym delicem pro jistotu 1.2 ku 1 dam na pro me vhodny rozsah 0-4.9V.
Jaka bude presnost mereni vzhledem k zapojeni kdy bych pouzil pouze vhodny delic? Horsi/lepsi?
Nikdy jsem s OZ nedelal, staci mi nejaky levny LM224, nebo musi splnovat nejake parametry pro tento pripad?

Tak to jsem nepochopil. Můžeš nakreslit co potřebuješ měřit a co kde chceš za rozsah?

Tak jeste jednou. Tohleto je me schema, zkousel jsem i odhadnout odpory.

Hůstý :open_mouth:. Něco takovýho jsem ještě opravdu neviděl :laughing:.
Nemusíš se bát, že by to nefungovalo - nebude.
Vidím tam jakousi snahu o minimalizaci odběru měřícího vstupu. Bohužel mnohonásobně více než obyčejným děličem ztratíš v navazujících obvodech.
Způsoby, jak dosáhnout u OZ podjednotkového zesílení máš 2.
První je dělič na vstupu následovanej operákem s jednotkovým zesílením (pro snížení impedance výstupu) nebo invertující zapojení. V obou případech se nevyhneš odběru z měřeného uzlu.

Ve tvém případě bych šel nejjednodušší cestou. Prostě obyčejný dělič na vstupu a za něj pověsit neinvertující OZ. Jesli berou napájené obvody např. víc jak 5 mA, tak se děličem nemusíš ani moc zabejvat.
Jesli to má bejt ze 30V na 5V, tak to může bejt třeba 240k a 47k.
Střed děliče dáš na + operáku, výstup operáku na jeho - a k mcu.

To jsi kreslil v malování ne? :slight_smile: Eagle je pro domácí použití zdarma.

Myslim si, ze tve zapojeni neresi to, ze pro 20V chci mit 0V. V pripade pouziti pouze delice a OZ bude dle meho na vystupu cca 3.2V
Postupoval jsem podle logickych operaci a doporuceneho zapojeni OZ, na spotrebe ani tak nezalezi, mela by byt tak do 50 mA.
Z DC/DC menice ziskavam vzdy 5V nezavisle na tom, kolik je vstup. 5 V zesilim neinvertovane na 20V. Vstup inertuji na -30 az -20 a prictu k 20V a vyjde mi nejaka hodnota v rozmezi 0-10, kterou potom zpracuji delicem 1:1 vhodnym delicem na rozsah 0-5V.
Muses tedy napsat, proc me zapojeni nemuze fungovat, kdyz vychazi z doporucenych zapojeni pro jednotlive OZ pro dane operace?
Eagle samozrejme mam, ale zatim jsem nevedel, jaky OZ pouziji a ten menic taky neni v knihovnach a zrovna se mi to nechtelo kreslit. V malovani to bylo hned.

První horní operák je zapojen jako komparátor (kladná zpětná vazba). Tím nic nezměříš.
Nenapsal jsi jaké mají OZ napájení, ale pokud nemají zdroj ±30V, tak na nich přeci nemůžeš -30V dostat :wink:. Kde by je měly vzít :question:. Že mívají OZ napájení do ±18V (+36V) teď neřešim.

Že si přeješ pro 20V na výstupu nulu jsem zatím jaksi nepochytil :slight_smile:.
Když se to podaří, tak dodám zapojení (nejsem doma a je tu jen webka…)
Edit: tak webka nedopadla, ale malování to jistí.
oz.gif

Asi jsem teda asi ty OZ nepochopil.
Prvni horni OZ (ma uvnitr cislo 2), jsem chtel zapojit jako invertujici zesilovac dle cs.wikipedia.org/wiki/Zapojen%C3%AD_s_opera%C4%8Dn%C3%ADm_zesilova%C4%8Dem
Pokud zvolim R1 a R2 stejne predpokladal jsem, ze na vystupu budu mit stejne napeti jako na vstupu akorat se zapornym znamenkem. Privadim tam 20-30V.
Druhy OZ (oznaceny cislem 1) jsem chtel zapojit jako neinvertujici zesilovac s konstantou 4, cimz mi vyrobi z 5V 20V. Treti OZ (ma uvnitr cislo 3) mel slouzit jako scitaci OZ, dle zapojeni scita napeti na jednotlivych vstupech a vysledek je invertovany. Tzn -30 + 20 = -10 *1 = 10V a -20 + 20 = 0 *-1 =0V.
Ale urcite ti verim s tvym zapojenim, jenom tedy jeste porad jestli je ten LM224 na tohle vhodny, nebo mam zvolit jiny.

Edit. Dival jsem se na DS a uz zacinam cuchat, ze ten OZ se bude muset jeste necim napajet a to pravdepodobne je tech -30V o kterych mluvis…

Edit 2: V tom tvem pripade budu OZ napajet pouze 5V? Nepotrebuji jeste nekde vyrobit -5V?

Zmíněný OZ by ti na to měl vpohodě stačit. Jen je třeba mu trochu zatížit výstup(např. 10k), jinak by nejspíš nedokázal jít s výstupem až k nule. To ostatně snadno vyzkoušíš. U mého zapojení budeš potřebovat napájení alespoň 7V jinak by OZ nedokázal dodat na výstup celých 5V a možná by mu ani správně nefungoval vstupní diferenciální stupeň. Moc jsem to nezkoumal, teď se musím jít vyspat…
Večer ti ještě něco napíšu k úvahám o tvém zapojení a trochu popíšu to svoje.

Tak to se moc omlouvam… Samozrejme spanek je dulezitejsi. Nechci aby si zase investoval drahoceny cas jenom do me. Stejne dekuji mockrat za pomoc…
Jinak uz to zacinam trochu chapat, dozvedel jsem se, ze kdyz potrebuji treba zesilit 1V na 2V tak to lze ale OZ musi byt treba napajeny 5V. V tom pripade kdyz jsem tam mel -30 tak potrebuji napajeni tak -35V a to uz bezny OZ nezvladne, nehlede na to, ze je z tech 30V jednoduse nevyrobim…

Sorry, ale nejako som to nebol schopny cele citat, tak mi mozno nieco uslo ale ta prva schema ma uplne dostala.

Pochopil som to tak, ze potrebujes merat napajacie napatie zariadenia.

Ak potrebujes pomocou AD vstupu merat 20-30V, jednoducho na vstup zapoj odporovy delic 120k//10k, co je pomer 1:13. Z 30V ziskas 2,308V. V MCU pouzi na AD prevod internnu referenciu 2,5V. Ma daleko lepsie vlastnosti, ako zobrat za referenciu Ucc. Ziadne OZ a ziadne ine capiny. Tie operaky su tam uplne zbytocne a len zavadzaju dalsiu moznu chybu.
Co sa kalibracie tyka, tak ci tak musis MCU nakalibrovat. To znamena, ze na vstup privedies zname napatie, napr.28V a cislo, ktore dostanes z AD prevodnika vhodne vynasobis a vydelis, aby si dostal hodnotu napr. 28000 to je hodnota napatia v mV.
Taketo zapojenie si mozes dovolit, lebo merias napatie relativne dost tvrdeho zdroja napatia, ktoreho vnutorny odpor je pod hodontou pozadovanej presnosti.

Jasne. A pro hodnotu 20V mam 1.538. Rozdil je tedy 0.77V coz znamena ze vyuziju tak 30% rozsahu. V prvnim diskuznim clanku jsem se na to ptal, jestli neni lepsi pouzit delic, vzhledem k tomu ze to bylo delano prez OZ jsem usoudil, ze tohle reseni je lepsi nez jenom delic

A este k napajaniu OZ. Na vystupe OZ nemozes mat napatie mimo rozsahu napajacieho. Ak LM358 napajas 0V-24V, potom na vystupe budes mat 0V-22V. TL082/72 potrebuje na vystupe urcity odstup aj od zaporneho napajania, tak ako vacsina OZ. OZ typu rail-to-rail mozu mat na vystupe napatie blizke hraniciam napajacieho, ale nikdy nie mimo tohto rozsahu. To sa samozrejme tyka aj vstupov. Na to je treba sa pozriet do katalogovych listov prislusneho OZ.
Su specialne IO kde vstupne napatie moze byt aj vyssie ako je Ucc, ale tie nepatira do mnoziny klasickych OZ. Je to riesene roznymi internymi R delicmi.

Jeden z dalsich castych omylov je, ze ked chcem mat z OZ zosilovac so zosilnenim 2, tak dam do spatnej vazby dva rovnake R a je to. Okrem toho ze v invertujucom zapojeni je potrebne k vstupnemu odporu pripocitat vnutorny odpor napatoveho zdroja, ktoreho napatie sa upravuje ani v jednom zapojeni nie su ziadne dva bezne odpory dostatocne rovnake a preto anizosilnenie nebude nikdy rovne presne dvom. Ak napr. vyuzivas 10b AD potom by musela byt odchylka odporov mensia ako 1/2048 aby zavedena chyba bola mensia ako +/-0,5LSB. A to nehovorim o 12b alebo 16b prevodnikoch. Pouzivat bezne v praxi takto sparovane odpory je zhovadilost. K tomu sa pouzivaju vhodne navrhnute viacotackove trimre. No a v suvislosti s meranim cez AD MCU je pouzitie trimrov zhovadilost este vacsia. Na to je predsa vhodna velmi lacna kalibracia priamo v MCU.

Oki diky za odpoved…

Ano presne tak. Furt lepsie ako pouzit 8b prevodnik a sadu OZ. :slight_smile:
No treba si odpovedat na otazku, s akou presnostou potrebujes merat napajacie napatie.

Ak pouzijes delic 1:13, potom 30V zodpoveda 2,308V co je 945 dielikov z plneho rozsahu. 20V je 630 dielikov, to znamena, ze 20V merias s rozlisenim 31,7mV t.j. s rozlisenim 0,15% (maximum [respektive minimum] je 0.098%) z rozsahu 20V. To je na meranie napajacieho napatia malo?

Stoji zvysenie rozlisenia 3x (0V-30V-> 0V-2.5V transformovane na 20V-30V-> 0V-2.5V) za tie komplikacie s OZ? Mozno ano, to z mojho uhla pohladu neviem posudit.

Ale vzdy existuje daleko jednoduchsie riesenie pouzit AD prevodnik v diferencialnom mode. Napriklad AT90PWM3B/ATtiny25-45-85/ATtiny24-44 maju takych kanalov niekolko. Na jeden vstup si prived napatie zodpovedajuce 20V a na druhy napatie zo vstupu. Vysledkom je hodnota zodpovedajuca diferencii Ucc - 20V.

Alebo si vyber MCU s dvoma referenciami, 1.1V a 2.5V. Ak bude napatie pod 25V zodpovedat 1.1V na vstupe AD, potom merias 20V s rozlisenim 24.4mV co je 0.122%. A pre napatia od 25 do 30V merias s rozlisenim horsim lebo si musis prepnut referenciu na 2.5V.

No ved to su tie otazky. Lepsie k comu? To si uz nenapisal. Tak sa aj tazko odpoveda, ze ci ano alebo nie. A Piityy Ta na zaklade takejto otazky ochotne zahrna vyucbou o OZ.

Ale nic si z toho nerob, takto “kvalitne” sa pytam kde kade aj sam a podla toho dostavam odpovede z ktorych sa nie a nie vysomarit :slight_smile:

Včera jsem se na začátku zasek na popisu toho zapojení a na otázku jesli to je nutné jsem už zapoměl. Na to ti odpověděl martin předpokládám více než dostatečně :slight_smile:. Pro využití plného rozsahu AD je diferenciální mód perfektní věc, ale pro orientační měření napětí baterie je to opravdu asi zbytečné (pokud nechceš nějak podrobně pracovat s vybíjecí chrakteristikou bateri).

Podívám se tedy na tu zmíněnou “výuku OZ” :slight_smile:.

Přesně tak. Přesněji na výstupu můžeš dostat napájení - (mínus) napětí nutné pro otevření koncového stupně. Tam bývá darlington, takže obvykle je to 1.5V pro horní část a něco pod 1V pro dolní. Pokud však výstup zatížíš odporem proti např. dolní napájecí větvi (je jedno jesli je to zrovna zem nebo -Vcc), tak se můžeš dostat až na úroveň oné větve, protože to pak není díky zátěži omezeno dolní částí koncového stupně, ale udržuje to horní. A ta není v tomto případě saturačním napětím tranzistorů omezována.

Mimo jiné existují i typy s interní nábojovou pumpou a ty pak mohou i kousek mimo napájení.

Když chceš bejt punťa, tak je nutné uvažovat i reálné (vlastní)zesílení OZ, vstupní impedance a pro ss měření také napěťové a proudové nesymetrie vstupů :slight_smile:.

Nyní k původnímu zapojení.
OZ(2): Invertující zesilovač má sice signál přiveden do záporné větve OZ, ale v té větvi musí zůstat zpětná vazba. Ty jsi tam pouze přehodil vstupy + a - operáku a to není správně. Podívej se na invertující zapojení na wiki ještě jednou :wink:. Ty jsi vpodstatě vyrobil jakousi verzi komparátoru s hysterezí (Schmittův klopný obvod) se středem symetrie na nule.

OZ(1): zesílení neinvertjícího zapojení je 1+R2/R1, u tebe tedy 5, nikoli 4.

Ta invertovaná sčítačka na konci je sice nakreslená nějak chaoticky, ale asi dobře.

Teď k mému zapojení.
Na vstupu máš dynamický rozsah 10V a na výstupu chceš 5V. Navíc by to mělo být kladné zesílení (více na vstupu → více na výstupu). Zesílení potřebujeme 5/10 = 0.5 a to není při neinvertujícím zapojení možné (nekoupíš záporný odpor). Proto je tedy na vstupu dělič, který to zmenší do naznačených úrovní.
Nyní je dynamický rozsah vstupu 1/3 z 5V a dynamiclý rozsah výstupu 5V. Potřebné zesílení tedy nyní máme 3. To už není problém. R2 je tedy 2*R1. Krása.
Je tu ovšem malý zádrhel. Dynamický rozsah už máme dle požadavků, absolutní je ale mimo mísu.
Předpokládejme, že volný konec R1 (označen jako R) připojíme na zem.
Napětí vstupu se pohybuje mezi 3.33~5V. Po zesílení 3x to bude 10~15V.
Potřebujem nějak odečíst 10V.
Představ si, že vstup + připojíš na zem (je v tento okamžik konstatntní) a volný konec R1 se stane vstupem signálu. Nyní jsme vytvořili invertující zapojení se zesílením 2. Když na jeho vstupu zvednem napětí, na výstupu se patřičně sníží. A to je to, co potřebujem. Potřebujem ubrat 10V. Zesílení je 2 → na vstup přidáme +5V. To je vše.

Samozrejme. :slight_smile:
Dragonovi sa rozlisenie 0.15% zda byt nedostatocne a to je uz hodnota pri ktorej sa Piityym uvadzane vlastnosti prejavuju.

:arrow_right: administrator: příspěvek byl upraven
Citace byla pozměněna.