AD a DA prevodnik
Moderátor: Moderátoři
AD a DA prevodnik
Ahojte,
chcel by som sa naucit pracovat s AD a DA prevodnikmi.
Neviem ako mam zacat, vobec sa tomu nerozumiem.
Moja predstava je taka, ze by som na vstup AD prevodnika pripojil striedavy signal v tvare sinus, trojuholnik, obdlznik o frekvencii 1kHz, alebo 10kHz a amplitudou 5V.
Vystup AD prevodnika by som priviedol cez seriovy alebo usb port do pocitaca a tam by som tie data zapisal bud do textoveho alebo do excelovskeho suboru a nasledne ich zobrazil graficky.
Dalej by som na vystup AD prevodnika pripojil DA prevodnik a na jeho vystup by som pripojil osciloskop, na ktorom by som si mohol zobrazit vystupny signal a porovnat ho so vstupnym signalom.
Vie mi niekto poradit ako na to?
Dakujem.
chcel by som sa naucit pracovat s AD a DA prevodnikmi.
Neviem ako mam zacat, vobec sa tomu nerozumiem.
Moja predstava je taka, ze by som na vstup AD prevodnika pripojil striedavy signal v tvare sinus, trojuholnik, obdlznik o frekvencii 1kHz, alebo 10kHz a amplitudou 5V.
Vystup AD prevodnika by som priviedol cez seriovy alebo usb port do pocitaca a tam by som tie data zapisal bud do textoveho alebo do excelovskeho suboru a nasledne ich zobrazil graficky.
Dalej by som na vystup AD prevodnika pripojil DA prevodnik a na jeho vystup by som pripojil osciloskop, na ktorom by som si mohol zobrazit vystupny signal a porovnat ho so vstupnym signalom.
Vie mi niekto poradit ako na to?
Dakujem.
AD a DA prevodnik
mozes mi odporucit nejaku literaturu?
hladal som na webe, aj som nieco nasiel, ale to je vsetko take vseobecne
su tam popisane rozne typy a ich principy, ale ziadne nazorne priklady, na ktorych by som sa naucil ako si mam tie prevodniky navrhnut a co mam kde merat
ak by som chcel pouzit druhu variantu (za A/D dat D/A prevodnik a zobrazovat na osciloskope) ako mam pre zadane podmienky vybrat spravny prevodnik (taky, ktory sa da zohnat, je v rozumnom puzdre (DIL, SO8, SO16), aby som na zaciatok nemusel pouzit mikroprocesor?
potrebujem usmernit, aby som to pochopil, najlepsie sa to da naucit na nazornych prikladoch
hladal som na webe, aj som nieco nasiel, ale to je vsetko take vseobecne
su tam popisane rozne typy a ich principy, ale ziadne nazorne priklady, na ktorych by som sa naucil ako si mam tie prevodniky navrhnut a co mam kde merat
ak by som chcel pouzit druhu variantu (za A/D dat D/A prevodnik a zobrazovat na osciloskope) ako mam pre zadane podmienky vybrat spravny prevodnik (taky, ktory sa da zohnat, je v rozumnom puzdre (DIL, SO8, SO16), aby som na zaciatok nemusel pouzit mikroprocesor?
potrebujem usmernit, aby som to pochopil, najlepsie sa to da naucit na nazornych prikladoch
Bez nějakého počítače se IMHO asi neobejdeš - leda že bys postavil nějaký obvod ze součástek nižší integrace. Integrované AD DA převodníky předpokládají, že budou komunikovat s nějakým systémem (ale už jsem se tím dlouho nezabýval, možná to teď není pravda).
Kdysi jsem zkoušel připojit osmibitové AD převodníky (myslím, že Analog Devices) k počítači UCB PIC, připojuji malůvku. Mělo to fungovat tak (a taky to tak nějak fungovalo), že se dva signály porovnávaly a podle toho který byl větší se spínala relé - ta jsem tu nekreslil. Ty AD potřebovaly IMHO hodiny, signál k povolení čtení dat a data vysílaly jako sériový signál. Možná že by se něco málo dalo vyčíst z knih Burkharda Kainky.
DA převodníky se asi dělaly podobně nebo se vycházelo z pulsně šířkové modulace.
Kdysi jsem zkoušel připojit osmibitové AD převodníky (myslím, že Analog Devices) k počítači UCB PIC, připojuji malůvku. Mělo to fungovat tak (a taky to tak nějak fungovalo), že se dva signály porovnávaly a podle toho který byl větší se spínala relé - ta jsem tu nekreslil. Ty AD potřebovaly IMHO hodiny, signál k povolení čtení dat a data vysílaly jako sériový signál. Možná že by se něco málo dalo vyčíst z knih Burkharda Kainky.
DA převodníky se asi dělaly podobně nebo se vycházelo z pulsně šířkové modulace.
- Přílohy
-
- pic.JPG
- (42.28 KiB) Staženo 125 x
Triviální AD převodník pro 1 bit je samozřejmě komparátor. Říká, že vstupní napětí je buď větší nebo menší než referenční hodnota. Dá se tento jednoduchý princip natáhnout na víc bitů?
Asi před 20 lety jsem odněkud obkreslil zapojení na obrázku, které má zesílení +2 pro zápornou vstupní hodnotu a -2 pro kladnou, převodní charakteristika je ten červený štít. Výstup prvního OZ funguje jako bitový výstup. Teď už jen stačí seřadit do kaskády N takových bloků a máme N-bitový AD převodník, a to bez známky jakékoliv inteligence! Hezké je, že výstup se mění v Grayovom kódu, takže kdykoli se hodnota přečte, bude platná na +- jeden bit. Tenkrát jsem to odzkoušel na 4-bitové šířce a šlapalo to. Jako školní příklad se to snad bude líbit.
Neví někdo náhodou, kde to bylo publikováno?
Asi před 20 lety jsem odněkud obkreslil zapojení na obrázku, které má zesílení +2 pro zápornou vstupní hodnotu a -2 pro kladnou, převodní charakteristika je ten červený štít. Výstup prvního OZ funguje jako bitový výstup. Teď už jen stačí seřadit do kaskády N takových bloků a máme N-bitový AD převodník, a to bez známky jakékoliv inteligence! Hezké je, že výstup se mění v Grayovom kódu, takže kdykoli se hodnota přečte, bude platná na +- jeden bit. Tenkrát jsem to odzkoušel na 4-bitové šířce a šlapalo to. Jako školní příklad se to snad bude líbit.
Neví někdo náhodou, kde to bylo publikováno?
- Přílohy
-
- AD-stupen.jpg
- (9.9 KiB) Staženo 63 x
-
- AD1st-chaka.jpg
- (14.78 KiB) Staženo 55 x
Naposledy upravil(a) Bernard dne 28 led 2010, 10:52, celkem upraveno 1 x.
Nějaká teorie a základní zapojení okolo AD a DA s obvody nižší integrace je v skriptu Styk mikropočítače s prostředím, ČSVTS, 1984. Mikropočítač se předpokládal, ale masochista by to možná realizoval i s krokováním tlačítky nebo elektromechanickým sekvencerem
Jinak zelené přílohy AR z té doby.
Bernard: taky jsem to někde viděl, mám pocit že v ST okolo roku 85, která právě v té době toho byla plná a úplně přestala být "sdělovací" a stala se pomateně osmibitovou...
Ale ten smysl zapojovat výstup z A/D zas hned rovnou na D/A mi nějak uniká.
Jinak zelené přílohy AR z té doby.
Bernard: taky jsem to někde viděl, mám pocit že v ST okolo roku 85, která právě v té době toho byla plná a úplně přestala být "sdělovací" a stala se pomateně osmibitovou...
Ale ten smysl zapojovat výstup z A/D zas hned rovnou na D/A mi nějak uniká.
Re: AD a DA prevodnik
Ahoj. Jaké jsou tvé předchozí zkušenosti s elektronikou?bonatius píše:Ahojte,
chcel by som sa naucit pracovat s AD a DA prevodnikmi.
„Jak se má správně navrhovat plošný spoj?“ – „S citem. Je to nejen umělecké dílo…“
Já bych na to šel přesně obráceně. Nevyhýbej se mikroprocesorům, a na začátku nemusíš řešit otázku jaký AD a DA převodník. Každý slušný mikroprocesor v ceně cca 50Kč má v sobě AD převodník, a realizovat převod zpět lze snad nejjednodušší cestou např. pomocí R-2R převodníku. Zároveň je splněna tvá podmínka o sběru dat a odesílání do PC pro jejich další zpracování např. po RS232.
Osobně doporučuji např. Atmega8 a vývojové prostředí Bascom, které na tento typ úlohy plně dostačuje a je zdarma.
Ostatní součástky pořídíš do 100Kč, a máš o zábavu na dlouhé zemní večery postaráno.
Programátor spácháš za 50Kč. A programů na vlastní přenos programu do mikroprocesoru se na webu zdarma valí velké množství. Vzhledem k možnosti ISP programování je to velmi snadné.
Osobně doporučuji např. Atmega8 a vývojové prostředí Bascom, které na tento typ úlohy plně dostačuje a je zdarma.
Ostatní součástky pořídíš do 100Kč, a máš o zábavu na dlouhé zemní večery postaráno.
Programátor spácháš za 50Kč. A programů na vlastní přenos programu do mikroprocesoru se na webu zdarma valí velké množství. Vzhledem k možnosti ISP programování je to velmi snadné.
pre popopepe:
mohol by si mi dat, prosim, link na nejaky overeny programator pre tu Atmegu (nechcem stavat nejaku neoverenu, nefunkcnu schemu) a ak vies tak aj nejaku linky kde sa o tom dozviem viac (viem, ze na webe je toho kvantum, ale radsej chcem nieco kvalitne, nechcem zabijat cas hladanim a citanim balastu)?
dakujem
mohol by si mi dat, prosim, link na nejaky overeny programator pre tu Atmegu (nechcem stavat nejaku neoverenu, nefunkcnu schemu) a ak vies tak aj nejaku linky kde sa o tom dozviem viac (viem, ze na webe je toho kvantum, ale radsej chcem nieco kvalitne, nechcem zabijat cas hladanim a citanim balastu)?
dakujem
Například Ponyprog, a z něj pouze tu základní část (RS232) a ISP část pro procesory Atmel. Programátor si ubastlíš na nějaké destičce za 20 minut. A program pro ovládání stáhneš asi na 100 místech z webu.
Pokud se rozhodneš jít tou jednoduchou cestou a ovládáš asi 40 základních anglických slovíček, tak doporučuji help k programu Bascom.
Např. začni příkazem getadc a uvidíš, co ti to všechno napíše. Jinak samozřejmě datasheet k Atmega 8 a v něm část o AD převodnících.
Existuje spousta typů AD převodníků, ale princip je pořád stejný. Prostě musíš jednou za nějaký čas odebrat vzorek z příchozího signálu (a četnost odebrání vzorku je popsána Shanonovým teorémem, kdy pro zachování věrnosti je nutné odebrat nejméně dva vzorky za jednu periodu vstupního signálu). Tudíž pokud chceš na vstup přivádět např. 10kHz, tak musíš vzorkovat minimálně 20 000x za vteřinu. Čím vyšší bude vzorkovací kmitočet, tím přesněji bude ten vstupní signál popsán, hlavně u neharmonických a neperiodických signálech. Ten vzorek je vlastně pouze amplituda, kterou jsi v daném čase na vstupu toho převodníku naměřil. Té amplitudě potom přiřadíš nějakou hodnotu (rozlišení převodníku např. 10 bitů (tudíž dvě na desátou) je 1024 různých hladin). Takže s 10bitovým převodníkem a maximálním vstupním napětí 5V budeš mít rozlišení 5V/1024, a dokážeš rozlišit změnu 0,0048V vstupního signálu. Takže když bude vstupní napětí nulové, tak výsledek převodu bude deset nul. Když bude na vstupu 5V, tak výsledný kód bude 1024. Pro poloviční napětí 2,5V bude kód 512. Atd atd.
No a pro převod DA z dat do analogu máš k dispozici nějaké číslo (např. těch 1024) a převodník na svém výstupu vytvoří patřičné napětí, v tomto případě 5V. Pokud to číslo bude 512, tak na jeho výstupu bude 2,5V, pokud to číslo bude 0, tak na výstupu bude 0.
Nezapomeň, že se to všechno odehrává dost rychle. A pokud to má být opravdu analog, a ne jen hrst měnících se úrovní napětí, je potřeba výstupní "analogově digitální signál" prohnat dolní propustí. Proč - zkus zapátrat taky sám
Pokud se rozhodneš jít tou jednoduchou cestou a ovládáš asi 40 základních anglických slovíček, tak doporučuji help k programu Bascom.
Např. začni příkazem getadc a uvidíš, co ti to všechno napíše. Jinak samozřejmě datasheet k Atmega 8 a v něm část o AD převodnících.
Existuje spousta typů AD převodníků, ale princip je pořád stejný. Prostě musíš jednou za nějaký čas odebrat vzorek z příchozího signálu (a četnost odebrání vzorku je popsána Shanonovým teorémem, kdy pro zachování věrnosti je nutné odebrat nejméně dva vzorky za jednu periodu vstupního signálu). Tudíž pokud chceš na vstup přivádět např. 10kHz, tak musíš vzorkovat minimálně 20 000x za vteřinu. Čím vyšší bude vzorkovací kmitočet, tím přesněji bude ten vstupní signál popsán, hlavně u neharmonických a neperiodických signálech. Ten vzorek je vlastně pouze amplituda, kterou jsi v daném čase na vstupu toho převodníku naměřil. Té amplitudě potom přiřadíš nějakou hodnotu (rozlišení převodníku např. 10 bitů (tudíž dvě na desátou) je 1024 různých hladin). Takže s 10bitovým převodníkem a maximálním vstupním napětí 5V budeš mít rozlišení 5V/1024, a dokážeš rozlišit změnu 0,0048V vstupního signálu. Takže když bude vstupní napětí nulové, tak výsledek převodu bude deset nul. Když bude na vstupu 5V, tak výsledný kód bude 1024. Pro poloviční napětí 2,5V bude kód 512. Atd atd.
No a pro převod DA z dat do analogu máš k dispozici nějaké číslo (např. těch 1024) a převodník na svém výstupu vytvoří patřičné napětí, v tomto případě 5V. Pokud to číslo bude 512, tak na jeho výstupu bude 2,5V, pokud to číslo bude 0, tak na výstupu bude 0.
Nezapomeň, že se to všechno odehrává dost rychle. A pokud to má být opravdu analog, a ne jen hrst měnících se úrovní napětí, je potřeba výstupní "analogově digitální signál" prohnat dolní propustí. Proč - zkus zapátrat taky sám
pre popopepe:
nasiel som toto:
http://www.avrfreaks.net/wiki/index.php ... programmer
a toto:
http://www.lancos.com/siprogsch.html#baseboard
skusim si postavit programator podla prveho odkazu, lebo v tom druhom odkaze je toho velmi vela a neviem co by som si mal na zaciatok vybrat.
ak by si mal nieco lepsie a vyskusane tak daj prosim vediet.
dakujem.
nasiel som toto:
http://www.avrfreaks.net/wiki/index.php ... programmer
a toto:
http://www.lancos.com/siprogsch.html#baseboard
skusim si postavit programator podla prveho odkazu, lebo v tom druhom odkaze je toho velmi vela a neviem co by som si mal na zaciatok vybrat.
ak by si mal nieco lepsie a vyskusane tak daj prosim vediet.
dakujem.