Ik heb hier een aardige uitdaging bij de aansturing van een mooi VFD uit een oude videorecorder. Maar eerst even wat achtergrond informatie;
Gehele project
Het project(je) begon eigenlijk met het feit dat ik 8 temperaturen van de vloerverwarming (4 in 4 uit) netjes wil meten. Verder wil ik nog wat andere dingen kunnen registreren zoals het schakelen van kleppen enz, en eventueel de mogelijkheid hebben tot actuatie. Als laatste wil ik al die data loggen en kunnen verzenden over RS232. Dus een ATMega16 was snel gekocht, ik had overigens nog weinig ervaring met die dingen, maar zodoende leert men....
.
Mijn streven is overigens om zoveel mogelijk onderdelen van oude printen te pakken.
VFD?
Vervolgens in mijn PCB verzameling gedoken om te kijken wat ik zoal op stock heb...Ik heb nog een prachtig VFD liggen uit een video recorder, met 14 segmenten. Controllerchips waar dat ding op aangesloten was waren 1. onbekend en 2. waarschijnlijk defect. (Toen ik klein was had ik de neiging om 12 v te zetten op alles wat ik kon vinden
) Natuurlijk rees al snel het idee om dat ook aan te sluiten op het geheel, zodat ik een mooi overzicht heb van in en uitgaande temperaturen. Voor diegene die niet weten wat een VFD is, een Vacuum Fluorescent Display, eigenlijk gewoon een grote vacuum buis. Deze dingen zijn veel te vinden in oudere apperatuur, en vooral videorecorders en stereo torens. Vergeleken met LCD's zijn ze veel mooier omdat ze zelf licht afgeven.
Na wat googlen was ik er al snel achter hoe zo'n ding aan te sluiten, en weldra blonk er een mooi segmentje. Daarna de pinout uitgevogeld en voila, we kunnen een controller ontwerpen. Het display zelf was dus nog compleet intact.
Overigens gaat het om een Futaba FV135G, maar daar kom je ook niet verder mee op google...
Hoe werkt zo'n ding
Mooie uitleg is te vinden hier; http://www.noritake-elec.com/vfd_technology_an.htm
Het komt op het volgende neer; Een VFD bestaat uit 3 elementen; een filament (cathode), een grid, en een phosphor elementje (anode). De taak van het filament (gloeidraad) is om d.m.v een lage spanning (+/-3v AC of DC, en ongeveer 100/200 mA) elektronen vrij te maken. Deze worden vervolgens aangetrokken tot de grid, een soort raster, waar een sterk positieve spanning van >10V op staat. Wanneer vervolgens een eveneens positieve spanning op een van de anodes, met phosphor coating, aangebracht wordt, zal een elementje oplichten.
Omdat het onaandoenlijk is om voor elk elementje een aparte pin beschikbaar te stellen, wordt het geheel gemultiplexed. Dit is bijna equivalent aan LED multisegment displays. Bijgevoegd plaatje van het desbetreffende VFD laat de pinout zien. De 14 karakters zijn verdeeld over 8 grids, die elk 1 of 2 karakters aansturen. Verder bestaan er 2 segmenten, SEG0 en SEG1, die parallel aangestuurd kunnen worden, en dus elk hun eigen pinout hebben, dat zijn dus 2*7=14 pinnetjes. De segmenten zijn van links naar rechts genummerd 0,1,0,1,0,1,0,1..enz. De grid pin die aan staat bepaald welk van de 14 karakters er opgelicht kan worden. Zo zal pin 15, en pin 11, het bovenste elemetje van het 7e karakter oplichten. Om getallen te laten verschijnen op verschillende plaatsen zal men dus razendsnel door de grids moeten lopen, elke keer het juiste getal per grid aansturend.

Hoe aan te sturen
Omdat ik natuurlijk niet alle I/O pinnen van de ATmega wil gebruiken zal er een serieel naar parallel conversie verzonnen moeten worden. Een tweede run door mijn printplaten leverde 3x 74HC164 shift registers op. Dit zijn serial in parallel out registers, ideaal dus voor mijn taak. Ik kan er 3*8=24 pinnen mee aansturen, wat toevallig ook precies het aantal is wat ik nodig heb, 7*2=14 voor de segments, nog 2 voor de speciale tekens, zoals :, en nog 8 voor de grids.
Er zijn natuurlijk legio mogelijkheden om dit aan te sluiten, maar ik ga voor de optie om ze alle drie parallel aan te sturen, waarvan 2 de segment anodes, en de andere de 8 grids. Dat kost me 3xData op de ATmega, 1x CLK, 1x CLR, en wellicht nog een voor het aan en uit schakelen van de outputs. Maximaal zes dus. Ik zou er ook twee achter elkaar, serieel willen zetten maar dit geeft nadelen voor de update cycles, want ik moet zorgen dat ik 16 karakters achter elkaar er in zet. De details w.b.t. dit gedeelte van de aansturing heb ik redelijk uitgewerkt, wellicht dat daarover in een later stadium meer volgt. Aan de andere kant zou dit ook weer kunnen veranderen, dus ik wil eerst kunnen prototypen op breadboard.
Maar daarvoor is echter nog een ander probleem op te lossen; 5V uitgang van de shift registers moet naar >12V voor de ingangen van het VFD.
Ja, maar dan plak je toch gewoon een NPN eraan?
Dit is geen optie, ik moet immers +12V kunnen sourcen, en niet sinken. Ik kan het VFD ook niet andersom aansluiten. Op het moment ben ik van plan om dit door het volgende schema op te lossen;

En dit vervolgens 24x! in smd uit te voeren, een uitdaging ansich. De 1k smd weerstanden heb ik ook al bij elkaar geschraapt, en van de 4k7 heb ik ook al de helft
.
Wat is dan de vraag?
Echter ik heb toch het gevoel dat dit makkelijker kan, wellicht met een MOSFET. Dit is ook mijn grote vraag, iemand die hier een handiger manier voor heeft? De stroom naar de anodes is vrij klein, een paar mA, de totale stroom per grid zal dus ook onder de 100 mA blijven als het goed is.
Ik ben van plan om eerst dit te maken, de VFD daaraan vast te verbinden, en dan met een voldoende brede flatcable de rest eraan te hangen. Dan kan ik ook de VFD wat beter inpakken, want ze zijn vrij kwetsbaar.
Een mooie site waar ongeveer een gelijkaardig project wordt beschreven is:http://web.jfet.org/inGrid/
Gehele project
Het project(je) begon eigenlijk met het feit dat ik 8 temperaturen van de vloerverwarming (4 in 4 uit) netjes wil meten. Verder wil ik nog wat andere dingen kunnen registreren zoals het schakelen van kleppen enz, en eventueel de mogelijkheid hebben tot actuatie. Als laatste wil ik al die data loggen en kunnen verzenden over RS232. Dus een ATMega16 was snel gekocht, ik had overigens nog weinig ervaring met die dingen, maar zodoende leert men....
Mijn streven is overigens om zoveel mogelijk onderdelen van oude printen te pakken.
VFD?
Vervolgens in mijn PCB verzameling gedoken om te kijken wat ik zoal op stock heb...Ik heb nog een prachtig VFD liggen uit een video recorder, met 14 segmenten. Controllerchips waar dat ding op aangesloten was waren 1. onbekend en 2. waarschijnlijk defect. (Toen ik klein was had ik de neiging om 12 v te zetten op alles wat ik kon vinden

Na wat googlen was ik er al snel achter hoe zo'n ding aan te sluiten, en weldra blonk er een mooi segmentje. Daarna de pinout uitgevogeld en voila, we kunnen een controller ontwerpen. Het display zelf was dus nog compleet intact.
Overigens gaat het om een Futaba FV135G, maar daar kom je ook niet verder mee op google...
Hoe werkt zo'n ding
Mooie uitleg is te vinden hier; http://www.noritake-elec.com/vfd_technology_an.htm
Het komt op het volgende neer; Een VFD bestaat uit 3 elementen; een filament (cathode), een grid, en een phosphor elementje (anode). De taak van het filament (gloeidraad) is om d.m.v een lage spanning (+/-3v AC of DC, en ongeveer 100/200 mA) elektronen vrij te maken. Deze worden vervolgens aangetrokken tot de grid, een soort raster, waar een sterk positieve spanning van >10V op staat. Wanneer vervolgens een eveneens positieve spanning op een van de anodes, met phosphor coating, aangebracht wordt, zal een elementje oplichten.
Omdat het onaandoenlijk is om voor elk elementje een aparte pin beschikbaar te stellen, wordt het geheel gemultiplexed. Dit is bijna equivalent aan LED multisegment displays. Bijgevoegd plaatje van het desbetreffende VFD laat de pinout zien. De 14 karakters zijn verdeeld over 8 grids, die elk 1 of 2 karakters aansturen. Verder bestaan er 2 segmenten, SEG0 en SEG1, die parallel aangestuurd kunnen worden, en dus elk hun eigen pinout hebben, dat zijn dus 2*7=14 pinnetjes. De segmenten zijn van links naar rechts genummerd 0,1,0,1,0,1,0,1..enz. De grid pin die aan staat bepaald welk van de 14 karakters er opgelicht kan worden. Zo zal pin 15, en pin 11, het bovenste elemetje van het 7e karakter oplichten. Om getallen te laten verschijnen op verschillende plaatsen zal men dus razendsnel door de grids moeten lopen, elke keer het juiste getal per grid aansturend.
Hoe aan te sturen
Omdat ik natuurlijk niet alle I/O pinnen van de ATmega wil gebruiken zal er een serieel naar parallel conversie verzonnen moeten worden. Een tweede run door mijn printplaten leverde 3x 74HC164 shift registers op. Dit zijn serial in parallel out registers, ideaal dus voor mijn taak. Ik kan er 3*8=24 pinnen mee aansturen, wat toevallig ook precies het aantal is wat ik nodig heb, 7*2=14 voor de segments, nog 2 voor de speciale tekens, zoals :, en nog 8 voor de grids.
Er zijn natuurlijk legio mogelijkheden om dit aan te sluiten, maar ik ga voor de optie om ze alle drie parallel aan te sturen, waarvan 2 de segment anodes, en de andere de 8 grids. Dat kost me 3xData op de ATmega, 1x CLK, 1x CLR, en wellicht nog een voor het aan en uit schakelen van de outputs. Maximaal zes dus. Ik zou er ook twee achter elkaar, serieel willen zetten maar dit geeft nadelen voor de update cycles, want ik moet zorgen dat ik 16 karakters achter elkaar er in zet. De details w.b.t. dit gedeelte van de aansturing heb ik redelijk uitgewerkt, wellicht dat daarover in een later stadium meer volgt. Aan de andere kant zou dit ook weer kunnen veranderen, dus ik wil eerst kunnen prototypen op breadboard.
Maar daarvoor is echter nog een ander probleem op te lossen; 5V uitgang van de shift registers moet naar >12V voor de ingangen van het VFD.
Ja, maar dan plak je toch gewoon een NPN eraan?
Dit is geen optie, ik moet immers +12V kunnen sourcen, en niet sinken. Ik kan het VFD ook niet andersom aansluiten. Op het moment ben ik van plan om dit door het volgende schema op te lossen;

En dit vervolgens 24x! in smd uit te voeren, een uitdaging ansich. De 1k smd weerstanden heb ik ook al bij elkaar geschraapt, en van de 4k7 heb ik ook al de helft
Wat is dan de vraag?
Echter ik heb toch het gevoel dat dit makkelijker kan, wellicht met een MOSFET. Dit is ook mijn grote vraag, iemand die hier een handiger manier voor heeft? De stroom naar de anodes is vrij klein, een paar mA, de totale stroom per grid zal dus ook onder de 100 mA blijven als het goed is.
Ik ben van plan om eerst dit te maken, de VFD daaraan vast te verbinden, en dan met een voldoende brede flatcable de rest eraan te hangen. Dan kan ik ook de VFD wat beter inpakken, want ze zijn vrij kwetsbaar.
Een mooie site waar ongeveer een gelijkaardig project wordt beschreven is:http://web.jfet.org/inGrid/
If good's on the left, then I'm sticking to the right.