Software
Elektronik |
Einstiegsseite |
Beschreibung |
Bauanleitung |
Inbetriebnahme |
diese Seite |
Pläne |
Bausätze |
Galerie
Programmierung
Bootloader
PC Software
Wunschliste
Historie
Stand 12.07.2017
Die Entwicklung der Uhren- und PC-Software in den Jahren 2001 bis 2005 hat Thomas Förster durchgeführt, dem ich dafür an dieser Stelle nochmals sehr danke.
Seit Frühjahr 2006 ist Hans-Joachim Borchers unermüdlich und hoch motiviert mit Korrekturen, Verbesserungen und Erweiterungen der Software beschäftigt.
Er gab die Erlaubnis die Ergebnisse seiner Arbeit hier zeitnah zu veröffentlichen und ich hoffe, dass seine Motivation noch für einige Überraschungen gut ist.
Es ist nicht selbstverständlich, dem Leser in dieser Form Zugang zur Software zu gewähren und ich werde wirklich sauer,
wenn jemand versuchen sollte damit Geld zu verdienen.
Zur Klarstellung: jeder darf diese Software herunterladen und für seine privaten Uhren nutzen.
Wenn diese Uhr dann irgendwann einmal z.B. über ebay verkauft wird, weil sie nicht mehr gefällt, ist das natürlich in Ordnung.
Nicht tolerieren werde ich jedoch jegliche Nutzung, die kommerziellen Charakter aufweist.
Programmierung des Controllers
Wer den Controller nicht selbst programmieren will oder kann, hat die Möglichkeit
programmierte Controller zu beziehen !
 |
Download Controllersoftware 2.4 (HEX-File) als zip-File. Das ist neu |
Um weiterhin mit der Multiplexfrequenz experimentieren zu können steht Version 2.1a optional zum Download.
 |
Download Controllersoftware 2.1a (HEX-File) als zip-File
|
Zum Programmieren eines fabrikneuen Controllers wird ein Hardwareadapter und ein Programmierprogramm für den PC benötigt.
An der ISP-Schnittstelle St3 auf der Controllerplatine wird der Programmieradapter angeschlossen, die Versorgungsspannung angelegt
und mit dem entsprechenden Programm vom Rechner aus das entsprechende HEX-File in den Controller einprogrammiert.
Eine Bauanleitung für einen Adapter hat mir Lucas K. zur Verfügung gestellt.
Weitere Informationen zum Flashen von Mikrocontrollern findet sich zahlreich im Internet.
Empfehlen möchte ich an dieser Stelle die Seiten von
Claudio Lanconelli (Programmiersoftware) und
Rolf Milde (Hardwareadapter).
Bitte nicht bei mir nach Support fragen, wenns bei dir nicht funktioniert.
Zu fremder Hard- und Software kann ich keine Hilfestellung leisten.
In solchen Fällen ist das microcontroller.net-Forum
eine gute Anlaufstelle für Fragen.
Bootloader
 |
Download Bootloader als zip-File
|
Mit der Uhrensoftware 1.2b wurde erstmals auch ein Bootloader für die Benutzung im Uhrencontroller adaptiert.
Was ist ein Bootloader ?
Der Bootloader ist ein kleines Programm, das in den oberen Bereich des Flash-ROMs des Controllers programmiert wird.
Es kann Daten über die RS232 Schnittstelle empfangen und in den unteren Flash-ROM Bereich hereinschreiben.
Auf diese Weise kann neue Uhrensoftware ohne zusätzliche Hardware bequem über die RS232 Schnittstelle der Uhr
in den Controller geladen werden.
Zum Softwarepaket gehören:
- nixiebootloader.hex Bootloader zum Laden des Flash-ROM
- avrupload.exe PC-Programm zum Hochladen von Daten in den Controller
- avruploadb.bat Batchfile zum Ansprechen des avrupload.exe
Wie erkenne ich, ob mein Controller schon einen Bootloader integriert hat ?
- Dazu die Uhr vom Netz trennen.
- Jetzt Taster 1 gedrückt halten und
- die Versorgungsspannung wieder einschalten.
Wenn nun die Ziffernröhren dunkel bleiben und die Glimmlampen leuchten, befindet sich ein Bootloader im Controller.
Um die Uhrensoftware zu starten, Taster loslassen, Versorgungsspannung abschalten und wieder einschalten.
Laden des Bootloaders
Hinweis:
Die folgenden beiden Punkte müssen nur durchgeführt werden wenn der Controller keinen Bootloader oder die Version bis November 2006 enthält.
- Fusebits setzen auf: fuse_low = 0x3F und fuse_high = 0xCA.
- nixiebootloader.hex in den ATMEGA16 programmieren.
Das ist der Bootloader und der muss herkömmlich über einen Programmer einprogrammiert werden.
Einspielen von Uhrensoftware ohne NCC
- Das Batchfile avruploadb.bat sieht so aus:
D:\Stefan\Nixieuhr\Software\Bootloader\avrupload /Fnixieclk.hex /C1 /B19200
Du musst es ändern:
Den Pfad eingeben, wo die Sachen auf deinem Rechner liegen.
Den Namen der hochzuladenden Datei angeben. (/F und dann der Name des hex-Files der neuen Controllersoftware)
Rechnerschnittstelle angeben. Im Moment ist COM1 benutzt. Sonst ändern: /Cx gibt den COM-Port an (x = 1-4).
/B ist die Baudrate, nicht ändern !
Dann Batchfile abspeichern.
- Die Dateien
avrupload.exe,
avruploadb.bat und die neue Uhrensoftware z.B.
nixieclk.hex in ein Verzeichnis kopieren.
- Uhr Power OFF
- Taste 1 drücken und festhalten und wieder Power ON.
Jetzt leuchten die Glimmlampen, solange der Taster gedrückt gehalten wird.
Taste loslassen, die Glimmlampen blinken schnell.
Das ist ein Zeichen, das der Bootloader bereit ist.
Wenn man die Uhr einschaltet und nicht Taste 1 gedrückt hält, dann startet der BL sofort die Uhrensoftware.
- Die Uhrensoftware kann jetzt über die serielle Schnittstelle geladen werden.
Dazu mit Doppelklick den Batchfile avruploadb.bat starten.
Jetzt geht ein DOS-Fenster auf und zeigt ein paar Meldungen und den Fortschritt. Das Blinken der Glimmlampen stoppt.
Wenn der Upload fertig ist, startet die Uhrensoftware automatisch.
Einspielen von Uhrensoftware mit NCC
- Die einzuspielende Controllersoftware ins gleiche Verzeichnis NIXIECLK kopieren,
in dem sich auch das NCC.EXE befindet und in NIXIECLK.HEX umbenennen.
- Uhr an den Rechner anschliessen und NCC starten
- Uhr mit Spannung versorgen, während Taster 1 gedrückt gehalten wird, die Glimmlampen leuchten
- Taster 1 loslassen, die Glimmlampen blinken schnell
- Den Button "update" drücken und Fenster mit "OK" bestätigen
Wenn der Upload fertig ist, startet die Uhrensoftware automatisch.
PC-Software für das Uhrensetup
|
Download NixieClockControl NCC (1.533 KB)
|
Mit Hilfe dieser Software ist es möglich verschiedene Einstellungen der Uhr bequem den eigenen Wünschen anzupassen.
Das NCC kann andere Sprachen !
Deutsch, Spanisch und Englisch sind realisiert.
Zum Aktivieren einer Sprache muss in der NCC.INI-Datei das Attribut für "Language" auf GER, ESP oder ENG gesetzt werden.
Änderungen sind in der gleichen Datei leicht nach eigenem Ermessen möglich.
Das Programm läuft unter Win98, Win2000 und WinXP. (Unter Win98 funktioniert das einfache Controllerupdate per Button nicht mehr)
Einfach das Archiv entpacken und die Installationsroutine NIXIECLK_SETUP.EXE starten.
Maussensitiver Bildschirmprint des NCC
Überfahren einzelner Felder mit der Maus öffnet kleine Fenster mit Erläuterungen.
Wunschliste für Erweiterungen der Uhrensoft- und hardware
Hans-Joachim Borchers, der sich mit der Weiterentwicklung der Uhrensoftware befasst und ich haben folgende Idee:
Wir sammeln Ideen für Erweiterungen der Software und der Hardware und führen intern eine Bestenliste.
Das meistgewünschte Feature wird als nächstes umgesetzt.
Wir machen das nicht länger öffentlich, um so ein höheres Überraschungsmoment zu sichern.
Richtet eure Wünsche bitte nur an folgende Adresse:
Die Evolution der Controllersoftware
Version 2.4
- Das Fading kann jetzt sehr langsam flackerfrei ablaufen. Max. Displayhelligkeit = 254!
- Durch die komplett neue Displayansteuerung läßt sich die Multiplexfrequenz nicht mehr einstellen.
Sie ist fest auf ca. 256Hz. Das Eingabefeld im NCC wird nicht mehr ausgewertet.
Version 2.1a
- Temperaturanzeige mit externem Sensor DS18S20 oder DS18B20
- in weitem Rahmen einstellbare Multiplexfrequenz
Version 2.0d
- Regioneinstellung "Sommerzeitumstellung USA 2006" entfernt
Version 2.0c
Hinweis zum Update alter Controller:
Ab der Controllersoftware Version 2.0c wird die Controllerplatine mit einem 16 MHz Quarz und zwei 22 pF Kondensatoren
(Q1, C16 und C17, siehe
Schalt- und
Bestückungsplan) bestückt, der bisher eingesetzte 32 KHz Quarz ist aus der Schaltung entfernt.
Das Layout der alten Controllerplatinen sieht diese Änderungen schon vor !
Weiterhin sind die Fusebits angepasst und da der interne Oszillator des Controllers nicht mehr benutzt wird,
ist die entsprechende Kalibrierroutine aus dem Bootloader entfernt.
- Neu: Synchronisation auf das RMC-Telegramm eines GPS-Empfängers mit und ohne PPS-Ausgang möglich
- Neu: Umstellung des Controllerhaupttaktes auf einen externen 16 MHz Quarz, der 32 KHz Uhrenquarz wird nicht mehr benötigt
Version 1.5b
- Komplett neue DCF77 Empfangsroutinen (0-, 1- und Minutenmarkenerkennung)
Die Auswertung des DCF-Telegramms ist so geblieben.
- Sporadisches Flackern der Röhren bei Dimmung behoben
- Neu: Wochenprogramm um zwei Optionen erweitert:
a) Benutze an dem Tag nur die Tag-Dunkelphase
b) Benutze an dem Tag nur die Nacht-Dunkelphase
- Neu: Datumanzeige Optionen
a) Keine Datumanzeige
b) Nur Datumanzeige
c) Datumanzeige einmal pro Minute (Sekunde 51-56).
Beim Wechsel zwischen Datum und Uhrzeit kann man wählen:
a) Das Display 1 Sekunde dunkeltasten
b) Fading benutzen
Beide Optionen können miteinander kombiniert werden.
- Skalierung für Parameter Fallback-Zeit geändert.
Die Zeit wird jetzt in ~ 1/10 Sekunden übergeben.
- Neu: Langer Tastendruck auf Taster 1 schaltet die Displayphase um.
Wenn das Display AUS ist, dann wird es auf Grundhelligkeit gestellt und wenn das Display irgendeine Helligkeit größer 0% hat, wird es ausgeschaltet.
Dieser Zustand gilt dann bis das Wochenprogramm/Dunkelphasenzeiten eine neue Vorgabe machen.
Version 1.4a
- Fixed: Bug in der DCF77 Paritätsbitauswertung (hatte sich ab der 1.2b eingeschlichen)
Version 1.4
- Fixed: Betriebsstundenzähleranzeige hat bei z.B. 120056 Stunden die beiden Nullen in der Mitte unterdrückt.
- Neu: Wochenprogramm für das Ignorieren der Dunkelphasen ist erweitert worden.
Es können jetzt auch Wochentage eingestellt werden, an denen das Display immer aus bleibt.
- Neu: Grundhelligkeit des Displays kann jetzt eingestellt werden.
Die Einstellung ist wirksam, wenn keine der Dunkelphasen aktiv ist.
- Neu: Es kann jetzt ein Intervall in Sekunden eingestellt werden, in dem dann das Datum für 1 Sekunde eingeblendet wird.
Version 1.3a
- Fixed: Helligkeitsstufen entsprechen wieder den Sollwerten. War ab V1.2 irgendwie untergegangen.
Version 1.3
- Neu: Automatische Erkennung der Signalpolarität des DCF77-Empfängers
- Neu: Dunkelphasen an bestimmten Wochentagen ignorieren.
Version 1.2c
- Fixed: UART Ausgabe hat das letzte Zeichen nicht ausgegeben.
- Neue Tastaturroutine (Button-Auswertung) spart 130 Bytes
Version 1.2b
- Bootloader etabliert
- Neue Funktion zur DCF77-Bit Auswertung (Plausibilitätsprüfung der Daten erstmal wieder raus)
- Display wird dunkel getastet, wenn ein Wert über den UART verändert wird
Version 1.2a
- Plausibilitätsprüfung der DCF Daten eingebaut (noch nicht komplett getestet)
- Fixed: Synctimeintervall wurde gelöscht bei Start der Uhr und offenem NCCC
- Compilerumstellung von avr-gcc 3.3 auf Version 3.4.3 (20050214)
Version 1.1
ab dieser Version nur noch lauffähig auf ATMega16
 |
Download Controllersoftware V1.1 (Quellcode in C) |
Version 1.0d
(letzte Version für den AT90S8535)
 |
Download Controllersoftware V1.0d (compiliertes HEX-File für den AT90S8535) |
- Tickerlampe leuchtet nach Synchronisierung mit DCF77 permanent
- kein Buzzerton bei Tastendruck und 0% Displayhelligkeit
- verbesserte Signalerkennung
Version 1.0c
- kein Wecken und Schalten im Modus Sync nach Reset
- korrigierte, nichtlineare Helligkeitsabstufung
Version 1.0b
- Fading auch bei gedimmten Röhren,
- Bereichsprüfung für die Schaltzeiten wieder drin.
- desweiteren erfolgt die Ausgabe der DCF-Zusatzinformationen jetzt korrekt.
Version 0.94
- bei 0% Helligkeit schaltet ein Taster-Druck für die Fallback-Zeit die Röhren auf 100% Helligkeit
- bei 0% Helligkeit wird für die Dauer des Alarms auf 100% Helligkeit geschaltet
- bei der Datumseingabe können keine ungültigen Tageswerte mehr gesetzt werden
- die Button-Routine ist nochmals überarbeitet worden, ein Taster wird jetzt nicht erst beim Loslassen
als kurz gedrückt erkannt, das ganze liegt irgendwie besser in der Hand
Version 0.93
- Helligkeitseinstellung erfolgt durch die Verkürzung der Einschaltdauer für jede Röhre, die Wiederholfrequenz bleibt dadurch gleich
- die Wiederholfrequenz ist deutlich erhöht worden
- die Helligkeit läßt sich in 10 Schritten von 0 bis 100 % für die Dunkelphasen einstellen, bei 0% brennen
nur noch die Glimmlampen ganz leicht damit man sieht, dass die Uhr läuft.
- das Fading und das Blinken erfolgen nach wie vor durch Auslassen bzw. Tauschen,
durch die beiden ersten Maßnahmen kann der Zähler für das Fading aber höher eingestellt werden und das ganze sieht über den
gesamten Helligkeitsbereich recht ordentlich aus
- Betriebsstunden werden nicht bei 0% Helligkeit gezählt
- die Start- und Ende-Zeiten für die Dunkelphasen werden nur noch in vollen Stunden angegeben
- die Dunkelschaltung erfolgt nur bei gesetzter (bzw. empfangener) Uhrzeit
- der Schaltausgang wird nur zu den angegebenen Zeiten an- bzw. ausgeschaltet, es erfolgt keine Bereichsprüfung (von-bis)
Version 0.92
- reduntante Speicherung von Daten im EEPROM
- Stundenoffset zur DCF-Zeit
- Gesamtbetriebsstunden werden nicht mehr im Display angezeigt
Version 0.91
- Die Funktionen zum Abfragen der Taster sind komplett überarbeitet.
Tastentöne werden nur noch erzeugt, wenn auch eine Funktion ausgeführt wird.
- Beim manuellen Stellen des Datums findet eine Gültigkeitsprüfung statt.
- Bei den nicht setzbaren Anzeigen kann nicht mehr in den Set-Modus geschaltet werden.
- Der Schaltausgang wird nicht mehr durch Tastendruck ausgeschaltet
- Die Anzeigeform der Betriebsstunden ist geändert worden.
(Gesamtstunden mit führenden Nullen, die rücksetztbaren ohne, beide ohne Glimmlampen)
- Die Software-Version wird nicht mehr angezeigt und kann statt dessen über RS232 abgefragt werden.
- Der Alarm-Buzzer erzeugt jetzt pro Sekunde 2 kurze Piepser statt einem Dauerton
- DCF-Impulse werden transparent auf der entsprechenden Glimmröhre angezeigt
- Der Synchronisations-Vorgang wurde in 4 verschiedene Modi unterteilt:
1. Synchronisation nach Neustart
2. Synchronisation im Betrieb
3. Synchronisation nach Fehlempfang
4. Synchronisation nach manuellem Stellen
Je nach Modus unterscheidet sich die Zeitübernahme und die Steuerung der Glimmlampen usw.
Die Modi können transparent im NCCC angezeigt werden.
- Die Zustandsanzeige der DCF-Dekodierung über RS232/NCCC ist erweitert worden.
- Der interne Ticker zur Erzeugung der Uhrzeit ist geändert von 32 Ticks/sek auf 128 Ticks/sek.
Damit können div. Einstellungen feiner abgestimmt werden.
- Die Routinen zur DCF-Dekodierung sind überarbeitet worden und sollten jetzt etwas stabiler arbeiten.
Durch die Umstellung des Ticker-Takts können bei Bedarf die Zeitfenster feiner justiert werden.
Durch die Unterteilung des Synchronisations-Vorgangs in verschiede Modi wird zusätzlich verhindert,
dass gültige oder manuell gesetzte Zeiten durch fehlerhafte Zeiten überschrieben werden.
Version 0.90
- erste DCF Auswertung und Datumanzeige
erste Version
- einfache Quarzuhr ohne Datum mit rudimentärer Stellmöglichkeit