ATtiny mit Arduino UNO programmieren
- Details
- Zugriffe: 14660
Für kleine Projekte, die nur wenig Code benötigen, sind die sehr günstigen ATtiny-Controler eine interessante Alternative, die auch nur wenige zusätzlich Bauteile zum Betrieb des Prozessors brauchen.
Besonders interessant sind die Mikroprozessoren ATtiny45 und ATtiny85 mit 4 KB und 8 KB Flash-Speicher, sowie 256 bzw. 512 Bytes RAM. Beide haben ein 8-Pin-Gehäuse und lassen sich daher auch einfach in eigene Projekte integrieren. Die "größeren" Controler, ATtiny44 und ATtiny84 werden im 14-Pin-Gehäuse gefertigt und verfügen deshalb über mehr Ports.
Zur Programmierung dieser Controler wird hier der Arduino UNO verwendet. Die hierfür benötige Software, zum einen für die Arduino IDE (1.0.5), die zusätzlichen Prozessoren und die Programmier-Software für den UNO, die ArduinoISP muss zuvor noch installiert werden.
Sind in der IDE unter "Tool > Board" die ATtiny-Prozessoren noch nicht aufgeführt, müssen diese noch installiert werden. Mehr dazu gibt es im ARDUINO PLAYGROUND. Unter diesen Links befindet sich auch die Site von High-Low Tech, die den Verweis auf die ATtiny-master.zip bei GitHub enthält. Nach der Installation und einem Neustart der IDE müssen die neuen ATtiny-Controler unter "...Board" angezeigt werden.
Im zweiten Schritt wird jetzt noch die Programmier-Software ArduinoISP auf dem UNO installiert. Sie ist im Arduino-Verzeichnis unter "Öffnen > ArduinoISP" enthalten. Nach dem Öffnen muss sie noch auf den UNO hochgeladen werden.
Bei neueren Arduino-IDEs ist die Vorgehensweise etwas anders und einfacher. Unter "Arduino - Einstellungen ..." wird in der Zeile Zusätliche Boardverwalter-URLs der folgende Link eingetragen:
"https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json"
und anschließend die Seite mit "OK" geschlossen.
Nun wird der Boardverwalter, unter "Werkzeuge - Boards", aufgerufen. Ganz unten sollte jetzt ein Eintrag "attiny by David A. Mellis..." erscheinen. Dieses Paket wird installiert.
Dieses Paket muss installiert werden, um die ATtiny-Prozessoren verwenden zu können. |
Danach lassen sich die ATtiny-Prozessoren wie gewohnt unter "Werkzeuge - Board" aufrufen.
... und hier sind sie. |
Die Programmierung
Nun muss noch die Hardware fertiggestellt werden. Hierzu wird der UNO entsprechend der Skizze/Tabelle mit dem zu programmierenden ATtiny verbunden. Ein Elektrolyt-Kondensator von 10 uF, der zwischen RESET (+Pol) und GND (-Pol) des UNOs angeschlossen wird, verhindert einen Reset des Programmieradapters, so dass der zu ladende Code den Zielprozessor auch erreicht.
So sieht die Verdrahtung des Arduino UNO mit dem ATtiny45/85 aus. Oben ist auch der 10uF Elektrolyt-Kondensator an den Reset- und GND-Pins beschaltet. |
Pin Name | Pin-Nr. | Pin-Nr. | Pin-Nr. |
UNO | ATtiny45/85 | ATtiny44/84 | |
Slave Reset: | 10 | Reset (1) | Reset (4) |
MOSI: | 11 | Pin 0 (5) | Pin 6 (7) |
MISO: | 12 | Pin 1 (6) | Pin 5 (8) |
SCK: | 13 | Pin 2 (7) | Pin 4 (9) |
Weitere Informationen können dem Header der ArduinoISP von Randall Bohn entnommen werden.
Ist Alles soweit korrekt verlaufen, kann der Zielprozessor programmiert werden. Dazu wird die Zielplattform unter "Tools > Board" ausgewählt, sowie unter "Tools > Programmer" die Einstellung "Arduino as ISP" vorgenommen. Das "Serial Port" wird nicht geändert.
Jetzt kann die Software wie gewohnt hochgeladen werden. Die dabei auftretende Fehlermeldung kann ignoriert werden.
Eine Anleitung zum Lesen und Schreiben der Fuse Bits gibt es hier.