Kategóriák
Munkával kapcsolatos észrevételek, kérések, kérdések, egyelőre egy halomba, minden ami idefér

Nixie csöves óra építés

Ebben a posztban egy retró készüléket építek egy megrendelőm részére. Az 1980-as években a Rádiótechnika című folyóiratban amit még apám rendszeresen megvásárolt többször láttam ilyen óra építésére hívó cikket, majd mostanában az interneten és egy tematikus csatornán futó „Hogyan készül” című filmben is többször belefutottam ebbe a témában. Amikor egy megrendelőm azzal keresett meg, hogy készítsek egy ilyen retró órát, akkor arra gondoltam, hogy ha már ilyen hype alakult ki e témában, énnálam is kapható lesz ez a termék. Tehát elvállaltam a projektet, és itt a blogomon követheti az olvasó, érdeklődő hogy hol tart az óra építése.

A kiindulási alapot egy a megrendelőm által netes forrásból kapott kapcsolási rajz adta, amit az adottságaimnak megfelelően átterveztem. Igy az eredetiben szereplő PIC helyett Atmel ATMEGA AVR-t terveztem. Továbbgondolva a kapcsolást, hogy könnyebb legyen az életem, egy I2C buszos órát terveztem a panelra, így ennek tápellátása az órától függetleníthető. Így nem fog elfelejteni , ha épp áramszünet van.

Az eredeti készülékhez képest 6 csöves kapcsolást terveztem két külön lemezre tervezve. Tettem ezt azért, mert ha a mikrokontrolleres panelt alkalmatlanság miatt változtatni/cserélni kell, akkor a NIXIE csöves felső panelt meg lehessen hagyni.

Az eredeti kapcsolásba nem nagyon bízom, de majd láthatjuk a posztban hogy miként fog működni. Magam részéről a DC 12-18 V feszültségű tápellátást és 0.5A maximális áramfelvételt engedélyező olvadóbetétes tápegység használatát választottam.

Nixie csöves óra alaplemez2
Nixie csöves óra alaplemez2

Nyomtatott áramköri lapot terveztem és a megrendelőm erről elkészítette az alaplemezeket. A felső alaplemezbe ültettem a kijelzőket, az alsó lemezbe az elektronikát és a multiplex áramkört.

Azt tervezem, hogy először a mikrokontrollerben megírom a nagyfeszültségű tápegység vezérlését, majd ha már az működik, elkészítem a kijelzők vezérlését.

A felső panelbe beforrasztottam először a csöveket alulról világító LED diódákat, ellenőriztem a működésüket, mert később nagyon nehéz cserélni a csövek lábazása miatt.

Nixie csövek (felső panel)
Nixie csövek (felső panel)

Ha már a kijelzők működnek, majd az óraáramkörrel kapcsolatos kommunkiációt írom meg. Hogy az fejlesztés során a program futásáról információkat szerezzek, egy soros port csatlakozót is terveztem az alaplemezre. Ezt majd a végső verzióban már nem fogom beültetni, csak a fejlesztés idejére van szükség erre.

Nixie csöves óra alaplemez
Nixie csöves óra alaplemez

Az óra alaplemezén először a tápegységet ültettem be. A tápegység felélesztése után a mikrokontrollert és a közvetlen közeli áramköröket ültettem be.

A programírást a soros port felélesztésével kezdem, majd utána a nagyfeszültséget előállító négyszögjel kiadását fogom elkészíteni.

Szerencsére korábbi munkáimból ezeket a kódrészleteket csak össze kell ollózzam. Ma addig jutottam el, hogy a mikrokontrollert égető készülék felismerte a panelben lévő kontrollert, valamint a nixie csöveket kitermeltem előző helyükről és beültettem a felső panelba. Ezt a panelt láthatják a borítóképen.

Folytatás következik holnap….

Folytatás #1:

A mai nap a mikrokontroller programjának megírását kezdtem el. Az alapvető rutinjait (soros portkezelés , két cirkuláris bufferrel (Rx/Tx) valamint az I2C busz kezelő rutinokat, és a Dallas 1 vezetékes periféria kezelő rutinokat)ollóztam össze más, korábbi kódokból, továbbá a program keretét készítettem el.

A munkámat azzal kezdtem, hogy a kapcsolási rajz alapján a mikrokontroller lábazását beírtam a kód elejébe, valamint egy timer irq-t csináltam a nagyfeszültség és a multiplexelt kijelző vezérlés működtetésére.

A nixie-csövek helyett a próbák idejére 200kOhmos ellenállást raktam a nagyfeszültségű tápegységre műterhelésnek, hogy egyrészt ne menjen tönkre a pufferkondenzátor, másrészt kikapcsolás után ne csapjon meg a kondenzátorban maradt töltés.

Az óra soros portját első próbálkozásra sikerült feléleszteni erről a PC soros portján megjelenő üzenet tanúskodott.

A nagyfeszültségű tápegység által előállított feszültséget a vezérlő jel kitöltési tényezőjének és frekvenciájának változtatásával 165V értékre állítottam be. Az IN-14 es nixie cső multiplexelt vezérléséhez a gyári ajánlott 1 kHz ismétlési frekvenciát valamint az egy cső működtetéséhez minimálisan ajánlott 70 mikroszekundumos időt alapul véve a működtetést 100 mikroszekundum időre állítottam be.

Nixie óra első beindulás.
Nixie óra első beindulás.

A készülék jelenlegi áramfelvétele 100mA 16V egyenáramú tápláláson. A nagyfeszültséget előállító tápegység kapcsolóeleme üzemszerűen alig langyosodik, hűtőfelület nélküli TO-220 as tokozású FET jól bírja a terhelést.

Sajnos az élesztés során a nixie meghajtó IC BCD dekóder hibáját észleltem, így nem tudtam ma tovább haladni.

A következő részben a BCD meghajtó és portvezérlés megírása után már a tényleges óraszoftver írása következik. Ekkor kell megírjam az óraállítást, és a hőmérséklet kijelzést is.

Folytatása következik…

Folytatás #2:

Hát semmi sem olyan egyszerű aminek látszik… Két napja amikor megpróbáltam megírni a BCD meghajtó és portvezérlő programot tudtam, hogy biztosan lesznek nehézségek. Első próbálkozásra össze vissza működtek a fénylő katódok, és véletlenül sem akart jó lenni a program.

Mérések következtek, majd rájöttem, hogy a katódokat kapcsoló K155ID1 áramkör hibás. Szerencsére a megrendelőm még aznap este hozott működő példányt, amit rögtön teszteltem is.

Beépítve változott a helyzet de még mindig nem működött az áramkör, össze vissza világítottak a számjegyek, és véletlenül sem úgy, ahogy azt a programom akarta. Mi lehet a baj? Töprengtem, majd az EPROM-égetőm tesztelő funkciójával dűlőre vittem a kérdést:

K155ID1 tesztvektor
K155ID1 tesztvektor

A tesztvektor értelmezése a következő: a lehetséges kimenetek (L,H,Z) a bemenetek (0,1) és tápfeszültség (V) és föld (G) jelekből álló kombinációkat kell készíteni amiket az égető ellenőriz. Minden karakter az illető sorszámú lábra kerül, a kimenetek állapotát pedig ellenőrzi az égető.

A kimenetek lehetnek logikai 0 (Low) logikai 1 (High) vagy nagy impedanciájú tri-state (Z) állapotú, ezeket ellenőrzi az égető. Az IC open kollektoros kimenetű így a nem aktív kimenetek Z (nagy impedanciájú) állapotban van.

Tesztvektor írtam és azzal igazoltam az IC helyes működését. Akkor mi lehet a baj? Az oszcilloszkópon láthatóan jó a vezérlés, a kimenetek viszont sok esetben össze – vissza aktívak maradnak.

Gondolkodóba estem és elraktam a problémát másnapra.

Másnap a programban találtam egy hibát, de sokkal nem lett jobb a kijelző. Azonban amikor csak 0 és 1 számjegyeket írtam ki megfigyeltem, hogy a multiplexelés sorrendjében a számjegy váltáskor látszik a hiba: amikor 3 darab 0 és három darab 1 karaktert raktam ki, a 0 után következő 1-es hátterében a 0-ás karakter még világított.

