ISP-Soundinterface V3       

      
Elektronik-Labor  Projekte  AVR Sparrow 


 

Im Laufe der Experimente vieler Betatester hat sich gezeigt, dass die Soundkarten der vielen Geräte unterschiedlicher sind als wir zuerst angenommen hatten. Insbesondere die Ausgangsamplitude ist sehr unterschiedlich und reicht von ca. 1 Vss bis 5 Vss. Die ursprüngliche Transistorschaltung kommt damit nicht klar. Deshalb jetzt ein anderer Versuch: Mit Komparatoren sollte man einen größeren Bereich verarbeiten können. Wer sich selbst ein Interface bauen will, sollte besser die Transistorschaltung überschlagen und gleich mit Komparatoren arbeiten.

Ein typischer Komparator wie der LM393 hat offene Kollektoren am Ausgang. Damit ist der Ausgang ähnlich wie beim Transistor-Interface. Am Eingang können aber schon Signale mit wenigen mV verarbeitet werden. Damit eindeutige Ruhepegel herrschen werden die nichtinvertierten Eingänge über den Spannungsabfall der Eingangsströme an 1 MOhm um einige mV hochgelegt. Weil die Eingangsspannung nicht über ca. 0,6 V gehen soll (um ein Übersprechen auf den jeweils anderen Eingang zu vermeiden) ist ein 3 : 1 Spannungsteiler vorgeschaltet. Hier ist auch gleich das für manche Soundkarten erforderliche Tiefpassfilter eingefügt.

Die Resetschaltung vereinfacht sich und wird nun direkt vom Datenkanal abgeleitet. Damit nicht später im Betrieb B0 einen Reset auslösen kann sind zwei Dioden nötig. Das RC-Glied erzeugt wie die alte Schaltung einige Impulse am Anfang der Übertragung. Die Zeitkonstante ist in dieser Schaltung relativ klein und reicht nur für die die neuen Sound-Files, die keine Lücken im MOSI-Datensignal mehr aufweisen. Mit der alten Version dürfte die Schaltung nicht mehr funktionieren.

Die Schaltung wurde zuerst mit dem Doppel-Komparator LM393 getestet, dabei war die Diode am Clock-Ausgang nicht nötig. Mit dem Komparator hat man den Vorteil, dass das Interface komplett abgeschaltet werden darf, weil die Ausgangstransistoren dann gesperrt sind.

Wer gerade keinen Komparator hat kann die Schaltung auch mit dem Doppel-OPV LM358 aufbauen, dessen Eingangsschaltung ganz ähnlich ist wie beim Komparator LM393. Dann sind allerdings alle drei Dioden nötig. Die Spannungsverhältnisse sind nicht ganz so günstig, weil der Ausgangsspannungsbereich begrenzt ist. Außerdem kann man nicht einfach die Betriebsspannung abschalten, weil dann insbesondere Reset heruntergezogen würde. Aber wenn man den Doppel-OPV an der Versorgungsspannung lässt, funktioniert es gut. Die Übertragung wurde im Bereich 1 Vss bis 3 Vss erfolgreich getestet.




Das Bild zeigt einen Testaufbau mit dem LM358. Am besten wären Schottkydioden, aber verwendet wurden Si-Dioden 1N4148, das funktioniert auch. Die 4,7-k-Widerstände wurden aus je zwei 10-k-Widerständen in Parallelschaltung gebildet. Die ganze Schaltung ist an B0, B2 und Reset angeschlossen. Man kann nun wahlweise beide Soundeingänge testen, den auf der Platine und den auf dem Steckboard. Kein Interface behindert das andere. AND-Verknüpfung…

Ralf Beesner wies auf eine Schwäche der Schaltung hin. Wenn ein Anwenderprogramm PB0 hochschaltet muss der Komparator dagegen ankämpfen, um einen Reset auszulösen. Ein Test hat zwar gezeigt, dass der Komparator stärker war, aber das ist keine saubere Lösung. Besser ist eine Schaltung ganz ohne die Dioden und nur mit offenen Kollektoren. Dafür werden drei Komparatoren benötigt, z.B. mit der folgenden Schaltung:

Schaltung mit Vierfach-Komparator LM339



In dieser Schaltung wurde auf die Spannungsteiler am Eingang verzichtet. Damit hat man die größte Empfindlichkeit. Andererseits kann die Schaltung übersteuert werden. Man muss also die Lautstärke passend einstellen.


Komparator-Übersteuerungsprobleme



Die Komparatorschaltung ist auch noch fehleranfällig und neigt zu Fehlfunktionen bei einer Übersteuerung. Um der Sache auf den Grund zu gehen habe ich einen Sinusgenerator am Soundeingang angeschlossen. Der Eingangs-Spannungsteiler hatte 10 k und 10 k. Gemessen wurde direkt am invertierten Komparatoreingang und am Ausgang. Das erste Oszillogramm zeigt noch eine korrekte Funktion. Allerdings sieht man, dass der Sinus unten etwas begrenzt wird.



Ein Blick ins Datenblatt erklärt das Messergebnis. Die Basis-Kollektor-Diode des PNP-Eingangstransistors beginnt zu leiten, wenn man am Eingang tiefer als -0,5 V geht. Tatsächlich gibt das Datenblatt einen Common Mode Bereich von 0 V bis 1,5 V bei 5 V Betriebsspannung an. Unter Null ist nicht vorgesehen, funktioniert aber in Maßen trotzdem.



Und es kommt noch schlimmer. Wenn man sehr stark in den negativen Bereich geht und einen Strom von mehr als ca. 10 µA durch die Basis-Kollektor-Diode schickt, kehrt sich die Funktion des Komparators um! Dann arbeitet der PNP-Transistor nämlich invers, d.h. mit vertauschtem Emitter und Kollektor bei geringerer Stromverstärkung. Nun entstehen auch für die negative Halbwelle Low-Signale.



Gibt man noch mehr Gas, dann werden die falschen Impulse länger, weil der kritische Begrenzungsstrom länger überschritten wird. Jedenfalls mache solche zusätzlichen Impulse die Programmierung unmöglich. Man muss also eine Übersteuerung unbedingt vermeiden.



Einen Sparrow habe ich mit einem Vierfach-Komparator LM339 umgerüstet. Gegen die Übersteuerung sind jeweils zwei Schottkydioden antiparallel an die Eingänge gelegt. Damit wird die Eingangsspanung auf +/-0,3 V begrenzt.  Allerdings gibt es auch bei zu schwacher Aussteuerung Probleme, weil die Ausgangsspannung des Komparators dann etwas flatterhaft ist. An einer Lösung wird noch gearbeitet. Die Idee ist, dass Reset erst bei ausreichend großer Eingangsspannung aktiv werden soll. 


Soundinterface V3.1 mit Komparator



Dieser Sparrow sollte gegen alle Grenzfälle immun werden und funktioniert nun hoffentlich an jedem System. Der erste Aufbau wurde mit einem Steckboard realisiert, damit ihn jeder leicht nachbauen kann. Die Suche nach einem besseren Komparator brachte keine brauchbaren Ergebnisse. Bei Nachfolgern des LM393 ist ebenfalls keine Spannung weit unter -0,3 V erlaubt. Deshalb wurden nun zwei Dioden-Begrenzer eingebaut. Eigentlich gehören da Schottkydioden hin, aber normale 1N4148 liegen eher in der Bastelkiste und gehen auch, wenn man zusätzliche 100-k-Widerstände zu den Eingängen vorsieht. Wer hier Schottkydioden einsetzt kann auf die 100-k-Widerstände verzichten.



(Achtung, der Widerstand von 4,7 k an der Reset-Leitung ist kritisch und kann zu Upload-Störungen im Zusammenhang mit einem zuvor geladenen App mit 9.6 MHz-betrieb führen. Die Reset-Schaltung muss noch verbessert werden.  Eine Lösung ist in Arbeit, möglicherweise von der Sound-Software her.)

