Úprava vstupního analogového signálu pro ADC PIC16F877

Chci zkonstruovat voltmetr pomocí PIC16F877. Před vstupem ADC mam dělič 5 a přístrojový zesilovač INA126 od TI se zesílením 5. Ovšem zesilovač je napájen +/-5V a tudíž i výstupní signál zesilovače je v tomto rozmezí. Můj původní záměr byl nastavit ADC referenční napětí +/- 5V a normálně zpracovávat signál ze zesilovače stím že pro nulu bude převodník ukazovat 5V a správný výsledek už zajistím ve zbytku programu. Takovouto referenci ale nemůžu nastavit, maximalně +5V a 0V. Jak tedy zajistit aby na vstup ADC nepřicházel záporný signál? Nejjednodušší je dát tam samozřejmně diodu, ale toto řešení mi přijde velmi nepřesné vlivem úbytku napětí na diodě i v případě kompenzace chyby v programu. Dál mě napadlo zajistit napěťový offset npř. 2,5V a dělič nastav na dělení 10 za podmínky, že na vstup děliče může přijit napěťí pouze ±5V. Pořádně ale nevím jak takový offset udělat aby byl přesný.
Předem děkuju za jakoukoli radu či názor.

Pokud bys nechtěl zápornou půlvlnu, staší použít lineární detektor, jesli chceš celý signál tak upravit zesílení a vložit offset. Nejde však o rail-to-rail OZ, takže výstupní napětí určitě nebude 0-5V.
“OUTPUT Voltage, Positive (V+)–0.9 V, Negative (V–)+0.95 V”
Kdyžtak sem dej současné zapojení a upřesni jaký rozsah chceš na vstupu a jaký na výstupu.
Jesli má procesor možnost jiné (nižší) reference než 5V, byla by vhodnější právě z důvodu omezeného výstupu OZ.

Na vstupu budu mít max. 5V, pokuď bych dokázal zpracovávat i záporné napětí bylo by dobře.No a výstup v takovém rozsahu ať odpovída ADC. Tu nelinearitu zesilovače na výstupu bych mohl odstranit vyšším napájecím napětím OZ. Potom bych ale potřeboval zpracovat signál do povoleného rozsahu to je těch 0-5V pro ADC. A tady právě nevím co je to lineární detektor a ani jak zabránit průchoduu vyššího napětí. A taky bych potřeboval další napájení pro ten OZ, asi DC/DC měnič (měnič chci taky použít pro napajení PIC ale nejsem jsi jistý jestli je to nejvhodnější reference pro ADC).
Takže asi přichází v úvahu pouze napěťový offset. Tady si nejsem jistý jak ho zajistit aby byl přesný.
A v tom schématu bych měl asi mezi jednotlivé dílčí části (dělič, OZ, PIC) dát napěťový sledovač, chápu to správně?
j.tif (24.8 KB)

Napájení bych za moc vhodnou referenci nepovažoval. Každopádně než ti budu moct nakreslit schéma, je nutné aby sis ty věci určil. Jde o to jesli použiješ jako referenci napájení, tak musíš buď zvednout napájení OZ nebo nevyužívat celý rozsah převedníku. Při ignorování MSB se ti efektivní napětí reference sníží na polovinu a o 1 bit se sníží efektivní rozlišení. Druhá možnost (podle mne lepší) je použít externí referenci s hodnotou pod 4V (4.096V by snad ještě šlo).
Jen si nejsem jist, jesli to půjde(přesněji dám dohromady) bez dalšího (ovšem již jednoduchého) OZ.

Lineární detektor je třeba toto (tenhle je invertující):
lin_det.gif

Zkusil jsem si zapojení na OBR. s lineárním detektorem (sledovačem) a funguje dobře. Ale nějak se mi v obvodu oběvuje 0,01V navíc. Už na sledovači, myslím si že to zpusobené nepřesným OZ. Takže s přesnějšíma součástkama bych měl být schopný upravit signál tak (Odfiltrovat záporné napětí, Děličem a přístrojovým zesilovačem zeslabit signál) aby ho mohl ADC na vstupu zptacovat z tou nižší referencí(to budu muset ještě vyzkoušet až seženu potřebné součástky).
Kdybych chtěl ale zpracovávat i záporný signál tak jak nato? jak mám udělat přesný napěťový offset?
j.tif (15.6 KB)

To je poměrně složité (ten tvůj OZ návrh také neusnadňuje) a popsat ti to zcela obecně by mi zabralo dost času, který dnes ani zítra nemůžu postrádat. Možná o víkendu. Kdyby ses ovšem rozhodl pro konkrétní řešení z navrhovaných výše, velice bys mi usnadnil práci :wink:
Tyhle věci vyžadují mírně pokročilé znalosti a alespoň malou část “automatického” myšlení co se práce s OZ týká.

Ten tvůj výtvor určitě nebude to pravé :smiley: Když už, tak dej detektor za ten větší šváb, použij to invertující zapojení a pak ho dodatečně otoč na kladnou polaritu. Nemůžeš si jen tak pro dobrou náladu vyhodit polovinu součástek. Nějak to sice chodit bude, ale nechtěj vidět, co to bude dělat po průchodu nulou (díky dynamickým vlastnostem OZ a saturaci) :wink:.

Dobře, takže dejme tomu že na vstupu by mělo být napětí v rozsahu ±5V a na výstupu zmenšené napětí s offsetem. Reference převodníku by byla nižší než je napájení (napájení by bylo pro všechny součástky stejné ±5V a GND). Takže by jsem mohl v konečném výsledku měřit napětí v rozsahu ±5V. Jediné napevno danné součástky jsou INA126 a PIC. (I když ta INA126 by nemusela být, je to jen proto že je to jediný přístrojový zesilovač co mam doma).
A dík že mi pomáháš. :slight_smile:

Rád pomůžu, třeba mi to někdo oplatí až budu potřebovat :slight_smile: Ostatně studijní oddělení na škole mi to svou trpělivostí bohatě vrací už teď :smiley:
Tak jsem chvíli čmáral po papíře a vytlačil následující.
Na vstup tvého zesilovače dej dělič 1:10, odpor mezi vstupy rozděl na polovinu a uprostřed uzemni (pro odvedení vstupního klidového proudu OZ). Kombinace může být např. 2x2M7 sériové a 2x300k mezi vstupy.
Na výstupu tohoto zesilovače bude 1/2 vstupního signálu.

Za něj dej obyčejnej invertující OZ. Odpory vyber tak, aby platilo: 2Vref/Vin=R2/R1. Pokud je Vin ±5V, tak dosaď za Vin 10V (=rozsah). R2 je zpětnovazební odpor.
U běžného invertujícího zapojení OZ je svorka “+” uzemněna. Ve tvém případě bude využita pro vytvoření offsetu.
Na vstup “+” přiveď napětí o velikosti: V+ = Vref/(2+2
R2/R1).

Ny výstupu by mělo být nepětí 0-Vref. Jelikož je druhý OZ invertující, tak si prohoď vstupy tvého přístrojového OZ aby na výstupu odpovídalo větší hodnotě kladné napětí na vstupu.

A kdybych si prošel DS celej, tak bych tě rovnou poslal na str.9 a nemusel nic řešit :slight_smile: Offset nastavíš přivedení napětí do pinu 5 (ve tvém případě to bude Vref/2). Pak už stačí jen nastavit celkový zesílení tak, aby se vstupní rozsah vešel do Vref. Např. při Vref=4.096V a vstupu ±5V by mělo bejt celkový zesílení 4.096/10 = 0.4096. To nejjednodušejc zařídíš větším děličem na vstupu a pak doladit odporem Rg.
Jen je potřeba ohlídat, že tím pinem 5 poteče nějakej proud, takže by to chtělo trochu tvrdší zdroj než jen dělič.