Ez a megfigyelés adta az ötletet, hogy a Nixie cső késleltetett kioltása okozhatja a jelenséget. Először is lelassítottam a multiplexelés váltási frekvenciáját annyira, hogy még éppen ne legyen vibrálás. Ez jelen készüléknél kb. 70 Hz-es ciklusoknak felel meg, vagyis másodpercenként a multiplexer 70-szer fordul körbe a kijelzőkön.

Ezután az egy csőre eső időszeletet 16 egyenlő részre osztottam, ez programozás technikailag könnyen megvalósíthatónak bizonyult.

Az utánvilágítási jelenség elkerülésére a következő kapcsolási eljárást implementáltam.

1., Az aktuális kijelzőn a 12. időszeletbe lépéskor kikapcsolom az anódfeszültséget.

2., A következő 0. időszelet kezdetén a multiplexerre kiadom a multiplexeren keresztül a kívánt katódot kiválasztó négybites adatot, majd bekapcsolom a következő cső anódfeszültségét.

3., megvárom a 12. időszeletet és innen kezdve ismétlem a tevékenységet, míg végig nem járom mind a 6 kijelzőt, kijelzőnként 16 időszelettel.

Nixie csövek próbája
Nixie csövek próbája

Az eredmény magáért beszél nagyon elégedett vagyok vele… valahogy megfogott a szépen parázsló számok varázsa.

Következő részben a csövek alatt világító ledek vezérlését írom meg, majd az órachip következik….

Folytatás #3:

A fejlesztés gyakorlatilag elkészült. Miután a kijelzők életre keltek, az AVR órajeléből a 16 bit szélességű időzítő áramkörrel (TIMER1) kiosztottam a pontos 1 Hz frekvenciát, majd ennek a timernek az IRQ-rutinjába írtam az idő növelését meg.

Ezután a hőmérő áramkört és a hozzá kapcsolódó rutinokat készítettem el. Egy Dallas DS1820 hőmérőt használok, a sorozatszám kiolvasása után a hőmérséklet adatokat olvasom ki és számítom át a kijelzőkre kiírható formátumba. A hőmérséklet kiírás egy gomb lenyomása után 5 másodpercig aktív, majd utána a kijelző visszavált óra üzemmódra.

A mikrokontrollerben az idő adatok binárisan vannak tárolva, ebből konverzió után kerülnek nibblénként kiírásra a kijelzőre.

Az óraállító program megírása után a LED világítás próbája következett:

Multiplex áramkör működés közben.
Multiplex áramkör működés közben.

Megfigyelhető az óra számláló egyes helyiértékű kijelzőjén az éppen kialvásban lévő számjegy. Azt érdemes tudni, hogy a csövek kialvásához szükséges idő annyi, hogy a multiplexelt kijelzők közül éppen a 4. kijelző (perc, egyes helyiértékű kijelzője az aktív, a következő lépés a tizes perc kijelzője lesz. Így mire újra sorra kerülnek a csövek, már éppen kialudtak, de nagyon kevés ideig maradnak sötéten, és így nem villognak zavaróan.

Az órára ezután egy 3.6V os 60mAh kapacitású akkumulátorral táplált PCF8563 típusú integrált órachip került beépítésre. Az óra ezzel a chippel jár szinkronban, és ez biztosítja, hogy áramszünet esetére is akár napokig ne „felejtse” el az időt.

Kész óra panel
Kész óra panel

A képen az elkészült és készre szerelt áramkörök láthatóak.

A készre szerelt alsó panel valamint a felső panel csövek nélkül megrendelhetőek, szerelten, összerakva, programmal feltöltve budapesti címemen megkapható, esetleg a csövek beforrasztásában is tudok segíteni.

A felélesztett felprogramozott készülék ára 50.000.- HUF (nixie csövek nélkül). Igény esetén -külön díj ellenében – kiegészíthető a terv Geiger-Müller számlálóval, vagy a szoftver timer funkciót is képes megvalósítani (látványos visszaszámlálás stb.)

Remélem érdekes volt a poszt, és ha kedvet kaptak ilyen óraépítéshez, keressen bátran, szívesen segítek!