Vezérlés az LPT-porton Alfától Omegáig. V.

Az előző részben egy kis ízelítőt kaptunk a nyomtatóport programozásáról és láthattuk, hogy a legegyszerűbb hardverrel is lehet igen összetett feladatokat megoldani. Megismerkedtünk továbbá szinte valamennyi programozási alapelemmel, amire szükségünk lehet a későbbiekben.

A hardveroldallal azonban keveset foglalkoztunk, tehát ideje behozni a lemaradást:

megismerkedünk egy kiegészítővel, hogy megvédhetjük portunkat a meghibásodástól, illetve megnövelhetjük a vezetékeink hosszát nagyobb sebességű alkalmazásokhoz. Ehhez azonban segédenergiára lesz szükségünk, vagyis egy tápegységre. Azonban most se esünk kétségbe: „ellopjuk” a számítógép tápegységéből! J

Eddig egy portról egyetlen LED-et kellett csak vezérelnünk. Felmerül a kérdés - joggal - mi történik, amennyiben nagyobb teljesítményű fogyasztót kell PC-nkkel működtetni. A válasz kézenfekvő: meghajtó áramkört kell kapcsolni a berendezéshez. A következő kérdés: mi lesz, ha a meghajtó fokozat meghibásodik? A válasz: tönkremehet a portunk áramköre. Ugyanez megtörténhet akkor is, ha figyelmetlenségből zárlatot okozunk, vagy a külső tápegységet nem megfelelő sorrendben kapcsoljuk ki, illetve be.

Tanulságként írom le, hogy jelen cikk írója is ez utóbbi miatt volt egyszer kénytelen IC-t cserélni egy régi AT-multi I/O kártyán. Szerencse a szerencsétlenségben, hogy a kártyán egyedi meghajtó IC volt, amit ki lehetett egyáltalán cserélni. Újabban egy körtokozású áramkörbe mindent beleintegrálnak a kis méret, fogyasztás, illetve alacsonyabb gyártási költségek miatt. Sajnos ezek a „széttaposott” MOS áramkörök sokkal érzékenyebbek a túlterhelésre, mint régi bipoláris társaik. Vagyis nem elég, hogy nehezebb őket kicserélni, (szinte lehetetlen beszerezni a pótalkatrészt, illetve körülményes a ki/beforrasztás is), hanem ráadásul könnyebben meg is hibásodnak. Ezért (bár további példáink enélkül is üzemképesek) mindenképpen javasolom elkészíteni az itt közölt leválasztó fokozatot.

Ennek további előnye, hogy a vezetékhosszakat is megnövelhetjük vele. Ugyanis gyári nyomtatóportba minden bitre külön-külön jut egy aluláteresztő RC- szűrő. Ez pedig egyrészt lecsökkenti a kábel önindukciójából, valamint külső forrásokból származó zavarokat, másrészt csökkenti az átviteli sebességet, hiszen a „gyors” jeleket, állapotváltozásokat is kiszűri a zajjal együtt. Ami egy nyomtatónál kívánatos, az nem biztos, hogy minden alkalmazáshoz kielégítő. Ha a port csatlakozójához a lehető legközelebb egy meghajtó fokozatot iktatunk be, akkor a kábelhossz, illetve a szűrők által okozott problémák jórésze orvosolható. Mivel a későbbiekben szekvenciális áramköröket is szeretnénk illeszteni berendezésünkhöz, nem mindegy, hogy a kiadott órajelből 1, 2, 3, vagy éppen egy sem érkezik meg a hardverhez. Az is gyakori probléma, hogy nem a gép hátoldalán, 10 cm-es vezeték végén lógó perifériát szeretnénk programozni. Egyszóval: kell az a meghajtó áramkör! J

A puffer működése, építése:

Első kérdés: milyen típusú IC-t válasszunk??? Ugyanis sok 8, elkülönített fokozatból álló puffer, vagyis digitális meghajtó-erősítő egység van kereskedelmi forgalomban és számtalan IC-sorozat tartalmaz ilyen elemeket.

Ha egy digitális IC katalógust az ember a kezébe vesz, az első oldalakon látja az adott alkatrészek elektromos adatait. Számítógépek esetében régebben teljesen egyeduralkodó volt az 5 voltos tápellátást igénylő TTL (Transistor Transistor Logic) áramkörök alkalmazása. Ezek úgynevezett bipoláris IC-k, vagyis „hagyományos” tranzisztorokat tartalmaznak. Fontos tudnunk, hogy egy ilyen tranzisztorral realizált kimenet átlagosan 10 másik bemenetet képes meghajtani. (FAN OUT=10) Nem ugyanaz a fogyasztás azonban a két logikai állapotban. Azután fontos tudnunk, hogy a logikai nulla szint nem 0 V-os feszültségként jelenik meg a kimeneten. Nem, az túl szép volna! Mivel a nulla feszültséget egy tranzisztor kapcsolja, ezért a rajta keletkező feszültségesés hozzáadódik a nulla értékhez. Így tipikusan 0...0,8 V mérhető egy logikai alacsony állapotban lévő kimeneten. Ugyanezen okból az 1 szint se 5 V, hanem 4.2 V feletti érték. Ha azonban az áramkör nagy sebességgel kapcsolgat, illetve több bemenet terheli egyszerre, akkor oszcilloszkóppal azt látjuk, hogy 4 V alá is leeshet a szint. Ez tehát a TTL áramkörök jellemzője. (Ez erősen leegyszerűsített séma, hogy bárki megérthesse. A valóságban természetesen ennél lényegesen összetettebb a kérdés.)

A MOS áramkörök másképpen üzemelnek. Ezekben térvezérlésű tranzisztorok vannak, melyek „maradékfeszültsége” jóval alacsonyabb, ugyanakkor azonban a terhelhetősége is sokkal kevesebb. Mi több, a frekvencia emelésével egyre többet kezdenek el fogyasztani, mivel bennünk az elszigetelt réteg belső parazita kapacitásait is fel kell töltenünk, mielőtt működésbe lépnének.

Látható tehát, hogy a kétfajta áramkörcsalád hiába dolgozik azonos tápfeszültségről, mégsem köthető össze olyan egyszerűen, mint azt gondolnánk. Egyfelől egy MOS nem tud több TTL kaput meghajtani egyszerre, mert kicsi hozzá a teljesítménye. Másfelől bizonyos, szélsőséges  esetekben a TTL nulla szintet a MOS tévesen dolgozhatja fel. Ez az elmélet.

Szerencsére a gyakorlatban nem ennyire tragikus a helyzet. Bár vannak kidolgozott TTL-MOS-TTL szintillesztési eljárások, az amatőr gyakorlatban ritkán lesz szükségünk rá. Ha kellő odafigyeléssel tervezzük áramköreinket (nem a határértékekre játszunk) illetve a sebesség nem túl magas, akkor ezek a gondok elkerülhetők.

Mint látjuk, TTL áramkört érdemesebb kimeneti puffernek használni, hiszen nagyobb a teljesítménye. A számítógépünk portja azonban újabban nem bipoláris áramkörökből áll. Felmerül a kérdés: összekapcsolható-e vajon egy TTL áramkörrel? A válasz: A port általában egy nagyobb teljesítményű MOS kapu, ami egyetlen LSTTL (a TTL egyik altípusa) terhelés meghajtására garantáltan alkalmas. Vagyis a kérdés eldőlt, TTL áramkörrel is lehetséges megoldanunk a feladatot.

Azonban a TTL áramköröknek is számtalan családja található a katalógusokban. Mi az LS-szériát választjuk, mert szinte minden régebbi berendezésből kitermelhető a szükséges alkatrész. Amennyiben ilyet nem találnánk, úgy azt a boltban kell megvenni. Ekkor jön a meglepetés, mert a régi TTL sorozatokat ma már nemigen gyártják. A kereskedő azonban minden bizonnyal tud adni helyettesítő darabot. Ezek a H, C, HC, vagy HCT elnevezésre hallgatnak.

A mi áramkörünk pl. a 245-ös lesz, melyet a 74-es sorozatból választunk. (kommersz felhasználásra szánt, digitális, TTL IC). Ha az al-sorozatot is szeretnénk beleszőni a számba, akkor: 74LS245, 74C245, 74HC245, 74HCT245 alkatrészekkel találkozhatunk. Azonban nem ritka a 74L245, 74F245, 74ALS245, stb. sem.

A katalógusokban megtalálhatjuk a választ arra is, hogy melyik jelzés mire utal.

Nagyon röviden csak annyit erről, hogy a C-betű azt jelöli, hogy az alkatrész CMOS áramkör. A C mellett álló egyéb betűk pedig a be és kimeneti fokozatainak a technikai megoldását mutatják.

A lényeg: Számunkra LS, vagy HCT típus a megfelelő. Az előbbi azért, mert biopoláris, a másik pedig azért, mert ugyan CMOS belülről, azonban kívülről kompatíbilis a bipoláris típussal.

Miután az alkatrészt kijelöltük, lássuk vajon  mit is tud ez a 20 lábú „csodabogár”?

Az áramkörünk egy különleges meghajtó IC. Számítógépek buszainak meghajtására szokták alkalmazni. Túl azon, hogy emiatt teljesítménye magasabb, mint a szabvány sorozat kapuáramköreinek, két különlegessége is van!

Az első, hogy a kimenete nem két, hanem három állapottal rendelkezik. (tri state) Elsőre talán ez furcsának tűnhet, de képzeljük el, hogy egy buszra egyidőben sok áramkör kimenetének kell kapcsolódni, de „adni” mindig csak egyikük adhat, másképp kavarodás lenne. Ezért van a harmadik állapot. Ha a 3. állapotban van az IC, akkor az megfelel annak, mintha kivettük volna az áramkörből. Vagyis a bemeneteinek se az „1”, se a „0” állapotait nem adja a kimenetére. Ez egy engedélyező jellel mondható meg neki, a 19-es kivezetésen. Ha az a láb „0” szintű, vagyis pl. lekötjük GND-re, akkor a tok aktív, tehát átviszi a bemenetére adott jeleket. Ha azonban +5 V-ra felkapcsoljuk: akkor olyan, mintha ott se lenne.

A másik különlegessége, hogy ez az IC két irányban tud üzemelni. Nincs be, illetve kimenete.

Van ellenben 8 db „A”, illetve 8 db „B”-portja, illetve egy iránykijelölő kivezetése. (DIRection). Ha az 1-es láb logikai „1”, akkor az A-bemeneti vezetékeket puffereli a B oldali kimenő vezetékekre. Ha ez a láb „0”, akkor pedig fordítva, vagyis B-oldalról tud pufferelni A-ba. Nem aranyos? J

Felmerülhet joggal most a figyelmes olvasóban a kérdés, miért használunk ilyen sokfunkciójú áramkört, amikor nekünk nem kell a harmadik állapot, illetve csak kimenő jeleket akarunk pufferelni? Valóban ott van pl. a 74244-es IC, amibe szintén 8 fokozat van beépítve, és még az is sok ide, mert szintén három állapotú. Azonban hiába drágább 20 Ft-al, mint a másik puffer, ha a lábkiosztását megfigyeljük, egyből megértjük a választást!

Míg a 244-es esetén a bemenethez tartozó kimenetek azonos oldalon vannak elhelyezve, addig a 245-nél egymással szemközt. Ez pedig nagyban megkönnyíti a szerelést, illetve a vele való munkát. Aki tervezett életében nyomtatott áramkört, az rögtön megérti, miről van szó. Ott ugyanis a vezetékek keresztezésénél vagy átkötést kell beforrasztanunk, vagy másik oldalon kell a drótokat vinni, mivel a nyomtatásban a keresztezés zárlatot okozna. Az „odaillőbb” típus alkalmazása tehát kábeldzsungelt, míg az általunk választott tipus egy szép, párhuzamos elrendezést ad. Természetesen nem szeretnénk még nyomtatott panelt készíteni, de nézzük csak meg a következő ábrákat:

A puffer IC szerelés előtt...

A forrasztásra előkészített áramkör oldalról

...s ugyanaz felülről.

Végül beforrasztva valami ilyesmi lesz. J

Szemléltető fotók az áramkör összeszereléséről (készítette: a szerző)

A fotókon látható módon, - egy soros port véglapra kihelyezett csatlakozójából - minimális munka árán, nem egészen 15 perc alatt elkészíthetjük a saját leválasztó fokozatunkat. Mivel a 8 adatbit 1 sorban jön ki egymás mellett, ezért a fenti módon „előhajtogatott” IC pontosan beforrasztható a szalagkábel és a csatlakozó tüskéi közé. Minden tiszta, átlátható. Zárlatveszély nincs és még ebben a keskenyebb csatlakozóházban is remekül elfér minden! Próbálja meg valaki ugyanezt másik, pl. a 74LS244-es típussal ... J

Részletes összeszerelési útmutató:

A hajtogatást az asztallapon másodpercek alatt el tudjuk végezni. Látható, hogy a két átlós láb (tápfeszültségek), valamint a DIR, illetve G (gate, vagyis kapuzás) lábak felfelé hajolnak tőből, a többi pedig a vékonyodó résznél vízszintesre lett meghajlítva. Ezután az 1, 10, 19 felhajlított lábakat kössük össze egymással, illetve a 20...25 portcsatlakozó-tüskékkel, vagyis kapcsoljuk GND-re. A fennmaradó egyetlen felfelé néző kivezetés (20-as láb) lesz az 5 V-os tápfeszültség becsatlakoztatási pontja. (később erre visszatérünk)

A kétoldalt fennmaradó 8-8 kivezetés lesz a be, illetve kimenet. A portcsatlakozón 2...9 tüskékre lehet az IC 11...18-as lábait forrasztani. Mivel a csatlakozó, illetve az IC lábtávolságai azonosak, ezért ez igen könnyű lesz.

A szemben kimaradó szabad 8 kivezetés lesz a felerősített 8 bit, oda kötjük a szalagkábelt.

(Célszerűen 10-eres kábelt érdemes alkalmazni, hogy a +5 V, illetve a GND is rendelkezésre álljon ...) A művelet végén a műanyag házat toljuk a helyére, illetve rögzítsük pl. szilikonkaucsukkal. Ezzel pufferünk üzemkész!

A szerelést megkönnyítendő: az IC-k lábainak számozása mindig felülnézetben értendő. A tok egyik végén egy pötty, vagy vályú alakú bemarás található. Ez jelöli az 1-es lábat. A lábak számozási sorrendje ettől a lábtól az óramutató járásával ellentétes irányban, körben értendő. Vagyis ha balra néz a jelölés, akkor a balról első láb az egyes, a következő a kettes, és így tovább a tizesig. A 11-es láb a túloldalt, szemben lesz a 10-essel. Most visszafele lépkedünk, egészen a 20-ig, ami éppen szemben lesz az egyes kivezetéssel. A fenti fotókon jól láthatók a felhajtott lábak és azok alapján egyértelműen azonosíthatunk mindent, ha véletlen kétsége merülne fel bárkinek.

Az áramkörökhöz mindig tartozik egy kapcsolási rajz, amit szintén közünk:

(a szerző szemléltető ábrája)

Jól látható, hogy az elvi rajz nem követi a lábak kiosztását, hanem a logikailag összetartozó blokkokat vonja össze. A tápfeszültségeket gyakran nem is tüntetik fel az IC-n, hanem külön, a rajzmező egyik üres területén. Az általam alkalmazott program is ilyen, így azt most külön kellett berajzolnom.  Ennek oka, hogy a nyomtatott panelek tervezését is számítógépes programokkal szokták végezni, ami viszont automatikusan kezeli a tápfeszültségeket. Felesleges tehát a megértést nehezíteni ezekkel a plusz vonalakkal.

Lopjuk a villanyt?!? Igeeen!!!!

Talán meglepőnek hangzik a fenti kijelentés, de ez esetben helytálló. A probléma ugyanis az, hogy a printer csatlakozónkon nem áll rendelkezésre olyan tüske, ahonnan a puffert működtető +5 V-os tápfeszültségeket levehetnénk. Ráadásul nekünk nem csak a puffert kell árammal táplálnunk, hanem a későbbiekben építendő perifériáinkat is.

A megoldás, hogy keressünk olyan csatlakozókat a gépünk hátlapján, aminél megvan a kívánt kivezetés. Ha cikksorozatunk első számára visszaemlékezünk, akkor rögtön jön a válasz:

Billentyűzet, GAME-port, USB-port. Az általam megépített kapcsolás univerzális. Ha kell, akkor a botkormány csatlakozójáról, ha kell, akkor a billentyűzetétől vesz energiát a működéshez. (Lehetne természetesen az USB-ről is, csak éppen nem volt ilyen csatlakozóm kéznél ...)

Azonban a munkához nélkülözhetetlen a billentyűzet, ezért nem lehet egyszerűen e helyére dugni egy csatlakozót. Közdarabot kell készíteni, hogy a gép is használható maradjon.

Egy Tuchel csatlakozópárral, illetve egy botkormány csatlakozójának felhasználásával mutat az ábra egy lehetséges megoldást.

Fontos megfigyelni a Bi1-es jelölésű alkatrészt. Ez egy gyors kioldású biztosíték. Amennyiben véletlenül zárlatot okoznánk a szerelés közben, úgy ez hivatott megvédeni az alaplapunk életét. Ha ezt kihagyjuk, magunkra vessünk! Az alaplapi vezetékezés ugyanis nagyon vékony, nem bír el nagy áramot. Nemcsak a billentyűzet processzora fagy le a túláram okozta feszültségeséstől, hanem az alaplapi fólia is feléghet. (Általában ezért be van építve az alaplapon egy SMD biztosíték, de erre azért ne játsszunk rá!)

Mint látható, ez régi klaviatúrás alaplapokhoz lett kitalálva. Azonban ha újabb fajta, PS2-es technikánk lenne, akkor sincs nagy gond. Fordítódugó minden mennyiségben beszerezhető. J

A következő ábrán egy régebbi készülékemnél alkalmazott megoldás látható. Itt csak a GAME portról vehetek energiát, ellenben a puffer fokozatot is tartalmazza a printercsatlakozó. Itt 8 „felerősített” bit jön ki, valamint egy lengő, 3.55 mm-es jack aljzaton a +5 V is rendelkezésre áll. Úgy a jack, mint a puffer meghajtó a játékportos +5 V-ot használja:

 

A szerző felvétele

Jól megfigyelhető, hogy a GAME-port csatlakozójából csak egyetlen szál vezeték jön át a printerport csatlakozójába, hiszen a GND úgyis rendelkezésre áll helyben.

Ami érdekesség talán, hogy a 8 kimenet szalagkábele egy filléres, PIN-tűs IC-foglalatben végződik. Ez azért célszerű, mert egyfelől nehezebben okoz zárlatot, mint a lógó, összevissza ugráló kábelvégek, másfelől pedig egyetlen mozdulattal csatlakoztathatók a próbapanelhez, vagy egyéb konstrukcióinkhoz.

Az LPT dugón látható még két 5 mm-es LED. Ezek egyike a másik kimenő port egyik szabad bitjére van rákötve és tesztelési célokat szolgál. A másik LED a tápfeszültség meglétét mutatja. A LED-ek miatt egy vastagabb, boltban kapható csatlakozóházban lett elhelyezve a készülék, ami kicsit ormótlanná teszi a megjelenést. Azonban van, akinek éppen ez tetszik. J

Mint látható, ízlések és pofonok különbözők, azonban a lehetséges megvalósításoknak csupán fantáziánk szabhat határt.

Micsoda erő, micsoda izom ... (avagy a POWER-OVER erőgép): CSAK HALADÓKNAK!!!

A fenti megoldások néhányszor 10, esetleg pár száz mA-es áramerősségig teljesen kielégítők lehetnek. Mi van azonban akkor, ha a periféria fogyasztása ezt jelentősen meghaladja? És mi van akkor, ha 12 V-ra is gusztusunk támadna?

Semmi gond, természetesen ez is rendelkezésre áll a számítógépünk belsejében. Apró probléma, hogy nincs kivezetve. No, de mire jó a barkácsszenvedély!