Die neue Schaltung verwendet 1o-k-Ableitwiderstände am Eingang, damit eine eventuelle Gleichspannung am Soundkarten-Ausgange entladen werden kann. Es folgen die bewährten Tiefpassfilter gegen Verzerrungen, die durch übersteuerte Endverstärker (wie beim Nexus-Table bei 100% Lautstärke) entstehen können. Das gefilterte Signal wird dann auf +/-0,6 V begrenzt und gelangt über die 100-k-Widerstände an die invertierenden Komparatoreingänge. Es gibt daher auch bei extremen Signalspannungen keine Übersteuerung der Komparatoren mehr. Weil die Schaltung keinen Eingangs-Spannungsteiler hat kommt sie auch mit kleinen Signalen klar. Insgesamt können nun Signalspannungen zwischen 0,5 Vss und 5 Vss fehlerfrei verarbeitet werden.

Die nichtinvertierenden Eingänge sind an einen Spannungsteiler gelegt, der bei einer Betriebsspannung von 3 V etwa +30 mV für MOSI und SCK festlegt und etwa +90 mV für Reset. Dieser Unterschied löst ein manchmal beobachtetes Problem bei zu kleinen Eingangsspannungen mit unzuverlässigen digitalen Signalen. Erst bei Eingangspegeln über 90 mV gibt es ein Reset-Signal. Dann sind auch die Daten- und Clock-Signale bereits sauber und eindeutig.

Als Faustregel kann nun gelten, dass die Lautstärke bei allen System auf 80 % eingestellt werden soll. Aber auch übersteuerte Signale oder extrem kleine Signale können keine fatalen Fehler wie zufällige Änderungen der Fuses mehr bewirken.




Das Oszillogramm zeigt ein stark verzerrtes Clocksignal (Nexus 7, 100 % aufgedreht) direkt am Eingang der Schaltung und nach der Filterung und Begrenzung. Mit diesem Ergebnis hat der Komparator keine Probleme mehr.



Damit das ganze möglichst stabil und ohne künftige Kontaktprobleme arbeitet habe ich eine zweite Version der gleichen Schaltung auf der Steckboardplatine von Modul-Bus aufgebaut. Die Hoffnung ist, dass dieses System nun an allen Soundkarten problemlos läuft. Über Rückmeldungen würde ich mich sehr freuen.


Soundinterface V3.2 



Die entscheidende Verbesserung bringt ein kleiner Kondensator mit 47 pF an der SCK-Leitung. Das Problem waren die besonders steilen fallenden Flanken des Komparator-Ausgangs. Durch Streukapazitäten konnten falsche Impulse von der Datenleitung auf die Cklockleitung streuen. Weil es extrem kurze Spikes waren konnten sich diese Störungen nur auswirken, wenn der Controller mit 9,6 MHz lief und fielen im Normalfall mit 1,2 MHz nicht auf. Es gab schon vorher mal Rückmeldungen ähnlicher Probleme: Wenn ich die Oszi-Messspitze dranhalte funktioniert es. Im Nachhinein ist klar, auch da waren schon solche Spikes die Ursache.


Im Laufe der Fehlersuche war zuerst die Reset-Schaltung in Verdacht geraten und wurde deshalb umgebaut. Der kurze positive Impuls nach dem ersten Reset wird nun durch Software erzeugt. Das neue Soundverfahren ist bereits im Fuse-Editor und im Hex2Wav-Konverter eingebaut und ist kompatibel zum Transistor-Sparrow. Wenn es sich weiter bewährt soll das Verfahren auf alle Sparrow-Apps übertragen werden.

Geändert wurde auch die Eingangsschaltung, jetzt mit Schottkydioden, wobei zwei Widerstände entfallen. Und die letzte Änderung betrifft die LED2, die jetzt ganz konventionell an Masse liegt. Damit ist B4 frei für beliebige Anwendungen.


Der Sparrow R2



http://tiny.systems/article/sparrowR2.html

Die neue Platine ist da und wurde natürlich sofort mal aufgebaut. Der erste Test war erfolgreich. Spannend bleibt noch, was unsere Betatester sagen. Die Schaltung wurde noch leicht angepasst. Es gibt jetzt zwei Entstörkondensatoren an B0 und B2. Am Spannungsteiler wird noch eine Feinabstimmung getestet. Mit R8 = 10 kOhm statt 27 kOhm steigt die Empfindlichkeit, was bisher noch keinen Nachteile gezeigt hat.

Achtung, R und L haben die Plätze getauscht. Das Kabel muss gegenüber der ersten Version nun anders herum aufgesteckt werden. Außerdem gibt es jetzt zwei Anschlüsse für die Betriebsspannung. Der Anschluss  "+" versorgt den Controller (Vcc). Der Anschluss "U" versorgt das Programmier-Interface und den LM339 (Vcc2).  Damit hat man die Möglichkeit, den Controller allein sehr stromsparend zu betreiben. Ein Programmierstecker würde dagegen Vcc und Vcc2 verbinden und damit beide Teile versorgen.  Ein weiterer Vorteil dieser Trennung besteht darin, dass ein versehentliches Ansprechen der Schnittstelle ohne VCC2 leicht verhindert werden kann.




Erste Erfahrungen mit dem Sparrow R2



Alter und neuer Sparrow im Einsatz bei Hermann Nieder

Der Erfahrungen mit der neuen Platine sind überwiegend positiv.  Sie kommt jetzt mit sehr viel kleineren Signalpegeln aus, man muss nicht immer voll aufdrehen. Einige wenige Geräte machen noch Probleme. Nach den Ursachen wird gesucht. Bei einer Platine hatte ich ein paar Lötpunkte vergessen, wonach sie trotzdem meinen ersten Test bestanden hatte, später dann aber Ärger verursachte. Deshalb der Tipp an alle Betatester: Einmal scharf mit der Lupe kontrollieren...

Dann ist noch ein Software-Problem aufgefallen. Die ersten Apps bis Nr. 23 und der Fuse-Editor waren noch nach dem alten Standard programmiert. Neu ist, dass Reset am Anfang einmal kurz zurück genommen wird und länger gehalten wird. Vor allem das letzte ist bei R2 wichtig, weil die Reset-Zeitkonstante kürzer ist. Jetzt sollen die Apps erneuert werden, auch der Fuse-Editor. Derzeit sollte man beim Testen des Sparrow R2 bevorzugt die neueren Apps nutzen. 

In Bezug auf die Reset-Impulskette ist die neue Platine anspruchsvoller als die alte. Wenn z.B. durch einen Schluckauf des Betriebssystems oder eine schwache Netzverbindung kurze Aussetzer im Datenstrom passieren, geht Reset kurz hoch und unterbricht das weitere. Und das Ende muss >5 ms nach der Übertragung Reset low halten, damit die letzten Daten gebrannt werden. Ein Blick mit dem Oszi auf die Reset-Leitung zeigt ob alles richtig läuft. Während der Übertragung sollte die Spannung immer deutlich unter 0,2 V bleiben.



Der Spannungsverlauf am Reset-Pin

Beim Start der Übertragung wird Reset heruntergezogen und geht dann noch einmal für weinige Millisekunden hoch. Diese Reset-Unterbrechung hilft dafür zu sorgen, dass beim zweiten Reset klare Zustände an MOSI und SCK herrschen. Danach aber wird Reset mit jedem Impuls an der Datenleitung wieder heruntergezogen. Man sieht ganz kleine Sägezahnimpulse bis ca. 0,1 V.

Weitere Infos zur Software-Emtwicklung und zu positiv getesteten Endgeräten: Der Sparrow R2 im Test    




Elektronik-Labor  Projekte  AVR Sparrow