ATtiny84: 85er mit mehr Pins
« | 24 Aug 2019 | »Die Chips des ATtiny85/45/25
sind bei uns inzwischen gut bekannt und werden als Arduino Alternative (genau
genommen ATmega328 Alternative) gehandelt.
Mit insgesamt 8 PINs bleiben uns allerdings nur 3 digitale und 2 analoge
Ausgänge für Anwendungen übrig.
Doch es gibt da noch den mittleren Bruder in Form des ATtiny84/44/24 zwischen der ATtiny und ATmega Serie.
Die ATtiny*4 Serie
Die ATtiny*4 Chips passen auf einen 14 Pin Sockel und bieten uns für Anwendungen gleich 11 GPIO Pins an, davon 8 analoge und 3 rein digitale. (Und natürlich lassen sich die analogen auch wie digitale nutzen.)
Damit sind wir schon viel näher an einem ATmega328 dran, brauchen aber immer noch weniger Strom und können den internen Taktgeber auf 1 Megahertz herunter takten.
Beim Speicher sieht es aber genau so limitiert aus, wie bei der 85/45/25 Serie, denn hier gilt:
Serie | RAM | EEPROM | Prog. Flash |
---|---|---|---|
85 oder 84 | 512 Bytes | 512 Bytes | 8 KB |
45 oder 44 | 256 Bytes | 256 Bytes | 4 KB |
25 oder 24 | 128 Bytes | 128 Bytes | 2 KB |
Arge Grafiken oder lange Statistiken lassen sich auf Grund des fehlenden
RAMs bzw. des geringen Programm-Speichers nicht auf den kleinen Chip brennen.
Doch er eignet sich gut, um Daten von mehreren Sensoren weiterzugeben, oder
mehrere Tastenerkennungen oder Strommessungen durchzuführen.
Wer noch den einen oder anderen ESP8266-1 bei sich herumliegen hat, kann dessen serielle Pins mit denen eines ATtiny84 zusammen schließen und dann vom WLAN des ESP8266 heraus Geräte, die am ATtiny hängen, auslesen.
Nachdem die ATtinys alle mit Spannungen von 2 bis 5.5 Volt betrieben werden können, sind sie auch mit den 3.3 Volt der ESP Serie kompatibel.
Programmierung
Natürlich existiert für die Arduino IDE ein Board Package, das man installieren kann. Unter http://highlowtech.org/?p=1695 findet man ein Beschreibung, doch grundsätzlich fügt man die Board-URL https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json in der Arduino IDE hinzu und sucht im Board-Manager nach ATtiny und sollte dann auch gleich den ATtiny-Board Eintragen finden.
Wenn man sich kein eigenes Programmiergerät kaufen will, funktioniert man
am besten einen Arduino UNO zu einem Programmer um, in dem man das
Arduino-as-ISP-Sketch auf ihn hochlädt.
Dann verbindet man noch die Pins D10, D11, D12 und D13 am UNO mit den Pins
4 (RST), 7 (MOSI/A6), 8 (MISO/A5) und 9 (SCL/A4) des ATtiny84, nebst
Pluspol auf 1 (VCC) und Minuspol auf 2 (GND).
Und schon können wir über den UNO ein Sketch kompilieren und auf den ATtiny übertragen, wenn Arduino-as-ISP als Programmiergerät in der IDE eingestellt ist. Also so wie immer, wenn man einen Chip über einen Arduino UNO programmieren will.
Anwendungen und Problemchen
Das größte Problem bei Arduino-Bibliotheken ist, dass sie die ATtinys generell oft nicht “bedenken” und von der Pin-Belegung des UNOs ausgehen. Auch kann es sein, dass es abhängig von der eingestellten Prozessortaktung zu falschen Frequenz- oder Verzögerungswerten kommt.
Daher muss man nach Bibliotheken suchen, die ATtinys unterstützen oder eigens für sie geschrieben wurden. Da kann es schon mal etwas dauern bis man nach ein paar Fehlschlägen die richtige Softwarelösung gefunden hat.
Ich selbst stehe hier auch noch am Anfang, freue mich aber mit dieser MCU ein Mittelding zwischen ATtiny85 und ATmega368 gefunden zu haben.
Fazit
Ein netter IC, nicht perfekt was die Softwareunterstützung anbelangt aber macht Spaß, mal was “selbst” implementieren zu müssen um das Potential des Chips auszunutzen.
Während man die 85/45/25 beim Elektronikladen um die Ecke findet, konnte ich die 84/44/24 Serie in unseren Breiten nicht entdecken.
In Asien kostet der Chip in der Sockelfassung aktuell mit rund 2 Euro pro
Stück doppelt so viel wie ein günstiger ATmega328.
In Summe ist das aber dennoch recht wenig und der Chip spart dafür
Energiekosten ein, was bei Batterieprojekten wieder als Vergünstigung
wirkt.
Alles in allem eine Empfehlung und ein Experiment wert.