Electronika
Nixie klok: interface CMOS - TTL
TechTalk
Root server » TechTalk » Electronica » Nixie klok III
We zijn al ver gevorderd bij de realisatie van onze klok, maar omdat we recuperatieonderdelen hebben gebruikt zitten we met twee verschillende technologiën: namelijk TTL en CMOS.

De aansturing van de nixie buizen staat hier uitgelegd.

We zitten opgeschept met twee technologiën, namelijk CMOS en TTL.

CMOS

De CMOS technologie is redelijkeeenvoudig te begrijpen. Men gebruikt complementaire veldeffekt transistoren. De schakelingen werken tussen 5 en 15V en wordt door een spanning gestuurd. Is de spanning op een ingang lager dan de helft van de voedingsspanning, dan is dit een "0", is de spanning hoger dan de helft van de voedingsspanning, dan is dat een "1". De ingangen zijn hoogohmig en mogen niet los blijven hangen.


Een CMOS poort bestaat uit complementaire MOSFET transistoren die de uitgang naar d evoedingsspanning of de nul trekken, maar de stroom die geleverd wordt is heel beperkt.

Een TTL poort bestaat uit NPN transistoren en is asymmetrisch, zowel de ingang als de uitgang.


Een NAND en NOR poort in TTL technologie


TTL schakeling met discrete onderdelen (2N2222 transistoren) met aanduiding van de spanningen.

De sturing gebeurt door een stroom. Men heeft een stroom van 1.7mA nodig om de schakeling te doen omslaan.


Level shift van 1.2V (2 en 3 diodes)
Om 0.6V te bekomen, haalt men op beide plaatsen één diode weg.

DE CMOS schakelingen van de 4000-reeks (bijvoorbeeld een CD4096BE) hebben een symmetrische uitgang met twee complementaire transistoren die de uitgang zowel naar de voedingsspanning kunnen trekken als naar de massa. De "B" geeft een gebufferde uitgang aan, de "E" geeft een klassieke DIL behuizing aan.

De uitgang kan geen al te hoge stroom sourcen of sinken, zeker als de voedingsspanning 5V bedraagt. De stroom bedraagt maximaal 5mA bij een 5V voedingspanning. Als de uitgangsspanning dichter bij de voedingslijn komt, dan zakt de stroom nog verder. Veronderstel dat de uitgang 0 is. De uitgangsspanning is dan 0V als er geen belasting aangestuurd moet worden. De spanning stijgt naar 1.5V als er 3mA moet gesinkt worden.

De CMOS schakelingen zijn trager dan de TTL schakelingen maar verbruiken minder stroom (zeker als de schakelingen voornamelijk statisch werken). De eigenschappen worden minder gunstig naarmate de voedingsspanning lager wordt.

Een CMOS schakeling kan in theorie een onbeperkt aantal CMOS ingangen aansturen, enkel beperkt door de gewenste schakelfrekwentie. De ingangscapaciteit van ieder trap vormt immers een stijgende belasting naargelang men op hogere frekwenties gaat werken.

TTL

De TTL schakelingen zijn ouder dan de CMOS schakelingen. TTL werkt sneller, maar verbruikt meer, ook als er niet geschakeld wordt. Er worden hier uitsluitend NPN transistoren gebruikt. De schakelingen werken enkel op 5V met een absolute maximum van 7V. De uitgang en ingang zijn asymmetrisch. We beginnen met de ingang.

De ingangschakeling is zeer vreemd, via de emitter van een trasistor. Indien de ingang een OR funktie heeft, dan betreft het zelfs een transistor met meerdere émiters. Gezien vanuit d eingang kan men de transistor zien als een dubbele diode. Indien de ingang niet aangesloten is, dan heeft men een hoge ingang (hoewel de spanning niet boven d e0.65V zal stijgen). De uitgangstransistor wordt nu gevoed door de weerstand en gaat in geleiding (lage uitgang). Indien de ingang op een laag petentieel staat (<0.4V) dan is de ingangstransistor in geleiding en is de uitgangstransistor niet in geleiding (hoge uitgang).

Een NAND poort kan zo gebouwd worden met een transistor met meerdere emitters en een uitgangstransistor, terwijl een NOR poort een ingangstransistor en een uitgangstransistor per poort heeft.

De uitgang is ook asymmetrisch: de uitgangstransistor kan de uitgang naar d emassa trekken, maar om een hoog niveau te bekomen is er enkel de belastingsweerstand. Dit vormt geen probleem om een andere TTL trap te sturen, want die moet enkel naar d emassa getrokken worden om en 0 te coderen. Een TTL uitgang kan normaal 10 TTL ingangen sturen (fanout 10).

