VFD Display mit PT6312

IMG_20141126_075117Nachdem ich nun lange Zeit ein VFD Display inklusive PT6312 Controller in meiner Bastelkiste zu liegen hatte und mir auch schon zwei DC-DC Wandler für die Heiz und Kathodenspannung besorgt hatte, habe ich endlich die Zeit gefunden das mal zu testen.

Ein VFD Display anzusteuern ist ein lang gehegter Kindheitstraum von mir.

Ich habe früher schon mit Begeisterung, Elektronische Geräte auseinander genommen und teilweise wieder zusammen gebaut. Da sind mir natürlich die verschiedensten Displays unter gekommen. LED-Anzeigen, meist von ausgedienten Radioweckern und LCD anzeigen aus Uhren oder alten Taschenrechnern.

Das alles ließ sich auch meist mit einfachen Mitteln zum Leuchten zu bringen, da diese zum größten Teil ohne Controller aus kamen und es sich um 7-Segment Anzeigen handelte.

Dabei faszinierten mich am meisten die VFD Displays, zum Einen weil ich die nie zum dauerhaften Leuchten gebracht habe, zum Anderen kann man hier die Bestandteile sehen und die sehen einfach hoch kompliziert aus.

Damals gab es leider noch kein Internet in dem man sich Informationen beschaffen konnte und Bücher lesen ist auch nicht mein Ding.

 

Ich habe die Spannungsversorgung nach einer Anleitung aus dem Mikrocontroller Forum mit einem SIM1-0524, SIM1-0503 und eine Z-Diode zusammen gebaut.

Das Multimeter zeigte mit auch die erhofften Spannungen an VEE: -25,5V / F1: -20,1V / F2: -23,5V .

Nun ging es an die Ansteuerung des PT6312 über SPI. Das Ganze ist über ein Software SPI und einem ATMega32 realisiert. Leider zeigte das Display nicht die erwünschten Zeichen an. Ich habe dann zwei Abende mit Fehlersuche verbracht. Zuerst habe ich die Spannungsversorgung geprüft, geändert und getestet. Dann habe ich mir nochmal den Quellcode angeschaut. Tja, das erste mal einen Software SPI benutzt und nicht auf die BitOrder geachtet. Das konnte ich dann schnell ändern und siehe da, es geht.

Nun habe ich ein Funktionierendes VFD Display.

MSP430 InfoA (Calibrationdata) lost

Nachdem ich angefangen habe einen MSP430F2616 über BSL zu programmieren, habe ich zwischendurch ausversehen das Kalibrierungsregister Info A gelöscht. Zum Glück hatte ich einen Dump. Aber wie es der Zufall so will, habe ich beim dumpen auch noch die falsche Länge angegeben, was also dazu führte, dass ich die letzten beiden Register nicht hatte. Das waren ausgerechnet auch noch die für den 1MHz Takt.

Nachdem ich versucht habe, die letzten beiden Register durch errechnen, auslesen und vergleichen von anderen MSPs zu rekonstruieren, habe ich mich dann doch auf die Suche im Internet gemacht.

Nach einer Weile bin ich dann auf einen Artikel im TI Forum gestoßen, dieser Verwies dann auf das Paket „slac163“ (MSP430F21x2 Code Examples) und die darin enthaltene Datei „msp430x21x2_dco_flashcal.c“.

Das Programm ist recht simpel aufgebaut und erlaubt es zumindest die CPU Takt Kalibrierungsregister neu zu errechnen, alles was man dazu benötigt ist ein 32kHz Uhrenquarz, welcher an XIN und XOUT angeschlossen wird.

Da man solch ein Uhrenquarz so ziemlich in jedem Gerät findet, war das kein Problem.

Nach dem man das Programm geladen und gestartet hat, würde das Programm eine an P1.0 angeschlossene LED einschalten, sobald die Kalibrierungsdaten für 1MHz, 8MHz, 12MHz und 16 MHz wieder in das Kalibrierungsregister geschrieben wurden.

Da ich aber keine LED an diesem Port hatte, habe ich einfach ein paar Sekunden gewartet. Danach konnte ich das Info A Register auslesen und dort waren alle Takt Daten wieder vorhanden.

Jetzt konnte ich die Sicherung wieder vervollständigen und das Register komplett wiederherstellen.

Eine Interessante Möglichkeit bietet dies zudem, man kann noch anderen Takt Frequenzen kalibrieren lassen. Optimal sind welche, die sich durch 4096Hz teilen lassen.

Ich habe in einem Beitrag gelesen, dass es je nach Chip möglich ist diesen bis auf 19-20MHz zu Takten. Der wird dann aber bestimmt sehr instabil.

 

Zur Sicherheit habe ich nun das komplette Info A Register mit in das Programm integriert, sodass dieses auch beim BSL Flash wieder gesetzt wird.

 

Jetzt noch zur Frage, warum BSL?, weil ich kein MSP-FET für den JTAG habe und der Chip kein Spy-Bi-Wire hat, welches ich über ein Launchpad benutzen könnte.