ferdinandkeil.com

Archive for the ‘pcb’ tag

What’s inside a cheap TOSLINK, S/PDIF to Cinch adapter

without comments

toslink_dac-600

I wanted to connect my TV to my Hifi system but found it lacking an analog output. On Amazon.de I stumbled upon this cheap audio DAC, converting a TOSLINK input to line level stereo outputs. About 17 EUR shipped sounded reasonable to me, so I ordered it right away. However at that price (including a wall plug) I was curious what components are inside this thing. So you know how Dave Jones says, don’t turn it on, turn it apart!

20140308_222114-1600 20140308_222003-1600

The magic is obviously happening on the bottom side of the board. You can find a high resolution scan of it below. The main ICs are both Cirrus Logic parts: the CS8416 192 kHz digital audio receiver and the CS4344 24-bit, 192 kHz stereo DAC. As both parts support sample rates up to 192 kHz the device likely exceeds its spec of 96 kHz. The DAC features a dynamic range of 105 dB and -90 dB THD+N, which should be good enough for my purposes.
There also is an LDO and some passives. The soldering looks rather good, at least for the price. The board layout is also reasonable, analog and digital parts are somewhat separated, the digital lines going to the DAC have series resistors, the DAC’s outputs even got protection diodes.

cs4344_spdif_dac_hires

I’ve used the device for more than a week now and I’m quite pleased with it’s performance. It’s compact size makes it easy to hide it behind the TV. In a next step I’ll build a USB-to-barrel-plug adapter to power it from one of the TV’s USB ports. That way it will be turned on and off together with the TV.

Written by Ferdinand

März 16th, 2014 at 14:56

Humidor Steuerung – ein Hygrostat für die Zigarrenlagerung

with one comment

Vor mittlerweile fast drei Jahren habe ich auf dieser Seite die Schaltung für meinen Humidor Lüfter veröffentlicht. Die Schaltung entstand aus der Idee, die Luft im Humidor regelmäßig umzuwälzen um eine möglichst gleichmäßige Feuchtigkeitsverteilung zu erreichen. Die Schaltung funktioniert bis heute ohne Probleme – nachdem ich sie um eine Batterieüberwachung erweitert habe macht sie auch keine Akkus mehr kaputt. Aus der gleichen Zeit stammte die Idee ein digitales Hygrometer für die Zigarrenlagerung zu entwerfen.

IMG_0016-1600
Die erste Version der Humidor Steuerung

Die Idee blieb in der Planungsphase stecken, bis ich mir Anfang 2012 endlich einen Ruck gab das Ganze umzusetzen (auch bedingt durch den Fund passender LC-Displays in meiner Teile-Kiste). Daraus entstand die erste Version der Humidor Steuerung. Bei Jakob Kleinen’s Sammelbestellung im mikrocontroller.net Forum ließ ich zwei Platinen fertigen und baute sie anschließend auf. Bis auf einen kleinen Fehler bei der Beschaltung des Drehgebers lief die Steuerung ohne Problem. Aus einem Testprogramm entwickelte sich die Firmware mit allen nötigen Features. Meine Ergebnisse veröffentlichte ich im Zigarrenforum. Die positiven Kommentare dort ermutigten mich schließlich eine zweite, verbesserte Version zu entwerfen. Die möchte ich nun hier vorstellen.

humidor_controller_top 20121028_215039
Die neue, verbesserte Version

Die Steuerung ist letztlich ein Hygrostat mit integrierter Zeitschaltuhr um handelsübliche PC-Lüfter anzusteuern. Insgesamt stehen vier Lüfter-Kanäle zur Verfügung die unabhängig voneinander programmiert werden können. An den Sensor Anschluss können verschiedene Sensor-Typen angeschlossen werden, die Firmware erkennt den richtigen Typ dann automatisch. Nicht auf dem Bild zu sehen (weil auf der Rückseite) ist ein Summer, der bei unterschreiten einer eingestellten Feuchtigkeit Alarm gibt. Außerdem ist eine Alarm-LED integriert, die durch das Loch über dem Glock-Symbol scheint.

humidor_controller_v35_sch detail_luefter_kanal
Schaltplan und Beschaltung eines Lüfter-Kanals

Die Lüfter-Kanäle sind alle identisch aufgebaut. Der Summer ist an die 12V Versorgungsspannung angeschlossen und wird ähnlich wie die Lüfter geschaltet. Jeder Kanal verfügt über einen N-Kanal Schalt-MOSFET im SOT-23 Package. Mögliche Typen sind z.B. der IRLML2502 oder GF2304. Jeder Kanal kann mit mindestens 500mA belastet werden, damit kann die Schaltung nahezu alle erhältlichen Lüfter betreiben.
Zum Schutz des MOSFETs und zur Entstörung der Schaltung sind dem Lüfter eine Schutzdiode und eine Kondensator parallel geschaltet.

Die Steuerung kann über USB mit einer neuen Firmware geflasht werden. Dazu wurde der verbaute ATmega168 mit dem USBaspLoader programmiert. Um den Bootloader zu aktivieren muss der Drehgeber gedrückt werden wenn die Schaltung mit der Spannungsversorgung verbunden wird.

Die fertige Schaltung sitzt in einem Standard-Gehäuse wie eine Frontplatte. Es muss nur ein Loch für die Hohlstecker-Buchse gebohrt werden, die auf der Rückseite der Platine angeschlossen wird.

Das verwendete Display HMC16223SG ist leider nicht mehr erhältlich. Aufgrund seiner kleinen Abmessungen ist es perfekt für ein kompaktes Gerät geeignet. Einen adäquaten Ersatz konnte ich bisher nicht finden, die nächste Version wird wohl ein anderes Display verwenden.

Die Firmware für die Steuerung basiert auf meinem Taskmanager. Sie ist so weit wie möglich modular aufgebaut. Es wurde auch ein Menü-System verwendet, das auf dem Code des Butterfly GCC-Ports aufbaut.
Die Firmware um Funktionen für weitere Lüfterkanäle oder mehrere Sensoren zu erweitern, sollte kein Problem sein. Die aktuelle Firmware verbraucht ~10,5kB Flash, der Bootloader 4kB – es ist also noch Platz für Erweiterungen. Alternativ kann ein ATmega328 verbaut werden.

sensor_board_v10 20130320_133231-1600
Die Sensor-Platine: als 3D-Modell und fertig aufgebaut



Die Sensor-Platine ist mit folgenden Sensoren kompatibel:

Die Sensor-Platine wird mit 12V versorgt und hat einen lokalen Spannungsregler (LP2980-N), um Spannungsverluste über die Zuleitung sowie Störungen zu reduzieren.

Downloads

Die Firmware steht unter MIT Lizenz, die Hardware Quelldateien unter der TAPR Lizenz. Die Dateien sind hier zu finden:

Written by Ferdinand

März 20th, 2013 at 15:47

AVR-Transistortester – Downloads

without comments

Im Anhang zu diesem Post finden sich die Eagle Quelldateien für die Schaltung sowie eine angepasste Version des Quellcodes. Da die Schaltung in einigen Punkten von der Originalversion abweicht kann die Firmware nicht direkt übernommen werden. Außerdem sollten die in der Datei fuses.bat voreingestellten Fuse Werte übernommen werden um einen fehlerfreien Betrieb zu gewährleisten.
Im Archiv Transistortester.zip befindet sich neben den Eagle Dateien auch eine Teileliste mit Bestellnummern für Reichelt, Mouser und Farnell. Der Fehler aus der ersten Revision der Platine ist bei den angehängten Dateien beseitigt, allerdings habe ich diese Version nicht getestet. Die Schaltung und das Platinenlayout stelle ich unter CC-BY-SA Lizenz zur Verfügung.

Transistortester.zip

transistortester_source.zip

Written by Ferdinand

Mai 4th, 2012 at 18:45