Bepaalde TTL schakelingen hebben enkel een open collector uitgang en gebruiken de ingangsweerstand van de volgende trap om het niveau te bepalen. Andere schakelingen hebben een totempole (transistor die de uitgang naar boven trekt), maar de uitgang bijft fundamenteel asymmetrisch.

Een TTL schakeling wordt in feite met een stroom gestuurd, en een spanningsmeting is maar een noodoplossing op de toestand van een poort te bepalen. Om een nul in te geven wordt de ingang naar d emassa getrokken, om een 1 te vormen kan men de ingang zwevend laten (geen stroom).

De reden waarom de voedingsspanning beperkt is tot 5V is dat de ingangstransistor, als die naar de plusleiding getrokken wordt via zijn emitter in feite omgekeerd gepolariseerd wordt. En de emitter-basisjunktie kan doorslaan als de inverse spanning boven de 6V komt.

De oorspronkelijke TTL reeks werd snel uitgebreid met bouwstenen die een lager verbruik hadden (het verbruik was oorspronkelijk 2mA per poort). Het verbruik werd verminderd tot 0.1mA per poort, met behoud van de snelheid. Er bestaat zelfs een TTL familie die gerealiseerd is op basis van CMOS transitoren!

Interface CMOS - TTL en omgekeerd

We hebben een probleem als we een TTL schakeling met een CMOS schakeling willen laten communiceren. Beiden werken op 5V, maar de aansturing is fundamenteel anders.

De eenvoudigste interface is die van TTL naar CMOS. Om niet-gedefinieerde toestanden te vermijden (TTL uitgang met open collector) zal men een pull up weerstand gebruiken (aangesloten op de 5V). De waarde is niet van groot belang, een waarde van 2.2kΩ is standaard. Een TTL schakeling kan een onbeperkt aantal CMOS ingangen sturen, waarbij men genoeg heeft met één enkele pull up weerstand.

Het wordt moeilijker als men een overgang van CMOS naar TTL heeft. CMOS schakelingen zijn niet in staat een hoge stroom naar de massa te trekken (sinken), zeker als ze met 5V gevoed worden. Recente TTL schakelingen hebben een ingangsweerstand die hoog genoeg is, waardoor de CMOS schakeling de ingang voldoende naar de massa kan trekken om een 0 te vormen, maar er is geen garantie dat het altijd en overal zal werken. In het beste geval kan een CMOS schakeling één enkele TTL poort aansturen. Om een 1 te coderen is er geen probleem.

Tijdens de testen sturen de CMOS schakelingen leds. Ik gebruik hier belastingsweerstanden van 470Ω, maar dit is niet strikt noodzakelijk, de CMOS schakelingen kunnen niet meer dan 5mA sinken. Indien de CMOS poorten verbonden zijn met de TTL IC's dan moeten de leds uitgeschakeld worden. Dit doe ik door gewoon de voedingsspanning van de leds te onderbreken. De leds gedragen zich dan als diodes die niet in geleiding zijn.

De 74141 schakeling is van een oude generatie (dus zeker geen low power) en ik heb een level shifter voorzien die de volledige voedingslijnen van de TTL schakelingen op een wat hoger niveau zullen brengen, dus 0.6V en 5.6V.

Als een CMOS poort een TTL naar de massa moet trekken, maar de spanning kan niet onder de 0.9V (omdat de CMOS poort onvoldoende stroom kan sinken), dan ziet de TTL poort in feite 0.3V (0.9 - 0.6V), want perfekt is om een 0 te coderen.

De levelshifter heeft geen invloed op de 74141 uitgangen die de nixie buizen aansturen.

Maar er duikt een ander probleem op: de 74141 heeft een maximale spanning van 65V, waardoor er altijd een spanning van ongeveer 155V staat over de cijfers die niet mogen oplichten, waardoor er toch een lichte gloed zichtbaar is. Dit wordt echt storend als ik een cijfer laat knipperen. Zelfs het plaatsen van een extra belastingsweerstand van 120kΩ biedt geen oplossing.

Ik heb dan maar gekozen voor kleine hoogspanning transistoren BF422 in TO92 formaat of BD127 in TO126 formaat. De transistoren worden aangestuurd door 4028 (hier ook één per nixie buis).

De schakeling werd gerealiseerd met recup onderdelen: de schakeling had waarschijnlijk heelwat eenvoudiger kunnen gerealiseerd worden, maar de bedoeling was hier zo goedkoop mogelijk te werken, dus componenten te gebruiken die ik reeds had.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's