Die Micro Controller ATTiny
Aufbau und Verwendung der Micro Controller ATtiny - AVR - Digispark-Module
Hardware-Infos und Programmierung mit der Arduino IDE

Viele meiner Projekte verwenden Micro-Controller von AVR (ATMEL) die auf in den Arduino-Boards eingesetzt werden. AVR liefert hierzu MicroProzessoren in den verschiedenen Ausbaustufen bezüglich Speichergröße, der Flashspeicher, RAM-Speicher, Eeprom, In-Out-Anschlüsse usw. Die Arduino Boards bieten schon eine große Auswahl. Benötigt man jedoch nur eine geringe Anzahl von Ein- bzw. Ausgänge, nur wenige analog digital Wandler oder PWM Ausgänge und hat man auch wenig Platz, so gibt es hierfür leider keine passenden Arduino- Boards. Ein Ausweg sind die Micro Controller von Digistump / Digispark. Zwei dieser sehr kleinen Boards möchte ich hier vorstellen und die Programmierung mit der Arduino IDE zeigen.
Wer sich für diese kleinen MicroController interessiert aber die Arduinos und die IDE noch nicht kennt, dem empfehle ich diese Seite :
Digispark-Modul ATTiny85

Das kleinste Board mit einem ATtiny85 mißt gerade einmal 18mm x 23 mm. Hat 5 Ports (Digital + Analog) und 3 Anschlüsse für die Versorgungsspannung. Wie die Arduinos verfügt das Board über einen Mini-USB Anschluß um mittels einen speziellen Bootloader das Programm zu laden. Es gibt jedoch Einschränkungen hinsichtlich der Anschlüsse d.h. nicht alle Pin verfügen über digitale und analoge Ein-und Ausgänge. Alle Pins können digitale Ein- und Ausgänge sein, jedoch nur einige analoge Ein- und Ausgänge ( = ADC bzw. PWM). Die serielle USB Verbindung ist eine Emulation in der Bootloader -SW. Der Controller läuft mit einer Taktfrequenz von 8 MHz. Die Pin-Port-Liste gibt es gleich hier unten als PDF.
Digispark-Modul Pro ATTiny167
Nur minimal größer ist das Board mit einem ATtiny167, ca.18mm x 28 mm. Einige Daten zum 167: 14 I/O Pins , I2C, SPI, UART, LIN und USI, ADC an 10 Pins, 3 PWM Kanäle (können einer Auswahl von Pins zugeordnet werden), Power LED und Test/Status LED (an Pin 1). In diesem Controller gibt es einen Hardware-UART als serielle USB Verbindung.
Hier die Pin-Port-Liste:
Hardware Pinout
Pin- und Port-Nummern ATtiny85 und ATtiny167Pro Digispark (pdf)
Programmierung der Micro Controller
- diese MCs lassen sich über die Arduino IDE programmieren.
- Für beide Controller gibt es ab der Arduino IDE 1.6.x die Möglichkeit über den Board-Manager die Informationen der MC's in der IDE zu hinterlegen.
- Empfohlen wird die Arduino IDE 1.6.5+
- der Bootloader ist auf den Boards bereits installiert
- Die IDE gibt es für iOS, Windows und Linux
- Bei den aktuellen Betriebssystemen müssen i.d.R. keine speziellen USB-Treiber geladen werden
- Der Programm Upload wurde geändert
- Der Befehlsumfang ist stark reduziert
Installationsanleitung für Windows (ab XP, 7, 8, 10)
Zuerst laden Sie das entsprechende Arduino-Paket von der Arduino.cc Website: https://www.arduino.cc/en/Main/Software
Bei der Verwendung von Arduino 1.6.6 oder höher und Windows - herunterladen, entpacken und ausführen von -> Install Drivers: https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip
Installieren der Arduino Anwendung.
Gehen Sie in der Arduino Anwendung auf das Menü [Datei] und wählen Sie [Einstellungen]
In das Feld -> weitere Boards Manager-URLs <- eingeben: http://digistump.com/package_digistump_index.json ... und dann auf OK klicken.
Gehen Sie im Menü [Extras] und dann in das [Board] Untermenü - wählen Sie [Boards Manager] und dann im Drop-Down Menü wählen Sie [Beitrag]: -> Digistump AVR Boards<- Paket und klicken Sie auf die Schaltfläche [Installieren].
Den Download-Fortschritt sehen sie auf der unteren Leiste des ->Boards Manager<- Fenster. Das installierte Paket wird in der Liste angezeigt.
Evtl. werden dann noch weitere Treiber für die Digistump Boards installiert.
Nach der vollständigen Installation wählen sie im Board-Menü - Digispark (Standard - 16.5mhz)
Installationsanleitung für Windows XP und /oder Arduino IDE 1.0.x
Es gibt eine weitere Möglichkeit die Digispark Board zu programmieren, auch für Windows XP bzw. mit einer älteren Arduino IDE. Die IDE 1.0.4 hat noch keinen Board-Manager . Die Disparks sind deshalb direkt in der IDE von Digispark integriert. Auch ein spezieller USB Treiber ist in diesem IDE-Paket (1.0.4) enthalten.
Wer kurzzeitig die Digisparks programmieren will, kann diese alte spezielle Arduino IDE einsetzen.
Diese spezielle (alte) Arduino IDE gibt es hier unter diesem Link zum Download: https://sourceforge.net/projects/digistump/files/
Entpacken Sie die Datei --> z.B. DigisparkArduino-Win32-1.0.4-March29.zip (für Windows)... in einen beliebigen Ordner
Installieren Sie die den USB Treiber mit -> DigisparkArduino-Win32 \ DigisparkWindowsDriver \ InstallDriver.exe
Schließen Sie Digispark an den USB-Port des Computers - es sollte das USB-Gerät erkannt werden
Starten sie die Arduino IDE -> DigisparkArduino-Win32 \ Digispark-Arduino-1.0.4 \ arduino.exe
Klicken Sie auf Extras> Board> Digispark (Tiny Core)
Klicken Sie auf Extras> Programmierer> Digispark
Laden Sie ein Beispiel ... klicken Sie auf Datei> Beispiele> Digispark_Example> Start
dann ziehen Sie das Board vom Computer ab, bevor Sie auf die Schaltfläche Upload klicken
Klicken Sie nun auf den Upload-Button
Stecken Sie das DigisparkBoard erst in die USB-Buchse, wenn im unteren IDE Feld steht ... connecting now...
Der Upload des Programms beginnt .... Fertig
Einschränkungen bei der SW
Es stehen nur folgende Befehle z.V.:
- pinMode()
- digitalWrite()
- digitalRead()
- analogRead()
- analogWrite()
- shiftOut()
- pulseIn()
- millis()
- micros()
- delay()
- delayMicroseconds()
- SoftwareSerial
Hinweise aus der Praxis
- Der Bootloader hat eine Verzögerung von ca. 5 Sek. - d.h. das Programm startet erst nach dieser Zeit.
- Achten sie bei den Anschlüssen (P3 und P4) auf Grund der USB-Nutzung (USB+ und USB-) auf ihre eigene äußere Beschaltung
- Zur Sicherheit ziehe ich das MC-Board zur Programmierung immer aus der Anwendung, da die USB Ports "sensibel" sind.
- Achten sie auf die Pin-Verwendung der Boards, diese ist mit der Arduino IDE bzw. Prorammierung nicht kompatibel
- Programm Upload: das Board vom USB-Anschluß lösen ... dann Upload starten ... Board wieder anschließen
- Es gibt einen internen Temperatur Sensor, dieser kann per Programm gelesen werden
- Die max. Versorg. Spannung Vin sollte 8V nicht überschreiten