Sparrow über RS232 programmieren      

Elektronik-Labor  Projekte  AVR  Cheepit               




Anlass für diese Entwicklung war der vielfache Wunsch, den Sparrow auch mal offline programmieren zu können. Eine Lösung über die Soundkarte ist relativ schwierig, weil es hier eine große Hardware-Vielfalt gibt. Aber die serielle Schnittstelle leistet dasselbe, egal ob es sich um eine echte COM-Schnittstelle oder um einen USB/Seriell-Adapter handelt. Genau wie beim Hex2Wav-Converter kann man nun ein Hexfile laden und als Datenstrom an den Sparrow senden. Der serielle Anschluss kann parallel zur Audiobuchse liegen. Dem Sparrow ist es egal, über welches Kabel er programmiert wird. 



Download: Sparrow_RS232
(Update 24.3.15. Das Problem war, dass die Übertragung nur bis zu 75% des Flash korrekt war. Bei 75 begann der Bootlader im Lernpaket Mikrocontroller, aus dessen Software dieses Programm entstanden ist. Leider habe ich beim Umbau etwas übersehen. Dieser Fehler hat mir selbst viel Sucherei an der falschen Stelle bereitet. Sorry an alle für den Frust, der hier verursacht wurde. Aber jetzt ist es korrekt, genauso wie die invertierte Version weiter unten. )

Wer das Lernpaket Mikrocontroller kennt, sieht die Verwandtschaft. Das in Delphi entwickelte Programm Sparrow_RS232.exe  wurde aus der Software zum Lernpaket abgeleitet und wird auch ganz ähnlich bedient. Es funktioniert genauso mit dem ersten Sparrow wie mit R2. Der Startbildschirm zeigt den Sparrow mit angedeutetem Programmierinterface. DTR (Pin 4) tritt an die Stelle des rechten Kanals und erzeugt das invertierte MOSI-Signal und die erforderlichen zusätzlichen Reset-Impulse. TXD (Pin 3) ersetzt den linken Kanal der Soundkarte und liefert das SCK-Signal. Zusätzlich muss natürlich auch GND (Pin 5) verbunden werden.



Also erstmal muss man die verwendete COM-Schnittstelle auswählen. Das Programm merkt sich die die Auswahl für den nächsten Start.



Unter dem Reiter Upload findet man die Schaltfläche Hex-Datei laden. Ein Klick öffnet ein Dateimenü, in dem man die gewünschte Datei auswählt.



Die Hex-Daten werden eingelesen und angezeigt. Dann kommt die eigentliche Datenübertragung mit einem Fortschrittsbalken. Man sieht die Aktivität an der grünen LED des Sparrow. Am Ende meldet die Software ok. Aber das steht da immer, sogar wenn kein Sparrow angeschlossen war, denn es gibt ja keine Rückmeldung. Zusätzlich im Vergleich zum Lernpaket Mikrocontroller ist die Reload-Taste hinzugekommen. Sie bewährt sich bei der Programmentwicklung. Man testet, kompiliert neu und testet wieder. Der Name der Hex-Datei bleibt gleich, aber der Inhalt ändert sich.



Und dann gibt es da noch das Terminal. TXD ist ja schon verbunden und kann über B2 empfangen werden. Für die Gegenrichtung müsste man noch B1 mit RXD verbinden. Und DTR kann verwendet werden, um einen Reset auszuführen.

Und warum dann nicht gleich das Lernpaket Mikrocontroller? Es gibt da einige wichtige Unterschiede. Neu ist, dass man nun eben auch die Soundkarte nutzen kann und dass kein Bootlaosder im Spiel ist. Das Lernpaket Mikrocontroller brauchte vier Leitungen, der Sparrow nur noch zwei. Der entscheidende Trick ist, dass das Reset-Signal aus dem MOSI-Signal abgeleitet wird. Das bedeutet zugleich, dass man noch den RTS-Ausgang frei hat. Ideal für eine alternative Stromversorgung.



Wer die Platine des Lernpakets hat kann die Stromversorgung gleich mitverwenden. Auf der Platine befindet sich ein 5-V-Regler, der über RTS gepowert wird. Zusätzlich wurde GND, TXD und DTR direkt angelötet. Nun wird alles aus der Schnittstelle versorgt. Keine leere Batterie mehr, egal wie lange die Entwicklung dauert.

Die Verwendung der seriellen Schnittstelle zur Programmierung des Sparrow dient in erster Linie der Entwicklung neuer Apps. Während ein Entwickler vielleicht lieber offline arbeit, ist für den typischen User meist die Sound-Schnittstelle bequemer oder auch die einzige verfügbare Schnittstelle.


Sparrow over USB




Der hier verwendete USB/COM-Adapter mit einem FT232R stammt aus dem Lernpaket Elektronik-Start mit USB und ist auch bei Modul-Bus zu bekommen (USB-Experimentierplatine mit dem FT232R). Bei den ersten Versuchen gab es Probleme, weil der FR232R zuerst auf den invertierten Betrieb umgestellt werden muss, der auch im Lernpaket verwendet wird. Dazu dient das Programm MProg.



Außerdem ist es wichtig, die Option High Current I/O's einzustellen, weil nur so ausreichend steile Impulse entstehen, die das Tiefpassfilter am Eingang der Sparrow ordentlich ansteuern. Alle Einstellungen habe ich in der Datei MSR2.ept abgelegt.

Download: MSR2Ept.zip

Weil ich lange nicht mehr mit MPROG gearbeitet hatte, hat es etwas länger gedauert, bis alles korrekt lief. Man muss erst die ept-Datei laden, dann den Chip mit Device/Program programmieren und danach unbedingt einmal den USB-Stecker abziehen und neu verbinden. Der FTDI meldet sich dann ganz neu an und hat auch erstmal wieder eine neue COM-Nummer, die ich grundsätzlich auf COM2 umstelle.

So, nun funktioniert es mit der gleichen Software wie für die RS232. Allerdings wesentlich langsamer, weil jeder Zugriff auf die Datenleitungen im Schnitt o,25 ms braucht. Der Reset-Kondensator im Sparrow reicht mit 100 nF gerade noch aus. In einigen Fällen könnte es aber nötig sein, ihn extern zu vergrößern. Nach einer besseren Lösung wird noch gesucht. Eventuell geht es mit dem BitBang-Modus schneller.

SparrowRS232 invertiert



Download: Sparrow_RS232_inv.zip
(Update 24.3.15)

Für den Fall, dass ein vergleichbarer Adapter mit einem USB-Chip einer anderen Firma verwendet wird, der die Invertierung der Leitungen nicht ermöglicht gibt es nun diese Software-Lösung. Dieses Programm erzeugt invertierte Pegel. Es wurde mit einer FT232-Platine mit dem Chip im Originalzustand  getestet.

Erfahrungsbericht von Ralf Beesner: Die Geschwindigkeit scheint sich in der Tat etwas verlangsamt zu haben. Ich habe das gleiche File erst an einer echten seriellen Schnittstelle mit LPMicroISP.exe ausprobiert, da waren es 10 Sekunden, mit Cheepit Sparrow waren es an der echten Schnittstelle 15 Sekunden und an dem Prolific-Wandler dann 20 Sekunden.


Siehe auch: ISP-Adapter mit Sparrow_RS232


Elektronik-Labor  Projekte  AVR  Cheepit