Der ELO-Flasher – Ein LM3909-Ersatz

von Burkhard Kainka
ELO 2010
Elektronik-Labor  Labortagebuch  ELO  

 

Der ELO-Flasher ist ein LED-Blitzlicht mit nur einer 1,5-V-Zelle und einer Laufzeit von mehreren Jahren ohne Batteriewechsel. Diese Aufgabe wird mit einem Mikrocontroller ATtiny13 gelöst, der noch bis herunter zu einer Batteriespannung von 1 V arbeitet. Es gab mal ein Spezial-IC für diese Aufgabe: Der LM3909 war ein beliebtes IC für den Bau eines einfachen LED-Blitzers. Eine LED konnte damit etwa ein Jahr lang aus einer 1,5-V-Batterie betrieben werden. Das IC wurde für kleine Werbetafeln verwendet. Eine andere Lösung war der Ewige Blinker, eine Lösung mit Transistoren, die inzwischen auch beim Geo-Caching sehr beliebt ist.

Auf der Suche nach einem Ersatz kam die Idee auf, einen Mikrocontroller ATtiny13 zu verwenden. Das Lernpaket Mikrocontroller verspricht, dass man damit sein eigenes Spezial-IC herstellen kann. Ob das wohl für diesen Fall zutrifft? Versuche zeigen, dass der Tiny13 im Lowpower-Bertrieb bis herunter auf 1,0 V betrieben werden kann. Die Leerlauf-Stromaufnahme beträgt mit seinem internen 125-kHz-Oszillator als Watchdog im Power-Down-Modus ca. 2,5 µA. Das verspricht eine extrem lange Betriebsdauer mit nur einer Batteriezelle.

 
Schaltung

 Die Schaltung kommt mit drei Anschlüssen des Controllers aus. VCC und GND liegen an der Betriebsspannung. Jeder der Portausgänge B.0 bis B.4 liefert das Ausgangssignal in Form kurzer High-Impulse mit einer Wiederholfrequenz von ca. 1 Hz. Der Reset-Eingang muss übrigens frei bleiben.

Eine rote LED benötigt eine Spannung von ca. 1,8 V, also wesentlich mehr als eine Batteriezelle liefert. Die Schaltung realisiert auf einfache Art eine Spannungsverdopplung. Im Low-Zustand der Ausgangsports wird der 100-µF-Elo auf die Batteriespannung aufgeladen. Im wenige Millisekunden kurzen High-Zustand liegt der Ausgangsport etwa auf 1,5 V, der Elko liegt wie eine zweite Batterie in Reihe, sodass eine Leerlaufspannung von 3 V entsteht. Wenn die Batteriespannung bis auf 1 V entladen ist erhält man immer noch 2-V-Impulse an der LED. Wie hell die LED leuchtet und wie lange die Batterie hält kann der Anwender in weiten Grenzen selbst festlegen. Wer Wert auf besonders lange Laufzeit legt kann den Ladewiderstand von 10 kΩ bis auf 100 kΩ erhöhen. Dann reicht auch ein kleinerer Elko von nur 10 µF.

 


Die internen FETs an den Ausgangsports besitzen einen Bahnwiderstand in der Größenordnung von 200 Ω bei einer Betriebsspannung von 1,5 V. Dieser Widerstand liegt praktisch in Reihe zur LED und begrenzt den LED-Strom. Wenn die Spannung weiter absinkt steigt der ON-Widerstand der FETs auf ca. 500 Ω. Wenn man einen hohen Impulsstrom erzielen will können zwei oder bis zu fünf Ports parallel  geschaltet werden. Sie liefern dann einen entsprechend größeren Strom. Denkbar ist auch eine Anwendung mit mehreren LEDs unterschiedlicher Farbe, wobei jede LED einen eigenen Elko und einen eigenen Ladewiderstand erhält.

 Zum Test des Stromverbrauchs wurde die Schaltung nicht über eine Batterie sondern aus einem 1000-µF-Elko betrieben, der mit einem externen Netzteil auf 1,5 V aufgeladen wurde. Der Blitzelko hatte 47 µF, der Ladewiderstand 27 kΩ. Es ergab sich eine Betriebsdauer von 20 Sekunden, bis die Spannung auf 1 V abgesunken war. Aus der Entladegeschwindigskeit  kann ein mittlerer Strombedarf von 25 µA bestimmt werden, wobei der LED-Impulsstrom über 2 mA liegt. Eine Alkalizelle mit einer Kapazität von 2000 mAh wird durch den ELD-Blitzer theoretisch in neun Jahren entladen. Praktisch entspricht der Strombedarf etwa der Selbstentladung der Batterie

 

Vergleich mit dem LM3909

 Der LM3909 war eine integrierte Schaltung mit bipolaren Transistoren. Der mittlere Strombedarf wurde für die Standard-Beschaltung mit einem 300-µF-Elko mit 0,5 mA angegeben.

 

 

Der Tiny13 dagegen ist ein kompletter Mikrocontroller in CMOS-Technik und mit unendlich vielen Transistoren, sodass man nur noch ein Blockschaltbild darstellen kann.

Man könnte meinen, dass hier mit Kanonen auf Spatzen geschossen wird. Eingebaut sind auch ein AD-Wandler, ein Zähler, ein EEPROM und vieles mehr. Der Mikrocontroller kann ja viel mehr als eine LED antreiben! Aber letzten Endes enthält der Tiny13 auch nur ein Stück Silizium, vermutlich in ähnlicher Größe wie im LM3909. Was man zusätzlich kauft ist das geballte Know-How des Herstellers, das wiederum auf die gesamte Auflage umgerechnet wird. Weil ein Mikrocontroller für so viele unterschiedliche Aufgaben eingesetzt werden kann verkauft Atmel sehr viele davon und kann einen geringen Preis festlegen. Deshalb geht die Tendenz immer weiter in diese Richtung: Man setzt einen universellen Mikrocontroller auch für eine sehr einfache Aufgabe ein und spart dabei eigene Entwicklungszeit.

Der Tiny13 ist laut Datenblatt ab 1,8 V einsetzbar. Es gibt die V-Version, die speziell für kleine Spannung getestet ist. Tatsächlich kommen die C-Typen und die anderen Controller vom gleichen Waver und werden nur unterschiedlich getestet, der eine auf kleine Spannung, der andere auf höchste Taktfrequenz. Mit hoher Wahrscheinlichkeit können aber alle Versionen beides, unabhängig davon ob ein V drauf gedruckt ist oder nicht. Atmel führt die Tests einfach nach der aktuellen Bedarfssituaton aus. Und dabei wird alles bis ins kleinste geprüft, z.B. auch ob der AD-Wandler bei 1,8 V noch seine spezifizierte Genauigkeit erreicht. Hier wird der Controller deutlich unterhalb der spezifizierten Spannung eingesetzt. Dann kann man natürlich nicht mehr garantieren dass auch das EEPROM und der AD-Wandler noch richtig arbeiten. Aber die benötigten einfachen Funktionen wie Taktgenerator und Ports arbeiten einwandfrei. Tests mit vielen Controllern haben gezeigt, dass alle bis etwa 1 V noch arbeiten.

 

Programmierung

Die Firmware des ELO-Flasher wurde mit Bascom entwickelt. Die wesentlichen Grundlagen der Low-Power-Anwendung unter Verwendung des Watchdog wurde bereits in ELO vorgestellt.

'ELO-Flasher-2, 9,6 MHz / 8

 $regfile = "attiny13.dat"
$crystal = 1200000
'Watchdog Reset nach ca. 1 s
Config Watchdog = 1024
Start Watchdog 

  Ddrb = 255
  Portb = 255
  Waitms 10
  Portb = 0
  Powerdown

End

Downlaod: Quelltext und HEX-File

Mit dieser Version des Programms kann jeder Besitzer eines Lernpakets Mikrocontroller seinen eigenen ELO-Flasher brennen. Verwenden Sie dazu das Programm LPmikroISP.exe und flashen Sie das Programm EloFlasher2.hex in den fabrikneuen Controller. Vermeiden Sie auf jeden Fall die Fuses zu verändern! Das Problem ist die vorgegebene Verwendung des Brownout-Detektors bei 2,7 V. Der Chip kann dann nicht mehr mit kleiner Spannung arbeiten.

 

Optimierung

Wenn es auf höchste Sparsamkeit ankommt, lässt sich noch etwas optimieren. Dafür benötigt man allerdings einen universellen Programmer wie z.B. das STK500. Die Default - Einstellungen der Fuses nach dem Kauf eines fabrikneuen Tiny13 lauten: Kein Brown-Out (gut!), 9,8 MHz Takt mit Vorteiler durch 8 (geht so)und eine Startup-Time von 14 Ck + 64 ms (nicht zu gut). Der Controller arbeitet mit unnötig hohem Takt und verschwendet 64 ms Rechenzeit, während der Controller eigentlich nur während der Impulszeit für wenige Millisekunden aktiv arbeiten müsste.

Das Programm ELOflasher2 verwendet andere Einstellungen der Fuses mit einer effektiven Taktrate von nur 600 kHz, die kleinste Startup-Time, die halbe Blitzfrequenz von ca. 0,5 Hz und zusätzlich verkürzte Blitzimpulse von nur 5 ms Länge. In dieser Form wird der Chip programmiert und im ELO-Shop angeboten.

'ELO-Flasher-2, 4,8 MHz / 8

$regfile = "attiny13.dat"
$crystal = 600000
'Watchdog Reset nach ca. 1 s
Config Watchdog = 2048

Start Watchdog
 
Ddrb = 255
  Portb = 255
  Waitms 5
  Portb = 0
  Powerdown
End

Download: ELO-Flasher 2

 
Für diese Anwendung müssen die Fuses passend eingestellt werden:

 

In dieser Version läuft der ELO-Flasher unter gleichen Testbedingungen an einem 1000-µF-Elko länger als eine Minute, also dreimal länger als in der Version 1. Ohne Selbstentladung könnte er also ca. 30 Jahre mit nur einer Batterie arbeiten! Damit bietet sich auch ein sinnvoller Einsatz mit kleineren Batterien wie z.B. Knopfzellen.

Falls Sie kein Lernpaket Mikrocontroller und auch kein AVR-Programmiergerät haben, es aber trotzdem ordentlich blinken lassen will, können Sie das programmierte IC hier bestellen. www.ak-modul-bus.de/stat/elo_flasher_2.html

Technische Daten

*         ATtiny13
*         Firmware ELOflasher2
*         Betriebsspannung 1 V … 1,5 V
*         Mittlerer Betriebstrom < 10 µA
*         Blitzfrequenz 0,5 Hz

Sie auch Labortagebuch 28.5.14: ELO-Flasher mit Tiny13A?

 

 


Elektronik-Labor  Labortagebuch  ELO