Mielőtt azonban munkához látnánk, tudnunk kell, hogy mire képes a tápegység: 5 V-os kb. 20 A-t (20000 mA!!!), a 12 V-os kivezetéseken pedig kb. 8...10 A-t tud úgy leadni, hogy ezt tartósan kivehetjük belőle. Természetesen fogyaszt az alaplap, a CDROM, a FLOPPY, a HDD, de ennek egy 286-os esetén csak felét, negyedét. A többi energia rendelkezésünkre áll.

Ezzel már igen komoly berendezést, vezérlést lehet megvalósítani, vagyis nem kerülhetjük ki a kérdést: hogy lehet megcsapolni hatékonyabban a gép tápegységét?

Aki már szerelte szét a PC-jét, (ugyan ki ne, aki e sorokat most is türelmesen olvassa ...) az találkozott a HDD-re, CD-re, vagy éppen a régebbi FDD-kre csatlakoztatható tápfeszültség ellátó kábelköteggel, aminek végén világos színű, 4 kivezetéses dugók lógnak. Mivel szinte minden gépben van szabadon 1...2 darab, ezt fogjuk hasznosítani. (Ha nincs, akkor a boltban kapható az un. Y-kábel, ami a konnektorok T-elosztóinak mintájára ezt is megoldja.)

A két középső vezeték fekete, ez a GND. A két szélső közül az egyik piros, ez a +5 V, míg a másik sárga, ez pedig a +12 V. Látható, hogy a kábelek keresztmetszete nem túl nagy, ezért tartósan néhány ampernél többet innen se illendő levenni, mert nagy lesz a feszültségesés a vezetéken, ami garantáltan megbolondíthatja a rákapcsolt elektronikát. (Ha mégis ilyen kell, alkalmazzunk több, független kábelt, vagy cseréljük ki vastagabbra, egészen a tápegységig.) Szélsőséges esetben a vezeték a túlterheléstől felhevülhet, szigetelése megolvadhat. Legyünk tehát roppant óvatosak, mert ez már nem a csengőreduktor kategória!!!

Természetesen ki szereti összeforrasztgatni, fúrni/faragni a PC-jét? Van erre szolidabb, reverzibilis megoldás, de ismét körül kell néznünk kicsit a hulladékban. Régi, rossz FDD, HDD egységek tápcsatlakozóját kiforrasztjuk a paneljéből, majd vastag, hajlékony vezetéket forrasztunk rá, végül zsugorcsővel leszigeteljük. Ez így biztonságosan, zárlat veszélye nélkül csatlakoztatható a tápegység egyik szabad kábelvégére.  Az egyik PC SLOT véglemezt kicsavarozzuk helyéről, majd ezen egymás alá 3 db 8 mm-es furatot készítünk. A középső furatba egy fekete, a felsőbe egy piros, míg az alsóba egy sárga banándugó aljzatot csavarozunk. A vezetékek szabad végeit a banándugó aljzatokhoz kapcsoljuk, majd a véglemezt a helyére szereljük. Mielőtt az áramot bekapcsoljuk, alaposan ellenőrizzük le, nehogy valami oda érjen, ahova nem szabadna ... L

Ezzel cikkünk végéhez értünk. A következő szám megjelenéséig kérek mindenkit, hogy készítse el a saját puffer fokozatát, illetve tápáram kivételi megoldását, mert szükség lesz rá.

Amennyiben puffert nem is kívánna valaki készíteni, egy +5 V, illetve +12 V-os táp csatlakozást tegyen elérhetővé, mert a következőkben a meghajtó fokozatokat fogjuk áttekinteni, s ezek egy részéhez mindkét tápfeszültségre szükség lesz!

Végül egy eleget nem ismételhető, fontos figyelmeztetés:

A szakszerűtlenül végrehajtott átalakítás komoly veszélyforrást jelenthet úgy a számítógépünkre, mint a saját, vagy mások életére. (Gondoljunk csak egy zárlatból, túlterhelésből keletkezett tűzesetre, vagy éppen egy áramütésre, esetleg túlfeszültségtől szétdurranó alkatrészre!) Ezért mindenkit megkérek, hogy a munkálatokat kellő szakértelemmel, vagy ennek hiányában szakértő felügyelete mellett végezze. Soha nem szégyen kérdezni, tegyük meg hát mi is bátran! Sok sikert, jó szórakozást.

Kis Norbert - norbimagan@freemail.hu