DuckMini

From BlinkenArea Wiki
Revision as of 01:43, 24 February 2024 by ArneRossius (talk | contribs)
Jump to: navigation, search
zur Projektübersicht
English Version of this Page
DuckMini.jpg
Jahr 2019
Anzahl Pixel 34
Graustufen / Farben 8 Graustufen
Leuchtmittel SMD-LEDs
Leistungsaufnahme
Kontaktperson Arne Rossius
Projekt-Website

Die DuckMini ist die SMD-Ausführung der THT-Duck (Ente), die Entstehungsgeschichte ist dort erklärt. Schaltung und Software sind weitgehend identisch.

Version 1.0

Hardware

Die Schaltung ist bis auf den Microcontroller-Typ identisch mit der "großen" Ente. Aus Preisgründen wurde der ATmega8 durch den ausschließlich im SMD-Gehäuse erhältlichen ATtiny88 ersetzt. Anstelle eines losen Batteriehalters mit 3 Mignon-Zellen (AA) wird ein auf der Platinenrückseite angelöteter Batteriehalter für 3 Micro-Zellen (AAA) eingesetzt. Es empfiehlt sich, den Batteriehalter zusätzlich mit einem Stück doppelseitigem Schaum-Klebeband (Spiegel-Montageband) an der den Pins gegenüberliegenden Ecke auf der Platine festzukleben. Über dem Batteriehalter ist die Platine gerade groß genug, um den großen Tantal-Kondensator und eine Stiftleiste für die ISP-Schnittstelle unterzubringen.

Anstelle des großen Batteriehalters kann die Platine auch einen Knopfzellenhalter für eine CR2032 aufnehmen. Durch die geringere Spannung und den hohen Innenwiderstand der Knopfzelle ist das Quaken der Ente jedoch sehr leise und die LEDs sind etwas dunkler. Für eine Ente ohne Ton, die nicht tagelang eingeschaltet bleibt, ist die Knopfzelle dennoch eine sinnvolle Alternative.

Firmware

Version 2.0

Hardware

In Version 2 wurde der Controller durch einen 14-Pin-Typ ersetzt, es können entweder ATtiny84 oder ATtiny804/814 eingesetzt werden.

Die LEDs werden jetzt mit Charlieplexing angesteuert, so dass sie nur 7 Pins benötigen. Die Transistoren sind nun als Emitterfolger verschaltet, um kompatibel mit dem Charlieplexing-Verfahren zu sein, und die Basiswiderstände können auch entfallen. Eine Spalte der LEDs wird ausgewält, indem der Microcontroller den dazugehörigen Pin high steuert und der Transistor so die LED-Anoden mit Spannung versorgt. Die Kathoden-Pins aller LEDs in dieser Spalte, die aufleuchten sollen, werden low gesteuert, alle anderen Pins bleiben hochohmig (Eingang). Dieser Ablauf erfolgt für alle 6 Spalten und wiederholt sich dann (wie beim Multiplexing auch).

Firmware

Da sich die ISP-Schnittstelle in dieser Version die Pins mit den LEDs teilt, ist der Immer-An-Jumper wie in Version 1 nicht mehr möglich. Stattdessen kann man den Taster beim Einlegen der Batterien gedrückt halten, um den Immer-An-Modus zu aktivieren. Ein automatisches Einschalten beim Anlegen der Spannung ist nicht möglich.

Die ATtiny804/814 unterstützen die ISP-Schnittstelle nicht, daher ist die 2x3-Stiftleiste mit diesen Controllern nutzlos. Eine Programmierung im System ist dennoch möglich, indem ein Kabel an den ungenutzten Pin 10 angelötet und mit einem UPDI-Programmer verbunden wird. Zusätzlich muss der Programmer natürlich noch mit Masse verbunden werden.

Die PWM-Pins liegen beim ATtiny804/814 auch anders als beim ATtiny84. Pin 6 (PA7/OC0B beim ATtiny84) unterstützt per PORTMUX das PWM-Signal WO0, so dass eine einfache Register-Einstellung am Beginn des Programms ausreicht. Auf Pin 5 (PB2/OC0A beim ATtiny84) ist jedoch gar kein PWM-Signal verfügbar. Stattdessen wird das CCL-Modul verwendet, um intern das WO1-Signal auf LUT1-OUT durchzureichen, was dann auf Pin 5 ausgegeben werden kann.

Fotos

Mehr Fotos unter http://arne.blinkenarea.org/duck-mini/gallery.htm.