Multi-I/O a printerportra

Bizonyára már mások is szerettek volna a számítógépükhöz olyan interfészt, ahol párhuzamos ki- és bemeneti vonalak vannak. A megoldás egy univerzális port kártya lenne, de ha idegenkedünk a méregdrága gépünk belsejébe házilag épített panelt helyezni vagy mobil, könnyen telepíthető eszközt szeretnénk, akkor szóba jöhet a nyomtató port is, mint I/O felület. A mostani áramkör erre a portra csatlakozik és 8x8 bit kimeneti, 4x8 bit bemeneti és 8x1 bit bementi lehetőséget kínál.

Elméleti alapok

Először is áttekintést kell kapnunk arról, milyen ki- és bemeneti vonalak állnak a rendelkezésünkre a nyomtató porton. Egy adott, alaplapra integrált vezérlőn végeztem méréseket, hogy a 25 pólusú CANNON csatlakozó melyik érintkezőjén, hogyan lehet az adatokat írni vagy olvasni. Az esetleges kompatibilitási problémák elkerülése végett, a hagyományos, SPP, Standard Printer Port üzemmódot választottam, azt vizsgáltam. Tehát működni fog az I/O kártya a régebbi gépek egyirányú portjain is.

Turbo Pascal programnyelven adott periféria olvasása (bájt méretben) az "adat:= port[cím]", míg írása a "port[cím]:= adat" utasításokkal lehetséges. A mérési eredményeket az 1. táblázat foglalja össze. A nyomtató portok lehetséges címei: $278, $378 vagy $3BC (hexadecimális értékek). A +1 és +2 relatív cím pedig a báziscímtől való eltérést jelenti, tehát ha a báziscím pl. $378, akkor a két másik regiszter a $379 és a $37A címeken érhető el. A csatlakozó 18..25 pontjai földelve vannak.



1. táblázat

Rövid elemzés után megállapíthatjuk, hogy rendelkezésünkre áll:

- 8 bit kimenet (D0..D7) a 0 relatív címen, azonos, helyes polaritással,
- 5 bit bemenet (D3..D7) a +1 relatív címen, különböző polaritással,
- 4 bit kimenet (D0..D3) a +2 relatív címen, különböző polaritással.

Áttekinthetőbb képet alkot erről a 2. táblázat:



2. táblázat

A +2 cím 4 bitje bementként is működik, de kimenetként több hasznukat vehetjük. Osszuk fel őket így: a D0..D2 biteket használjuk címvezetéknek, a D3 pedig legyen engedélyező jel. A nullás port maradjon 8 bites kimenet és a +1 címet értelmezzük 4+1 bites bemenetként. Az vonalak ilyen felosztása alapján konstruált MULTI I/O kártya működésének megértéséhez tekintsünk az 1. ábra szerinti elvi blokkvázlatra.



1. ábra

Az +2 cím D0..D2 bitjeivel és a Demultiplexer segítségével ki tudjuk választani a nyolc Tároló valamelyikét, a D3 jellel pedig elvégezhetjük a beírást (EN). Tehát a nullás cím 8 kimeneti bitjét írjuk be egy-egy tárolóba és máris megvan a 8x8 bit párhuzamos kimenetünk.

A bemenetek. Az említett címvezetékek közül D1..D2-vel és egy Dekóderrel engedélyezhetjük a 4db 4x 2/1 Multiplexer valamelyikét (OE). Ezek háromállapotú kimenetekkel rendelkeznek, így azokat buszba köthetjük. A D0 (A0) címbit segítségével a megcímzett multiplexer 4x2 bemenete közül az egyik vagy a másik négy bit választható ki (SEL). Az így elérhető, 8 db 4 bites csoport valamelyikét pedig beolvashatjuk a printer port +1 relatív címének D3..D6 bitjein. Tehát a kártya ezen 8 bites bemenetei 2x4 bit lépésben kérdezhetők le.

Van a +1 relatív címen még egy, az ötödik olvasható bit is, nem kellene veszni hagyni. Ha a D0..D2 címvezetékekre egy 8/1 Multiplexert kapcsolunk, akkor a +1 relatív cím D7 bitjén még 8x1 vonal olvasható.

Sőt, van még egy "félig legális" kimenetünk is, a nullás cím 8 közvetlen bitje. Ennek tartalma azonban bármely Tároló írásakor megváltozhat, tehát látszólag hasznavehetetlen. Valamire azért mégis jó lesz, de azt majd később.

A megvalósított áramkör

A konkrét kapcsolás a 2. ábrán található. Könnyen követhető rajta az előző gondolatmenet. Az IC1 címezhető tárolón (itt, mint demultiplexer) keresztül tudunk beíró jelet adni a 8 bites regisztereknek, amelyek 74HC573 típusúak. Nem használjuk ki azt, hogy ezek háromállapotú kimenetekkel rendelkeznek, ezért az 1-es vezérlő bemenetüket fixen testre kötjük. Viszont hozzáférhetővé tesszük a nyolc tárolóból hétnek a beíró jelét ("word", mint két bájtos szó). Erre akkor lehet szükség, ha olyan perifériát akarunk a MULTI I/O-val vezérelni, ahol nyolcnál több bitet kell egy lépésben írni. Példaként gondoljunk egy 12 bites D/A konverterrel vezérelt, programozható tápegységre. Ha a konverter nem egyszerre kapja meg a kívánt adat alsó és felső bájtját, a kimeneti jele rövid időre nem kívánt értéket vehet fel. Nem lesz túl nagy a hiba, de monoton csökkenő vagy monoton növekvő feszültség függvényt nem tudunk megvalósítani. A 3. ábra mutat erre egy lehetséges megoldást. A plusz tárolóval biztosítható, hogy a periféria felé a felső bájt csak akkor veszi fel az értékét, amikor az alsó bájtot írjuk. Hasonló elven, újabb tárolókkal, akár több 8 bites kimenet is szinkronizálható, ha szükséges, akár páratlan számban is.



2. ábra



3. ábra

IC10 segítségével olvashatunk be adatot a 8x1 bites bemenetről. Ha ide TTL típust építünk, akkor elhagyhatjuk az R2, R3 elemeket, mert az IC adat- és cím bemenetein nem lesz szükség felhúzó ellenállásokra. Az IC1 és IC11 címvezetékei sem fognak lebegni, hiszen azok szintjét biztosítják az IC10 multiplexer 9..11 kivezetései. Szükség lesz viszont az R2 ellenállás csoport csillaggal jelölt tagjára, különben a CD4099 adatbemenete szabadon marad. Ehhez a nyomtatott áramkör külön biztosít egy négy raszteres alkatrész pozíciót. Visszatérve az IC10 multiplexerhez, észrevehetjük, hogy a negált kimenet jelét olvashatjuk be a PC-vel. Ennek a magyarázata csupán annyi, hogy a printer port +1 relatív címének 7. bitje ellenkező értelmű, tehát a kétszeres negáció miatt helyes lesz az eredő polaritás. Az I/O panel programozásakor lesz ez egy parányi könnyítés.

A nyomtatott áramkör, amelynek rajzolata a 4. ábrán található, kétoldalasan fóliázott panelből készült. Az alkatrészek beültetése az 5. ábrán tekinthető meg. A vonalak vastagsága és elhelyezkedése úgy lett megválasztva, hogy amatőr körülmények között, akár kézzel is megrajzolható. Furatgalvanizált technológia híján, néhol az alkatrészlábak biztosítják az átvezetést a két réteg között. Az ilyen helyeken természetesen mindkét oldalon be kell forrasztani a kivezetéseket. A forrasztási oldalon egy huzaldarabka köti össze IC12..IC15 9-es lábait.



4. ábra



5. ábra

A kártya ki- és bemeneti pontjai tízes tüskesor érintkezőket kaptak. Megfelelő dugasz és szalagkábel segítségével úgy csatlakozhatunk a panelre, mint a manapság elterjedt számítógépek belsejében a hagyományos soros vonalak. Az érintkezőkön a bitek kiosztását a 6. ábra mutatja. A "b" oszlop az IC11 és A0..A1 (D1..D2) címei által kiválasztott 74LS257 kétszer 4 bemeneti bitjeinek pozícióját ábrázolja az D0 címvezeték függvényében, a "c" oszlop pedig az A0..A2 címek segítségével elérhető 8x1 bit helyét. A helyes értelmezéshez a panelt hosszabbik oldalával vízszintesen tartsuk, úgy, hogy IC2..IC9 legyen fölül.



6. ábra

Az integrált áramköröket tanácsos foglalatba építeni, gondolván egy esetleges tönkremenetelre (periféria fejlesztés-élesztés!). Precíziós, "cső" IC foglalatokat használjunk, mert azokat be tudjuk forrasztani felülről is, az alkatrész oldali fóliához, ahol szükséges.

A programozás

Néhány gondolat a MULTI I/O kártya és a nyomtató port programozásáról. A gépünkben található printer port(-ok) címének és létezésének feltérképezésére alkalmas az alábbi Turbo Pascal program:

begin
writeln('LPT1: ',memw[$0040:$08]);
writeln('LPT2: ',memw[$0040:$0A]);
writeln('LPT3: ',memw[$0040:$0C]);
writeln('LPT4: ',memw[$0040:$0E]);
end.
A port címének ismeretében a báziscím regisztere különösebb nehézség nélkül írható, a kiküldött 8 bites adat előjelhelyesen meg kell hogy jelenjen a CANNON25 csatlakozó 2..9 kivezetésein. A +1 cím olvasása sem boszorkányság, itt azonban nincs szükségünk minden bitre, csak D3..D7-ig. A 74LS257 multiplexerek kimenete a beolvasott bájt D3..D6 bitjei, míg a 74HC151 jelét a D7 bit hordozza. Ezeket egyszerű AND logikai kapcsolattal szűrhetjük ki, majd SHL vagy SHR operátorokkal megvalósított biteltolás után használhatóbb számértéket kapunk.

A +2 cím írása, pontosabban rajta keresztül az I/O kártya programozása, már kicsit bonyolultabb. Arra ügyeljünk, hogy valóban csak a D0..D3 biteket írjuk felül. Ehhez azt kell tennünk, hogy legalább egyszer, még a program elején olvassuk be a +2 relatív címen elérhető bájtot és tároljuk el (egy változóban) a D4..D7 biteket. Amikor írásra kerül a sor, a kiküldendő adat 4 felső bitje így az eredeti értéket vegye fel! Az eltárolt D4..D7 biteket és a MULTI I/O programozásához szükséges D0..D3 biteket az OR kapcsolattal fűzhetjük össze, az így kapott eredményt már kiírhatjuk a +2 címre. Nem célszerű azt a bizonyos négy felső bitet a programunkban fixen meghatározni sem, mert az értéke különbözhet egy másik gépen, ezért kell inkább helyileg beolvasni. Ha ezeket mégis figyelmen kívül hagyjuk és önkényesen felülírjuk D4..D7-et, akkor jókora fejtörést okozhatunk vele magunknak. Az általam megvizsgált két alaplapi vezérlőn, ha a +2 cím 5. bitjét 0-ra állítottam, akkor a báziscím bemenetként működött, míg ugyancsak két db régebbi, külön I/O kártyás gépen nem volt hatása D5-nek. Egy leírás [1] szerint a D5..D7 bitek használaton kívüliek, de azóta változtak a portok. Vegyük figyelembe azt is, hogy a címzésre használt D0..D2 bitek közül az első kettő negált. Ezért a 0..7-ig kiküldött A0..A2 címértékek akkor lesznek helyesek, ha végrehajtunk rajtuk egy "cím:= cím XOR 3" műveletet. Végül pedig, mivel a +2 cím D3 bitje is fordított értelmű, arról ne feledkezzünk meg a 74HC573-ak adatbeírásánál.

Figyeljünk oda arra is, hogy a MULTI I/O kártya címbitjeinek megváltoztatásakor a regiszterek beírását engedélyező jel alacsony szinten legyen. Ne írjuk ki a nyomtató port +2 címére egyszerre az új D0..D2 (A0..A2) cím értéket és a D3 "L" szintjét (D3 negált, 0-ra lesz a beíró jel magas szintű!). Ellenkező esetben a következő meglepetésben lehet részünk: A kiválasztott 8 bites tárolóba bekerül az adat, de egy vagy több másik tároló tartalma megváltozhat. Ennek az oka az, hogy beírójel + címváltáskor egy pillanatnyi bizonytalan állapot léphet fel és a CD4099 bit tárolói közül több is felveheti az adatbemenet egyesét. Természetesen így a hozzá tartozó 74HC573-ak beíró jelet kapnak, sőt, "átlátszóak" lesznek. Nem az IC1 hibázik, hanem az a jelenség oka, hogy a címezhető tároló beírást engedélyező bemenete (4. kivezetés) 0-ra van kötve. Szabad vezérlő bit híján nem akartam elvenni a három cím bit egyikét az "EN" jel számára, ezzel felére szűkítve a megcímezhető tárolók (IC2..IC9) számát. Különben sem lenne rá szükség, mert az IC itt valójában nem demultiplexer, hanem csak dekóder szerepet tölt be. Annak pedig egy időpillanatban csak egy kimenete különbözhet a többitől. Az pedig teljesül, ha címváltáskor alacsony szinten tartjuk IC1-nek a 3-as kivezetését, szoftverünk elején pedig egy ciklussal alaphelyzetbe hozzuk (töröljük) az összes tárolót. Már csak biztosnak kell lennünk abban, hogy tényleg korrektül működik a dolog. A 7. ábra mutatja a CD4099 bemeneti fokozatát a "D" és az "EN" jel tekintetében [2]. Az egyszerű kombinációs hálózat igazságtáblázatát felvéve megállapíthatjuk, hogy a hálózat két kimenetének értelmezése: nulla vagy egyes beírása, mindkettő negált logikával. Az igazságtáblázatból pedig kiderül, hogy csak akkor lehet egyest írni (az IC bármelyik tároló rekeszébe), ha a "D" bemenet "H" szintű.



7. ábra

Adós vagyok még egy 8 bites kimenettel, a korábban említett 0 relatív cím közvetlen bitjeivel. Felhasználhatjuk egyszerű analóg-digitális átalakító készítésére. A nyomtató port báziscímén elérhető kimenetre kapcsolunk valamilyen 8 bites digitális analóg konvertert (a továbbiakban DAC), melynek analóg jelét komparátorok invertáló bemeneteire vezetjük. A nem invertáló bemenetekre pedig a mérendő analóg feszültségek kerüljenek. A komparátorok kimenetét csatlakoztassuk az I/O kártya valamelyik bemenetére, például a 8x1 bitesre. Ha felhasználunk egy olcsó DAC-ot és két négyes komparátort, már meg is van a 8 csatornás, 8 bites A/D átalakítónk, hiszen szoftverből a többi megoldható. A módszer részletezése [3]-ban megtalálható. Méréskor, ha a DAC-ot programozzuk, nem fogjuk felülírni a 8 db 8 bites kimenet egyik tárolóját sem, mert a nyolc bemeneti bit anélkül is felveszi az értékét. Amikor pedig az I/O kártya valamelyik 74HC573 regiszterébe küldünk ki adatot, legfeljebb a DAC kimeneti jele fog megváltozni és átbillenhetnek a komparátorok. Azokkal pedig akkor nem foglalkozunk.

Az eddig leírtak birtokában, némi programozói gyakorlattal már tudnunk kell adatokat írni-olvasni a kártyán keresztül. Viszont a relatíve gyors gépeknél találkozhatunk egy általános problémával. Valahol a 486 DX4 100 MHz sebességének a környékén van a határ, ami fölött az adatforgalmat lassítani kell a printer port, mint periféria felé (talán gyorsabb a processzor, mint a periféria?). Ez már a [3]-ban is gond volt. Ott a szövegben ugyan nem utaltam rá, de a példaprogramban felfedezhetők a "delay(1)" utasítások. A lassítási ciklus az akkori gépemnél elegendő volt, de több száz MHz-es processzor sebességnél szükség lehet a késleltetés számértékének növelésére. Ennek oka az, hogy a Turbo Pascal időzítése a mai, gyors gépeken valami ok miatt pontatlanul működik. Például: Pentium I. 188 MHz-es gépnél a delay(10000) utasítás másfél másodperc alatt lefut. A paraméter mérőszáma milliszekundum, tehát tíz másodpercig kellene tartania. A lényeg tehát az, hogy port írási művelet után iktassunk be valamilyen várakozó ciklust. Másik megoldás lehet, hogy vannak a gyors gépek lassítására alkalmas programok, például a SLOW.EXE. Azzal is próbálkozhatunk.

A következő három Turbo Pascal forráskód a MULTI I/O kártya alapszintű programozásának bemutatására készült, még a várakozó ciklusok sincsenek benne. Az elsővel adatot írhatunk valamelyik 8 bites kimenetre és csak a gondolatmenet szemléltetése miatt tartalmazza a kód az (egyébként teljesen fölösleges) "or 0" kifejezést. A második programmal olvashatunk az egyik 8 (2x4) bites bemenetről, a harmadikkal pedig a 8x1 bites bemenet egy vonalát kérdezhetjük le.

1. példaprogram:

var cim, adat0, adat2, hi4bit: byte;
                          lpt: integer;

begin
lpt:= $378;                 {printer port címe}
cim:= 0;                    {0..7, melyik 74HC573-ba akarunk írni}
cim:= cim xor 3;            {valós cím legyen a MULTI I/O-ban}
adat0:= 255;                {a 74HC573-ba írandó adat}
hi4bit:= port[lpt+2];       {a +2 relatív cím tartalma}
hi4bit:= hi4bit and 240;    {csak a felső 4 bit kell}

adat2:= hi4bit or 8 or cim; {címváltozáskor ne legyen magas a beíró jel!}
port[lpt+2]:= adat2;        {új cím kiírása}
port[lpt+0]:= adat0;        {kiküldendő adat a 74HC573-ba}
adat2:= hi4bit or 0 or cim; {felső 4 bit + beiró=1 + cím}
port[lpt+2]:= adat2;        {most íródik a 74HC573}
adat2:= hi4bit or 8 or cim; {felső 4 bit + beiró=0 + cím}
port[lpt+2]:= adat2;        {74HC573-ba adat rögzítve}
end.
2. példaprogram:

var cim, adat1, adat1lo, adat2, hi5bit: byte;
                                   lpt: integer;

begin
lpt:= $378;                   {printer port címe}
cim:= 0;                      {0..3, melyik 74LS257-et olvassuk}
cim:= cim shl 2;              {szorzás 2-vel a 74LS257-ek szervezése miatt}
cim:= cim xor 3;              {valós cím legyen a MULTI I/O-ban}
hi5bit:= port[lpt+2];         {+2 relatív cím tartalma}
hi5bit:= hi5bit and 240 or 8; {legyen fix a felső 5 bit}

adat2:= hi5bit or cim;        {cím byte számítása}
port[lpt+2]:= adat2;          {cím kiírása}
adat1lo:= port[lpt+1];        {adat alsó 4 bit beolvasása}
adat1lo:= adat1lo and 120;    {csak D3..D6 kell}
adat1lo:= adat1lo shr 3;      {eltolás alsó 4 bitnek}

cim:= cim xor 3;              {kiindulási cím}
inc(cim);                     {növelni egyel}
cim:= cim xor 3;              {valós cím legyen a MULTI I/O-ban}

adat2:= hi5bit or cim;        {cím byte számítása}
port[lpt+2]:= adat2;          {cím kiírása}
adat1:= port[lpt+1];          {adat beolvasása}
adat1:= adat1 and 120;        {csak D3..D6 kell}
adat1:= adat1 shl 1;          {eltolás felső 4 bitnek}

adat1:= adat1 or adat1lo;     {felső 4 bit + alsó 4 bit}
writeln(adat1);               {a beolvasott adat}
end.
3. példaprogram:

var cim, adat1, adat2, hi5bit: byte;
                          lpt: integer;

begin
lpt:= $378;                   {printer port címe}
cim:= 0;                      {0..7, 74HC151 melyik bemenetet olvassuk}
cim:= cim xor 3;              {valós cím legyen a MULTI I/O-ban}
hi5bit:= port[lpt+2];         {+2 relatív cím tartalma}
hi5bit:= hi5bit and 240 or 8; {legyen fix a felső 5 bit}

adat2:= hi5bit or cim;        {cím byte számítása}
port[lpt+2]:= adat2;          {cím kiírása}
adat1:= port[lpt+1];          {adat beolvasása}
adat1:= adat1 and 128;        {csak D7 kell}
adat1:= adat1 shr 7;          {eltolás D0 tartományba}
writeln(adat1);               {a beolvasott adat}
end.
Alkalmazási példa

Ha valakinek felkeltette volna az érdeklődését a fentebb említett átalakító, egy egyszerű megoldást szemléltet a 8. ábra. A kapcsolási vázlat kissé le van egyszerűsítve, mert az szinte azonos a [3]-ban közölttel.



8. ábra

A nyomtatott áramkört, aminek terve a 9. ábrán, beültetése a 10.-en látható, kétoldalasan fóliázott lemezből készítsük el. A felső vezetőréteget teljes egészében hagyjuk meg földelésnek, de az alkatrészek kivezetéseinél, ahol szükséges, süllyesszük ki a furatoknál a testfóliát. Különösebb beállítást nem igényel az áramkör, minden adatbitet magas szintre állítva, a potenciométerrel 2,55 V-ot kalibráljunk a DAC kimenetén (komparátorok invertáló bemenete). A mérés felbontása így 10 mV/bit. A 78L05 a független helyi referencia feszültség miatt szükséges, egyébként megfelelne a külső tápegység 5 V-ja is.



9. ábra



10. ábra

Lehetőségünk van arra, hogy a mérési tartományt kiterjesszük nem egészen 5 V-ig. Ehhez a DAC kimenetének leosztását nem kell kialakítani vagyis ne ültessük be az R17 és P alkatrészeket, így a maximális feszültsége 4,98V lesz (255/256 x 5 V). Meg kell növelni az LM339-ek tápfeszültségét is, mert a komparátorok bemenetei csak a pozitív tápfeszültség-1,5 V tartományig működnek üzemszerűen. A bemenő jel alsó értékénél nincs ilyen korlát, az 0 V is lehet. Tehát legalább 2 V-al meg kell emelni a tápfeszültséget. Kapják meg az LM339-ek a stabilizátor előtti feszültséget, de a 74HC573 továbbra is csak az 5 V-ot. A következő teendőink vannak: Az "AK" átkötés pozícióba kerüljön a 78L05, a stabilizátor eredeti helyére pedig egy soros 100 Ω. Ezenkívül még építsünk be egy 100 µF/16 V elkót, ami C’ azonosítóval szerepel, de csak a beültetési rajzon. A C2 kondenzátorra most nincs szükség. A mérési tartomány így 0..4,98 V-ra nő.

Ha módunkban áll, az LM339 helyett használjunk LM339A típust, az kedvezőbb offset feszültséggel rendelkezik. Az R-2R hálózatot lehetőleg minél jobb tűrésű elemekből építsük fel. Erről információt tartalmaz a [3] és a [4]. Precízebb méréseket végezhetünk, ha a "fakerekes", diszkrét ellenállásokból felépített DAC-ot lecseréljük, pl. a közismert ZN426-ra.

Ez az A/D konverter egyszerűségénél fogva más számítógépekhez is csatlakoztatható, ha az rendelkezik megfelelő ki- és bemenetekkel. Sikeresen használhatjuk valamelyik mikrovezérlő bővítéseként is, pl. a 8032-vel, BASIC nyelven gyerekjáték a programozása. A rugalmas illesztést a panelterv is támogatja, mert az OC kimenetek felhúzó ellenállásokkal láthatók el, ha az szükséges. Ezenkívül, amennyiben lemondunk a helyi referenciáról (nem ültetjük be a 78L05 stabilizátort), akkor az 5 V-ot a mikrogép is szolgáltathatja. Emiatt kerültek a panelre az adatvezetékek mellé tápfeszültség csatlakozási pontok.

A MULTI I/O kártyát kiszolgáló tápegység egy 7805-el megoldható. Ajánlatos azonban még egy 7905-el szimmetrikus kivitelűt építeni és a puffer feszültségeket is hozzáférhetővé tenni. A későbbi fejlesztéseknél ez jól jöhet (11. ábra).



11. ábra

Az áramkörök:





Irodalomjegyzék:

[1]: HelpPC 2.10 (DOS szoftver, 1991)
[2]: Fairchild Semiconductor CD4099BC Addressable Latch (PDF adatlap, 1999)
[3]: Analóg-digitális átalakító PC-re (Hobby Elektronika, 1998 szeptember)
[4]: Analóg-digitális átalakító (Hobby Elektronika, 2001 március)
[5]: LM139, 239, 339 (A) quad comparators (különböző gyártók PDF adatlapjai)

program.rar (A példaprogramok.)
folia1a.png (A Multi-I/O nyomtatott áramkörének felső fólia oldala, mérete: 129,5 mm x 86,5 mm.)
folia1b.png (A Multi-I/O nyomtatott áramkörének alsó fólia oldala, mérete: 129,5 mm x 86,5 mm.)
folia2.png (Az A-D átalakító nyomtatott áramkörének fólia oldala, mérete: 68,5 mm x 38 mm.)