Menü Bezárás

Digitális oszcilloszkóp

Készítette: Holcsik Tamás

Történet, bevezető
A történet valamikor 2006 tavaszán kezdődött, nagyon szerettem volna egy oszcilloszkópot. Mivel nem sok zsebpénzem volt venni egy gyárit, ezért gondoltam hogy építek egyet. A digitális mellett döntöttem végül mert úgy gondoltam hogy ezt egyszerűbb megvalósítani… hát nem teljesen, persze akkorára összegyűlt egy analóg szkóphoz is minden alkatrész, képcsövestül.
Alkatrészköltségben persze nagyon nem érte meg a dolog, belement vagy 40eFt-om végül, de elkészült naggyából…persze kész sose lesz
Ezen a wikioldalon ismertetem a szkópot, de nem adok komplett építési leírást róla. Nem azért mert nem akarom megosztani másokkal, hanem azért hogy nehogy valaki nekiessen megépíteni 😀

Valójában 2 verzió készült belőle. Az első verzió nyákja az 2006 szeptemberére készült el. Folyamatosan élesztgettem, megépült hozzá az analóg fokozat első verziója, amiről nemsokára kiderült hogy el van rontva alapjaiban. Azután elkészült a második analógfokozat is, gyakorlatilag ugyanazok voltak a hibái. Aztán készítettem még egy nagyon leegyszerűsített verziót ami nagyjából tökéletesen működött. Na és ekkor 2007 januárjára kiderült hogy a digitális rész úgy ahogy van el van rontva mert sikerült nem szinkron számlálóval címeznem a memóriát így össze vissza firkált mindent a RAM-ban. Ekkor azt mondtam hogy egy rakat digitális ICből nem lehet szkópot építeni mert nem lesz tökéletes, így bele akartam kezdeni a CPLD-be hogy lekódoljam a logikát normálisan. Persze ebből nem lett semmi így maradtam a hagyományos alkatrészeknél. Ekkor jött a 2.0-s verzió. Ekkor találtam ki hogy lesz egy külön alaplap és ebbe jönnek bele a modulok, mert ha valamit elrontok kisebb nyákokat kell csak kicserélnem. Nagyjából 2007 őszére elkészült az egész új rendszer, analóg fokozat nélkül a kísérleti analógrésszel egész jól ment. Ekkor csináltam egy komolyabb analógfokozatot de az se váltotta be a reményeket, gerjedékeny volt, meg zajos. Ekkor jött kb a 6. verziójú analógfokozat ami szerintem már egész jó lett, de ez is zajos egy kicsit 2008 tavasza. Kb itt tart a szkóp jelenleg, kapott előlapot. Nincs bekariblálva a bemeneti osztó, szörnyen viszi át a négyszögjelet és zajos. Az egész szkóppal a legnagyobb bajom hogy tiszta zajos és még nem találtam meg a forrását
Felépítés
A szkóp felépítése modul rendszerű:

  • Alaplap ATMEGA128-al
  • órajel modul
  • memória és AD konverter órajel szétválasztó/osztó modul
  • memória modul
  • analóg modul
  • tápegység
  • LCD kijelző
  • USB soros átalakító modul

szkop_pic1

Alaplap
Az alaplapon foglal helyet az ATmega128-as, ez vezérli a szkóp moduljait, Mivel a szkóp modulrendszerű, az alaplap tele van tüskesoros csatlakozó foglalattal, és ezekbe lehet dugni a modulokat. Csatlakozó van még a 128×240-es LCD-nek meg az USB modulnak. A tervekben benne szerepel az AT45DB161-es dataflash memória is, amire lehetne menteni mérési adatokat, de ezt még nem forrasztottam a mai napig mert nem jutottam el oda hogy az a ficsőr már kellene….

szkop_pic2

órajel modul
Az órajelmodulon található egy 40MHz-es kvarc oszcillátor. Ennek a jelét osztja egy 74HC4040-es számláló 20, 10, 5MHz-re és a 10MHzet egy 74LS90-es IC 1MHz-re, ezek az órajelek közül egy 74HC151-es multiplexerrel lehet válogatni amit közvetlen az AVR vezérel. Található még néhány logikai kapu is ezen a panelen ezekkel lehet ki/bekapcsolni a többi fokozat számára az órajelet. De erről még egy kicsit később…

órajel osztó modul
Ezen a modulon található 3darab 74HC160-as szinkron számláló, amiből van megvalósítva az órjel további osztása. Igazából azért van erre az egész panelre szükség mert az AD konverter az adatlapja szerint nem hajlandó 6.5MHz alatt működni normálisan (Azt tapasztaltam mondjuk hogy kb 1MHz-en még jól működik). Ezért mivel az AD konverter órajelét nem vihetem tetszőlegesen alacsony sebességre ezért a memória irási sebességét csökkentem le, vagyis minden n-edik mérést rakom csak bele a memóriába. Ez a módszer mondjuk tökéletesen bevált és működik. Az órajelek közül 74HC151-esekkel lehet válogatni. Ezeket meg egy soros-párhuzamos shift regiszter vezérel mert elfogytak az AVR lábai… 😀 Található még itt 74HC126-os tri-state kapu amivel lehet az órajelet ki/be kapcsolgatni. Illetve amikor az Enable vonal 0 akkor átvált a memória órajele az AVR által szolgáltatottra, mert iylenkor az AVR olvassa ki az adatot a memóriából. Van itt a rajzon egy tök jó kis tranzisztor ami a valóságban nem vált be. Spórolni akartam, nem akartam 1 darab inverter kapu miatt egy egész IC-t beforrasztani, persze meg is lett az eredménye, mert túl lassan működött és nem tudott elegendő idő alatt átkapcsolni olvasásról mérésre a memória modul. Persze próbáltam a bázisellenállással párhuzamosan kötni egy pár nF-os kondit hogy gyorsítsak a tranzisztoron, ez be is vált , de inkább raktam be egy invertert utólag a levegőben odaforrasztva

szkop_pic3

szkop_pic4

memória modul
Az alapja a 61C256-os SRAM. Ezek megtalálhatók bármely 386-os vagy 486-os alplapon. Én onnan bányésztam őket. ISSI gyártányúak, ide beválltak, képesek akár 66MHz-en működni, de szerintem a szkóp kapcsolásának a működési határa valahol 40-50MH-en van a 74HC IC család miatt. Található itt még néhány szinkron számláló is amivel állítom elő a memóriának a címét. Igazából minden egyes órajel lépteti a számlálót és hajtja a memória /WR lábát. Meg persze az AD konverter is elvégzi a mérést. Elég sok dolog történik elvileg egy időben, sokat gondolkoztam ezen de végül is különösebb gondok nélkül működik. A számlálók 9, 10 és 11. bitje közül lehet válogatni egy jumperrel, és be lehet állítani hogy hány mintát mentsen el a memóriába. mert a kiválasztott jel meg van invertálva és az órajelmodulra van visszakötve mint /DONE jel, Így ha eléri a megfelelő mintaszámot leállítja a mérést. Van még 4 darab buszmeghajtó/leválasztó IC a panelon. Ezek azért szükségesek mert az AD konverternek nincs tristate módja, muszáj így leválaztani, illetve kell még 2 darab szolgál arra hogy kiválassza az AVR hogy melyik csatornát olvassa ki.
analóg modul
Ennek a modulnak sok fajtája készült el a legegyszerűbbtől, az AVR által állítható erősítésűig. Igazából talán ezen a modulon bukott el az egész project. Végig küzdöttem a gerjedéssel és a zajjal. A gerjedéseket a végén ki sikerült küszöbölni, már nem követtem el annyi hajmeresztő dolgot a nyákon, és a 300MHz-es MAX477 típusú műveleti erősítők helyére is egy kb. 40MHzes került. Sokkal kevesebb dolog került a jel útjába mint az első verziókban. Felrakom a legelső verziót és a legutolsót, meg a köztes a kísérleti verziót. A legelső verzióban az erősítést analóg multiplexer IC-kel lehetett volna váltogatni, amelyek a műveleti erősítő visszacsatolásában lévő ellenállásokat váltogatták. De végül az egész fokozat gerjedt, valahol… Egyedül az AD9059-es AD konverter maradt meg a verizók folyamán. Ez egy nagyon egyszerűen kezelhető és jól működő IC, ezzel volt a legkevesebb bajom, csak kár hogy minimum 6.5MHzes órajelet kell neki adni, mert ettől bonyolódott az elektronikája a szkópnak. Az első verziós analógrészeken volt még egy LM319-es komparátor ami a trigger jelet szolgáltatta volna, ami egy RS-tárolót birizgált volna, és így indult volna a mérés. Később kiderült hogy semmi értelme sincs az ilyen fajta megoldásnak mert nem tudta eldönteni hogy fel vagy lefutó a jel. Ide komolyabb dolog kellett volna, de maradtam inkább a szoftveres megoldásnál ahol inkább a memóriából kikerestem egy megfelelő jelszintet és onnantól rajzolom ki a kijelzőre, ha nincs megfelelő akkor mér mégegyszer
A kudarcok miatt csináltam egy nagyon leegyszerűsített verziót. Csak 1 csatornás volt, itt még volt LM319-es komparátor, de sokkal kisebb sebességű műveleti erősítő volt benne, asszem TL071, tehát pár száz kHz-ig ment csak, de ez végre nem volt zajos, és nem is gerjedt. Erősítést nem lehetett állítani
Ezután készült néhány verzió, volt amiben SMD relékkel tudtm volna állítani az erősítést, de el se jutottam ezzel se odáig hogy ez szükséges lett volna… És, volt még egy amikor az AD konverter egy külön panelon volt és az egész analógrész egy nyákból készült kamrákra osztott dobozban volt. Ez se volt egy sikeres konstrukció.
Végül az egyszerűsített analógrész mintájára készült el a végleges analóg fokozat. Dupla műveleti erősítővel (MAX4489), bár ez az tokon belüli áthallás miatt nem túl szerencsés. Az erősítés egy-egy helitrimmerrel lehet állítani fixre, itt már lemondtam arról hogy szabályozható legyen. Ez a rész nem gerjed végre nem is zajos magában. szóval gyakorlatilag sikeresnek is mondható. Egyedül csak be kéne állítani a megfelelő erősítést és kompenzálni kéne, mert jelenleg eléggé csapnivalóan viszi át a négyszögjelet.
A bemeneti osztó: Ez a rész eléggé kezdetleges. A bemenetről megy az AC/DC kapcsolóra ahol egy soros 100nF-os kondit lehet átkötni, majd a feszüktségosztóra megy a jel. Itt egy sima forgókapcsoló van berakva és tud 1, 5,10,100 -asosztást tud. Összesen kb 1MOhm a szkóp bemeneti impedanciája a szabványt próbáltam követni, a 20pF-ot azt szerintem nem tudtam hozni :-S de nem mértem le. A feszültségosztó jelenleg ugyanúgy áll mint az analóg fokozat, ezt is kellene kompenzálni (mert csapnivaló a négyszögjel átvitel), csak nehezen lehet hozzáférni, időigényes (meg venni kellene egy rakat alkatrészt, kellene mérőkábel, normális szkóp, és jelgenerátor)
tápegység
A hálózati trafó 2x12V-os az egyik 12V-os tekercs a digitális részt látja el tápfeszültséggel egyeniránytás és 7805-ös stabilizátor IC után, a másik tekercse állítja elő egyenirányítás után a +/- tápfeszültséget ahol szintén 7805-ös és 7905-ös stabkockák állítják elő a tápfeszültséget az analóg fokozatoknak

szkop_pic5

USB modul
Az USB modul egy FT232RL típusú IC-re épül. USB-RS232 átalakítást végez, és így az AVR-rel sorosan lehet kommunikálni. A tápfeszültséget az USB buszról kapja, Amikor be vam dugva akkor az AVR kap feszültséget ettől a modultól, és átvált USB módba. Ilyenkor a PC-ről lehet kezelni a programjával.
Működés
A szkóp működése eléggé egyszerű. Az AVR vezérli az egészet… . Szóval az AVR-nek annyi dolga akad az egészből hogy minden mérés elején ad egy reset jelet meg utána meg az ENABLE vonalra ad H szintet. Gyakorlatilag a mérés szempontjából semmi szerepe nincs az AVR-nek mert túl lassú lenne ilyen helyre (Az egész kütyü képes 40MHz-en működni, ide kevés lenne az AVR) Szóval az AVR elindítja a mérési ciklust és a kapcsolás meg magábn elvégzi a mérést. Önmaga lépteti a memória címeket, önmaga ír a memóriába és a mérés elvégzése után leállítja a mérést és jelez az AVR-nek. Az AVR elvesz az ENABLE lábról a H szintet reseteli a memória címző számlálókat majd órajelet ad a memória modulnak és kiolvassa egymás után a 2 csatorna mérési adatait és kirajzolja a kijelzőre. Majd újra reseteli a memória címző számlálókat és elindítja a mérést az ENABLE=H jellel.
Kezelőprogram
A kezelőprogram delphiben íródott (akkor csak a pascalt ismertem még ) Jóformán jelenleg csak az AD konverter órajelét tudom rajta állítani. Jelenleg csak még az egyik csatornát tudja kiolvasni.

Folyt köv

 

 

Related Posts