Uhr "Morpheus"



Die Röhre

D7-16 GJ


Als Röhre habe ich mich für die D7-16 GJ entschieden, D7-16 was unterschiedliche Gründe hat: Sowohl die Röhre als auch ihr Datenblatt sind leicht zu beschaffen; die D7-16 hat eine schön kurze Bauform (≈16cm), ist preiswert, einfach anzusteuern und begnügt sich mit einer Anoden­spannung von nur 800 Volt. Die Nachleucht­dauer "mittel" des GJ-Schirms ist weder zu kurz noch zu lange und passt zur geplanten Anwendung mit einer Bildwieder­holrate von 30...40 Bilder pro Sekunde.

Zudem lässt das ursprüngliche Einsatzfeld der Röhre darauf schliessen, dass sie vergleichsweise robust ist — wichtig, wenn ein Bastler Hand anlegt... Verwendung fand die D7-16 GJ in Datensicht­geräten der Bundeswehr. Vermutlich wurde sie in großen Stückzahlen als Ersatzteil eingelagert und ist daher gut als Neuware zu bekommen. Als Preis kann man ca. 20€ rechnen, der Beschaffungspreis für die BW lag einstmals angeblich bei über 300 DM. Gekauft habe ich bei Flick Elektronik, wo je nach Angebotslage Neuware und/oder Altröhren, Fassungen aus alten BW-Geräten sowie Schirmungen aus MU-Metall verfügbar sind.


Die Röhren-Fassung

mit PWM-Spannungssteller für Ohm'sche Last


Für Fassung mit Einzelkontakten FAS901 meine D7-16 konnte ich keine passende Fassung finden, daher habe ich eine kleine Platine entworfen. Zum Bau der Fassung eignen sich 11 der Einzel­kontakte FAS901 sehr gut, die man bei Jan Wüsten bekommt. Die Platine enthält einen integrierten Spannungs­steller, der für eine gleich­bleibende und langsam anfahrende Heiz­spannung sorgt.

Für die Heizung der Kathode der D7-16 wird eine Spannung von 6.3 Volt benötigt. Die verwendete Spannungs­quelle ist nicht geregelt, liefert also eine Spannung, die über 6.3 Volt liegen kann. Die Röhren soll jedoch weder unter- noch überheizt werden, damit sie keinen Schaden nimmt und möglichst lange lebt.

Ein Röhrenfassung mit PWM-Steller Linearregler wäre die einfachste Lösung für diese Aufgabe, hätte jedoch den Nachteil, dass die Leistungs­differenz zwischen Eingangs­leistung (zB 12V·90mA) und Ausgangs­leistung (zB 6.3V·85mA) in Wärme umgewandelt wird. Das wäre sehr ungünstig, weil die Heiz­spannung auf Kathoden­potential bei ca. -600 Volt liegt und mühsam über eine Drossel übertragen werden muss.

Der PWM-Spannungs­steller hat diesen Nachteil nicht. Durch schnelles Ein- und Ausschalten der Eingangsspannung (PWM) wird die Röhren­heizung immer mit einer Effektivs­pannung von 6.3 Volt versorgt. Am Schalt­transistor entsteht praktisch keine Verlust­leistung, und der als PWM-Controller eingesetzte AVR ATtiny25 ist mit 2 mA zufrieden.

Die Schaltung ist in die Röhren­fassung integriert und erledigt die Aufgabe mit minimaler Verlust­leistung. Zudem ermöglicht sie ein langsames Anheizen der Röhre, falls gewünscht. Mit einem Jumper kann der Spannungs­steller überbrückt werden, wodurch die Heiz­spannung ±UB dann unbeeinflusst zugeführt wird.

Der Effektivwert der erzeugten Spannung soll der Nennspannung des Verbrauchers entsprechen. Weil in beiden Fällen die gleiche Leistung ausgenommen werden soll – was auch bedeutet, daß die Temperatur und damit der Widerstand der Heizwendel gleich bleiben soll – muss gelten: Schaltplan PWM-Steller
t_on*(U_in-U_Tr)^2 = (t_on+t_off)*U_eff^2
Dabei bezeichnet UTr die Spannung, die am Schalt­transistor abfällt. Damit gilt für das Tastverhältnis δ (duty cycle) der PWM:
duty = t_on/(t_on+t_off) = (U_eff/(U_in-U_Tr))^2
Die mittlere Spannung an der Last, wie man sie zum Beispiel mit einem Voltmeter angezeigt bekommt, ist
U_quer = U_eff^2 / (U_in-U_Tr)
Je höher die Eingangs­spannung, desto kleiner ist also die Spannung, die ein Voltmeter (auf "Gleich­spannung" bzw. "DC" eingestellt) anzeigt!

Beispiel

Die Heizung mit der Nennspannung von 6.3V soll an 10 Volt betrieben werden. Als Schalter dient ein npn-Transistor: BC517. Es ergibt sich δ = 0.46 = 46%, und ein DC-Voltmeter zeigt eine Spannung von ca. 4.25 Volt an. Bei der Rechnung wurde ein Spannungs­abfall von 0.7 Volt über der Collector-Emitter-Strecke des Transistors angenommen.

Download

Projekt als zip-Archiv (2009-01-18, 75 kByte)

  • C-Quelle (avr-gcc) + Makefile
  • hex- und elf-Datei
  • Schaltplan, Layout für eagle

Inzwischen wird die Heizungs­platine über einen kleinen Blocktrafo versorgt, also nicht wie urspünglich geplant über einen Aufwärts­wandler. Der Spannungs­steller bleibt aber weiterhin im Einsatz, auch wenn sich die Spannung und das Anheizen etwas einfacher über einen Linearregler und eine analoge Power-Up Schaltung realisierbar wären.


Die Hauptplatine

nach der ScopeClock von Sascha Ittner


Im Hauptplatine Internet habe ich Sascha Ittners ScopeClock mit D7-16 und Atmel-Controller gefundene, von der ich die Ansteuerung der Ablank­platten übernommen habe. Meine Platine enthält jedoch zwei wesentliche Änderungen:

Schaltplan Hauptplatine 1/2

Zum einen ist der Mikrocontroller kein Atmel AT89C4051, wie er auch in meiner Baumann-Uhr zum Einsatz kommt, sondern ein etwas leistungs­fähigerer Atmel AVR ATmega168, der sich mit avr-gcc bequem in C programmieren lässt.

Zum anderen sind auf der Haupt­platine keine Netzteile; weder für die Nieder­spannung- noch für Hoch­spannungs-Versorgung. Die Netz­teile für die verschiedenen Spannungen sind weitere Teil­projekte.


Schaltplan Hauptplatine 2/2

Der µC ist mit 24 MHz leicht übertaktet, was bei Raum­temperatur und satter Spannungs­versorgung absolut kein Problem ist. Er funktioniert einwandfrei und zeigt keine Erwärmung.

Weitere, kleine Erweiterungen sind ein Infrarot-Empfänger zur Bedienung über eine handels­übliche IR-Fern­bedienung (RC6), eine UART-Schnitt­stelle zu Kommuni­kation mit dem PC und ein kleiner Piezo-Beeper, der bei Snake zum Einsatz kommt; hier zu hören in einem youtube-Video.

Insgesamt sind die Bauteile etwas dichter arrangiert damit die Platine nicht größer wird als 100 cm2. Sie ist ca. 11 cm × 8.5 cm groß und zweiseitig geroutet.

Wichtiger Hinweis:
Der Steckverbinder zum Anschluss der Röhre hat eine andere Belegung als bei Sascha Ittners Uhr!


Die Software

in GNU-C99 für avr-gcc


Zurzeit Snake: Level 3, Frame 300 hab ich Spaß mit Snake :-) Zum Rumprobieren gibt's sogar eine PC-Version zum selber compilieren. Die PC-Version kann einzelne Frames als PPM-Grafik erstellen. Damit habe ich über ein Shell-Skript auch die Animation auf der Startseite erzeugt. Wie das geht, steht im Makefile. Du brauchst eine richtige Umgebung wie Linux oder MSYS+MinGW sowie ImageMagick.

Metriken der momentanen Software:

  • Sprache: GNU-C99 mit etwas Inline Assembler
  • C-Module: ca. 20–25
  • RAM-Verbrauch: 85% von 2 KiB
  • Flash-Verbrauch: 75% von 16 KiB
  • EEPROM-Verbrauch: 0%
  • Pixelrate: 48000 pos/s
  • Taktrate: 24 MHz
  • Compiler: avr-gcc 4.7.2+

Ein Vorberechnen und Zwischenspeichern kompletter Frames ist aufgrund der begrenzten RAM-Resourcen von 1 kByte nicht möglich. Die Koordinaten der einzelnen Pixel müssen also immer wieder neu gewonnen werden! Bei einer Pixel-Rate von 48 kHz bleiben zur Berechnung und Ausgabe eines Pixels also 500 CPU-Ticks bzw. rund 20 µs. Dennoch ist die Pixel-Engine schnell und klein genug, um einen Asteroids-Clone zu implementieren.