Archiv der Kategorie: Elektronik

SONY NW-A105 Walkman, Anschluss im Auto

Nachdem ich mir einen qualitativ hochwertigen MP3/FLAC/HiRes-Audioplayer zugelegt habe, hatte ich wenige Tage später ein kleines Problem, für welches eine Lösung gefunden werden musste. Da ich ein nicht mehr ganz neues Auto fahre, welches noch keine Bluetooth-Audio Verbindung bereitstellt, muss der Player in klassischer Weise mit einem 3.5mm Klinke-Kabel (Stecker auf Stecker) angeschlossen werden. Der Kopfhörerausgang lieferte aber kein Signal, wenn ich den Player an die Line-In-Buches meines Autos angeschlossen hatte. Nach einiger Recherche im Internet stellte sich heraus, dass der Player die Ausgabe an der Kopfhörerbuchse abschaltet, wenn diese nicht benutzt wird, um bei der Wiedergabe über Bluetooth beispielsweise Strom zu sparen. Dabei misst der Player offensichtlich, ob ein Kopfhörer angeschlossen ist. Ist der Anschluss zu hochohmig (wie der Eingang meiner Audio-Anlage in meinem Auto) gibt es keine Musik. OK, ich hatte noch etwas Material in meiner Bastelkiste, um dem Player einen Kopfhörer vorzugaukeln. Dazu schloss ich 2 Stück 3.5mm Klinkebuchsen direkt parallel und verband sie Rücken an Rücken, so dass eine lineare Baugruppe dabei zustande kommt, die man in die Leitung einschleifen kann. Dann habe ich von den jeweiligen Audiokanälen L und R jeweils einen Widerstand von 390 Ohm an Masse angeschlossen. Dies genügt, dass die Buchse des Players aktiviert wird. Der Klang wird nicht negativ beeinflusst und auch das Signal ist kräftig genug, dass die Musik in gewohnter Lautstärke im Auto hörbar ist. Hier ist der Aufbau zu sehen:

Braun ist Masse, gelb ist der rechte Kanal und blank ist der linke Kanal. Das ganze Konstrukt wurde noch mit Schrupfschlauch eingeschweißt. Durch den niederohmigen Abschluss ist die Schaltung nicht empfindlich gegen Störungen, so dass auf eine Schirmung verzichtet werden konnte.

Die Kupplung kann in beiden Steckrichtungen gleichermaßen verwendet werden. Sie verrichtet seit Wochen ihren Dienst zur vollsten Zufriedenheit.

Laut Anleitung des Players gibt dieser auch ein Signal aus, wenn man ihn erst nach dem Einstecken des Line-Out/Line-In-Kabels einschaltet (also von komplett aus, nicht Standby), aber das ist einerseits umständlich, wenn der Player ohnehin schon läuft und außerdem hat es bei mir nicht funktioniert oder ich habe etwas übersehen.

Funkel_01

Auf der Suche nach einer sinnvollen Anwendung, um teilentleerten Lithium-Knopfzellen noch den Rest an Energie auszusaugen, bevor man sie in´s Recycling gibt, habe ich mir eine kleine Schaltung zusammengefrickelt. Meist funktionieren Geräte mit halbleeren Batterien nicht mehr richtig oder stellen den Betrieb ganz ein. Aus Fernbedienungen für Funksteckdosen oder Innenraumthermometern fallen immer mal wieder Knopfzellen wie die CR2032 an, die noch mehr als die Hälfte an Energie enthalten. Mit diesem Projekt kann der Rest der Ladung noch sinnvoll verbraten werden, beispielsweise als Signalgeber an der Stelle, wo man den Autoschlüssel zuletzt hingelegt hat… Weiterhin kann die Schaltung im Modellbau Anwendung finden. Weil ich mit dem Prototypen zufrieden bin, habe ich auch gleich noch ein Layout dafür gezeichnet, um die Serienfertigung anzustoßen ;-).
Konkret geht es hier um einen winzigen Mikrocontroller, der mit 3 Pins 6 LEDs ansteuert. Wie das? Nun, das Prinzip ist nicht neu und nennt sich „Charlieplexing“, was eine besondere Form des „Multiplexing“ ist, falls dieser Begriff geläufiger ist. Hierbei nutzt man die Tatsache, dass ein Controller einen Pin auf 0 (also Masse) auf 1 (also Plus) oder hochohmig (nichts von alledem) schalten kann. Dadurch kann man mehrere LEDs parallel an die Pins anschalten, genauer gesagt: antiparallel und so mit einer geschickten Ansteuerung immer die gewünschte LED leuchten lassen. Bei 2 Pins, kann man maximal 2 LEDs steuern, bei 3 Pins sind es schon 6 LEDs und bei 4 Pins gar 12 LEDs…

So sieht das ganze Konstrukt aus. Als Controller werkelt ein Microchip ATTiny10 (früher ATMEL), ein Winzling im SOT-23 Gehäuse mit 3 nutzbaren I/O-Pins.

Die Bauteilewerte sind:
C1: Keramik, Tantal oder Polymer, 10µF 6.3V (1206)
C2: Keramik 100nF/16V (0402)
R1: 10kOhm (0402)
R2…R4: jeweils 150 Ohm bis 330 Ohm, je nach LED und Spannung (0402)

Die Schaltung funktioniert von 2V bis 5.5V, wobei bei niedrigen Spannungen nur rote LEDs in Frage kommen, die eine Flussspannung um 1.6V haben. Blaue und weiße LEDs lassen sich erst ab etwa 4V Eingangsspannung verwenden. Es sollten immer gleiche LEDs mit der selben Farbe für einen Aufbau verwendet werden, da es sonst prinzipbedingt Leuchtunterschiede gibt.

Der Controller ist, aufgrund seines kleinen Speichers von nur 1kByte, in Assembler programmiert. Über das jeweils in den Controller geladene Programm kann man mit den LEDs, je nach Anwendung , die lustigsten Blinkeffekte ausgeben. Hierbei kann man entscheiden, ob das Ganze wie in meinem Fall sehr lange aus einer Batterie blinken soll und somit sehr wenig Strom verbrauchen soll, oder ob es als Effekt in einer Umgebung arbeitet, wo die Spannung ohnehin immer zur Verfügung steht. Der Kreativität sind nur duch den kleinen Speicher Grenzen gesetzt.

Die Platine ist 14.7 x 13.5mm klein, also recht kompakt. Das Auflöten der Teile erfordert eine spitze Pinzette, wahrscheinlich eine Sehhilfe und zwei ruhige Hände ;-). Die Platinen kann man recht günstig bei Online-Anbietern bestellen, ich habe mit AISLER gute Erfahrungen gemacht, was Qualität, Schnelligkeit und Preis angeht.

EAGLE Dateien:
CharlieBlinker_T10.zip

Programm zum Aufspielen mit Microchip Studio 7:
Funkel01_Test1.zip

Für das Programmieren des Controllers ist ein Programmer mit TPI-Programmierschnittstelle notwendig (ATMEL ICE, STK600, AVR-ISP mkII, AVR-Dragon) oder ein entsprechend programmierter Arduino. Um den ATTiny10 programmieren zu können, muss die Betriebsspannung 4.5…5.0V betragen.

Hier ein kurzes Video von der Funktion oben verlinkten Programms, als Signalgeber mit minimalem Stromverbrauch. Der Controller schläft 4 Sekunden, rotiert die LEDs durch und schläft wieder. Im Schlaf mit eingeschaltetem Watchdog verbraucht der Zwerg nicht einmal 10µA.

Das erste Programm, Stromaufnahme gemittelt nur etwa 200µA

Lauflichtblinker
Hier ein Programm für einen Blinker wie in einem modernen Auto. Dieses Progamm ist kein Stromsparprogramm, der Controller ist dauerhaft aktiv. Alle LEDs können quasi zeitgleich leuchten.

Funkel_01_Strip_Light_Flasher


Zufallsgenerator
Hier ein Programm, bei dem jede LED durch einen Zufallsgenerator angesteuert wird. Wie auf der alten Enterprise im Maschinenraum ;-).

Funkel_01_Randomizer


Spannungsgesteuerter Bargraph
Dieses Programm gibt die Höhe der angeschlossenen Betriebsspannung als Leuchtbalken aus. Im Programmkopf können Parameter für die ADC-Startspannung und die Schrittweite des jeweils höheren Leuchtpunktes eingestellt werden. Als Anwendung kommen beispielsweise ein Schnelltester für LiPo- oder LiIon-Akkus oder ein Spannungswächter in Frage. In diesem Fall sollten rote LEDs verbaut werden, da sie die niedrigste Flussspannung haben, die in diesem Beispiel für die Messung der Betriebsspannung in einer Dunkelpause als Referenz genutzt wird. Somit werden keine zusätzlichen Bauteile benötigt.

Funkel_01_VC-Bargraph


Eieruhr
Dieses Programm enthält einen Countdow-Zähler für 6 Minuten. Die aktuelle Zeit wird durch die Länge des Leuchtbands angezeigt, die obere Minute blinkt. Jede Minute wird das Leuchtband um eine LED kürzer. Ist die Zeit abgelaufen, wird ein schnelle „Knight-Rider-Leuchteffekt“ für 10 Sekunden angezeigt, danach geht der Controller in den Tiefschlaf mit unter 0.1µA Stromaufnahme. Daher kann die Schaltung dauerhaft an der Batterie verbleiben. Die Zeit kann mit einem Taster zwischen GND und Reset-Pin (RST Lötauge auf der Platine) neu gestartet werden. Im Programmkopf kann ein Parameter eingegeben werden (Standardwert: 199), um die Ganggenauigkeit der Sekunde einzustellen.

Funkel_01_Countdown-Timer


Weitere Programme mit anderen Lichteffekten und Funktionen werden folgen.

Zoom H5 / Zoom H6 Remote Protokoll

Hier finden sich einige Live-Mitschnitte des Zoom H5 / Zoom H6 Remote-Protokolls zwischen der Kabelfernbedienung und dem Recorder.

Die Beschreibung des Zoom H6 Protokolls erfolgt weiter unten.

 

Zoom H5 Remote Protokoll

 

Vielleicht möchte jemand den Zoom H5 nutzen, um diesen zu einer (DSLR) Kamera zu synchronisieren. Dabei bietet sich das Starten und Stoppen mittels des Remote-Anschlusses am Recorder an. Die Daten werden mit 2400 Baud, Startbit, 8 Datenbits, keine Parität, 1 Stoppbit seriell im Voll-Duplex übertragen. Die Versorgungsspannung und die Datenpegel liegen bei 3.3V.

Die Pinbelegung des Fernbedienungssteckers ist im Bild zu sehen, welches ich mir hier geliehen habe: http://www.apm-motionpictures.de/de/h4ncontrol

Die Mitschnitte wurden mit einem Logic-Analyzer erstellt. Alle Bilder lassen sich vergrößern, wenn man sie anklickt. Die beiden oberen Zeilen geben die Datentelegramme der Fernbedienung wieder, die beiden unteren Zeilen die Datentelegramme des Recorders (als Bitstrom und dekodiert). Der Recorder sendet viele der LED-Kommandos mehrfach, immer wenn sich an den LED-Zuständen im Recorder etwas ändert. Die Auswertung in der Eigenbaulösung muss daher jeden empfangenen Befehl verarbeiten. Es werden immer dann LED-Kommandos zur Fernbedienung gesendet, wenn entweder am Recorder eine Taste gedrückt wird, die den Zustand der LED(s) verändert, oder wenn eine solche Taste an der Fernbedienung gedrückt wird. Von der Fernbedienung muss jeder Befehl nur ein einziges Mal gesendet werden. Der Recorder verschickt stets 3-Byte-Befehle, das erste Byte hat immer Bit 7 und Bit 3 gesetzt. Die Fernbedienung verschickt stets 2-Byte-Befehle, das erste Byte hat immer Bit 7 gesetzt. Eine gedrückte Taste überträgt einen bestimmten Wert größer/gleich 0x80, 0x01. Eine losgelassene Taste überträgt immer den Wert 0x80, 0x00.

Die Fernbedienung funktioniert erst nach einer erfolgreichen Anmeldung am Recorder. Diese Anmeldung ist hier zu sehen:

 

Nachfolgend werden alle Datentelegramme gezeigt, die beim Drücken einer Taste auf der Fernbedienung von dieser gesendet werden, gegebenenfalls mit einer Antwort durch den Recorder, falls LEDs verändert werden.

Taste Volume +:Taste Volume -:Taste L einschalten:Taste L ausschalten:Taste R einschalten:Taste R ausschalten:Taste 1 einschalten:Taste 1 ausschalten:Taste 2 einschalten:Taste 2 ausschalten:Wiedergabe Kanäle L/R starten:Pause:Stop Kanäle L/R:Schneller Vorlauf:Schneller Rücklauf:Aufnahmestart:Aufnahmestopp:

 

Nachfolgend werden alle Datentelegramme beim Drücken einer Taste auf dem Recorder gezeigt, die eine Veränderung der LEDs bewirken.

Taste L einschalten:Taste L ausschalten:Taste R einschalten:Taste R ausschalten:Wiedergabe Kanäle L/R starten:Wiedergabe Kanäle L/R stoppen:Wiedergabe Kanal 1 starten:Wiedergabe Kanal 1 stoppen:Wiedergabe Kanal 2 starten: Wiedergabe Kanal 2 stoppen:Aufnahme Kanäle L/R starten:Aufnahme Kanäle L/R stoppen:Aufnahme Kanal 1 starten:Aufnahme Kanal 1 stoppen:Aufnahme Kanal 2 starten:Aufnahme Kanal 2 stoppen:

 

Daraus ergibt sich folgende Zuordnung der Bits innerhalb der Befehlssequenzen:

 

Zoom H6 Remote Protokoll

 

Das Protokoll des Zoom H6 ähnelt stark dem des Zoom H5. Unterschiede sind die beiden zusätzlichen Kanäle 3 und 4, sowie eine andere Anmeldesequenz, die so aussieht:

 

Die Bitzuordnung der einzelnen Befehlssequenzen ist folgendermaßen gestaltet: