TinyHexEditor: Onboard Programming auf dem ATtiny13a

Die Tage habe ich mal meinen Hexdump-Code zu einem rudimentären aber nutzbaren Hex-Editor aufgebohrt. Damit lässt sich der kleine AVR in Verbindung mit einem SPI-Nokia-Display ohne sonstige Hardware programmieren. Nicht einfach aber dafür mit vollem Zugriff auf die Hardware.
Verwendete Hardware:
• Attiny13a
• Nokia 5510 Display
Bedienung:
• Editormodus starten: Port 0 beim Start auf Masse ziehen
• Eingabe: kurz-weiter; lang-bestätigen
• Organisation: Seitenwahl->Zeilenwahl->Wortwahl->Worteingabe->Speichern
• Abbruch: Stromversorgung trennen
Aufbau und Funktion:
Der Programmcode des Editors befindet sich am Ende des Speichers. Das hat den Vorteil, dass man mit dem eigenen Programm auch die Interruptvektortabelle definieren kann. Der Befehlszähler beginnt jedoch immer bei 0. Deshalb ist der erste Befehl ein Sprung in den Programmcode des Editors. Zur Vereinfachung zeigt dieser auf die letzte Adresse im Speicher, die man sich beim Überschreiben des Resetinterrupts besser merken kann, will man nochmal beim Neustart in den Editormodus. :) Selbst geschriebene Programme können nach dem ersten Wort angefügt werden, oder man kümmert sich selbst in seinem Code um den Aufruf des Editors. Die einzige Beschränkung gegenüber einem blanken Attiny13 ist:
• nur noch 25% freier Programmspeicher verfügbar
Wichtig: In den Fusebits muss die Selbstprogrammierung aktiviert werden. (Fuse 6AEF statt 6AFF) Auf eine Änderung des Reset Pins wurde bewusst verzichtet. Damit lässt sich der Controller auch noch per ISP programmieren.
Links und Referenzen:
Download: