Experimente mit Sound UART

Serielle Daten zum Sparrow übertragen. Die neue SoundUART-Schnittstelle macht dies nun möglich. Zur Veranschaulichung habe ich den Testaufbau zur Entwicklung des SoundUART Konverter erweitert.
Testszenario "Der Sparrow als Papagei"
Ein einfaches Szenario soll zeigen was der Sparrow in Bezug auf serielle Datenübertragung so drauf hat. Es sollen beliebige Daten über die SoundUART-Schnittstelle (PB2 am Sparrow/ATiny13a) empfangen und über eine RS232-Verbindung an PB0 weitergeleitet werden. Ein simples UART-Echo also.
Der Versuchsaufbau
Der Testaufbau ist aus Sicht des Sparrow in zwei Teile aufgeteilt (Empfangs- und Sendeseite). Empfangsseitig horcht der Sparrow an der SoundUART-Schnittstelle auf eingehende Zeichen. Generiert werden diese mit dem neuen SoundUART Konverter. Einfach den Sparrow wie vom Programmiervorgang gewohnt an den Kopfhöhrerausgang anschließen.
Sparrow/ATtiny13a und RS232 per Audio
Jetzt ist der richtige Zeitpunkt gekommen, die SparrowApp aufzuspielen. Dabei könnt Ihr zwischen zwei Versionen wählen. Einmal zwischen einer invertierten und einer nichtinvertierten Ausgabe für die Sendeseite.
Die invertierende Version ist für den Anschluss an eine normale RS232-Schnittstelle (bitte Pegel beachten) bzw. einen USB-Seriell-Adapter vorgesehen. Für den Einsatz der USB-Experimentierplatine, so wie in meinem Aufbau verwendet, muss die erste der beiden Apps (nichtinvertierte Ausgabe) aufgespielt werden. Die Anwendungen für diesen Test findet Ihr hier:
Die Programme sind jeweils in Bascom geschrieben. Den Download gibt es hier oder auf der jeweiligen Seite bei den Referenzen. Ist die App übertragen geht es nun mit der Sendeseite weiter.
Auf der Sendeseite (gesehen vom Sparrow) wird jetzt die USB-Experimentierplatine angeschlossen. Der Aufbau ist in der Abbildung oben gut zu erkennen. TxD befindet sich an PB0 und wird mit RxD (USB-Experimentierplatine) verbunden. Und natürlich die Masseleitung von G nach GND nicht vergessen.
Hinweis!
Eine Übertragung von Programmen ist mit dem angeschlossenen USB-Seriell-Adapter an PB0 nicht möglich. Für eine Programmierung einfach den Pin kurz abklemmen.
Wir wollen etwas sehen
Der Sparrow bestätigt den Empfang mit einem kurzen aufleuchten der grünen LED. Ein gesendetes Byte müsste nun seinen Weg durch die gesamte Kette zum angeschlossenen Rechner gefunden haben. Ob das auch wirklich funktioniert hat überprüfen wir mit einem Terminalprogramm. Ich habe für den Aufbau die Terminalfunktion von Sparrow_RS232 verwendet.
Empfangene Daten im Sparrow_RS232 Programm
Die Übertragungsrate wird wie auf der Empfangsseite auf 300 Baud eingestellt. Tatsächlich, es funktioniert. Konvertierte Bytes werden vom Sparrow erkannt, weitergeleitet und im Terminal angezeigt.
Übertragung Fehlerhaft?
Die Datenübertagung bei RS232 übermittelt nach dem Startbit das niederwertigste Bit zuerst. Da wir im Sparrow keinen genauen Takt zur Verfügung haben kann es mit größeren Bytewerten zu Interpretationsfehlern kommen. Serielle Konverter sind dabei weniger anfällig. Beim Sparrow selbst schafft eine Kalibrierung des Oszillators Abhilfe. Alternativ kann auch eine Justage der Übertragungsrate im SoundUART Konverter das Problem lösen.
Links und Referenzen: