Inhaltsverzeichnis

TPS/SPS Assembler

Die Idee kam mir im Zusammenhang mit der Arduino_TPS. Es ist zwar toll, mal eben an der Hardware das Programm ändern zu können. Das funktioniert im Wohnzimmer oder am Schreibtisch auch sehr gut. Ich setzt die SPS aber eben auch in meinen RC Modellen ein und da habe ich selten die Möglichkeit, nach Einbau, an die Tasten zu gelangen. Geschweige denn in aller Geduld die Codes einzuhacken. Ein smartes Handy hat ja mittlerweile jeder dabei. Also dachte ich mir eine Möglichkeit aus, wie ich mit Handy, etwas Hardware und einem Internetdienst meine Programme in die TPS bekomme.

Dazu braucht es

Der tatsächliche Download des Programms auf die TPS erfolgt über ein serielles Protokoll. Das kann man sogar mit einem einfachen Terminalprogramm (oder dem eingebauten seriellen Monitor in der ArduinoIDE) machen. Gestartet wird dieser neue Programmiermodus, wenn nach einem Reset der TPS die SEL (und zwar nur Diese) Taste gedrückt bleibt. Das Protokoll kennt nur 3 Befehle R(ead), W(rite) und E(xit). Mit Read wird das aktuelle Programm ausgegeben und mit Write ein neues eingelesen. Format ist bei beiden Optionen Intel HEX. Mit Exit oder einem erneuten Reset verlässt man diesen Modus wieder.

Um mit dem Handy mit der TPS zu kommunizieren, braucht man zusätzlich einen USB/Seriell-Konverter. Die Gängigsten sind findet man unter der Bezeichnung FTDI. Das ist ein einfacher USB Seriell Konverter, der sowohl mit dem PC wie auch mit einem Handy funktioniert. Weiterhin muss das Handy USB OTG unterstützen. (Einfach mal bei seinem Handy googeln.) Damit haben wir eine einfache serielle Schnittstelle am Handy. Jetzte fehlt nur noch ein Terminalprogramm auf dem Handy, fertig.

Zu allerletzt muss man seine Programmidee in das IntelHEX Format konvertieren. Dazu dient dieser kleine Service hier auf der Webseite. Der Assembler übersetzt, wie jeder andere Assembler, handgeschriebenen Mnemonic Code in ein maschinenlesbares Programm. Hier eben in ein Programm für die TPS.
Dabei werden folgende Features unterstützt:

Die Online-Version findest du hier: Online TPS Assembler public BETA
Dabei werden folgende Mnemonics unterstützt:

Programmgrößen

Jede Hardware hat andere max. Programmgrößen.

* Alles über 256Byte kann nur durch die Verwendung von Unterroutinen (DFSB und CASB) benutzt werden.

Upload der Daten

Mit dem Online SPSAssembler kannst du deinen Quellcode eingeben und kompilieren lassen. Als Ausgabeformat gibt es ein einfaches Textfile mit den entsprechenden Darstellung zur direkten Eingabe in die TPS.
Oder aber du kannst dir das ganze auch als Intel HEX File ausgeben lassen. Meine Arduino_TPS und die Tiny_TPS können beide das Format über die serielle Schnittstelle empfangen. Dazu sind folgende Schritte nötig:

Serieller Anschluss

Beim ATTiny84 werden dazu die Pins 11 (RX) und Pin 12 (TX) verwendet.
Benutzt wird ein Protokoll mit 9600Baud, 0 Parität, 1 Stoppbit.

Der Anschluss erfolgt bei der Tiny_TPS Platine an der Input Leiste.

Pin Signal FTDI
2 Din.2, TX RX
3 Din.3, RX TX
5 GND GND