Der ATtiny85 spielt seine Stärken aus, wenn Sie genau definierte Funktionen auf engem Raum benötigen. Ein einfacher Tester für Modellbauservos zeigt die Möglichkeiten auf.
Manchmal genügt ein Mikrocontroller, um in einem Projekt zu regeln, zu steuern oder zu messen. Ein interessanter Kandidat für solche Aufgaben ist der ATtiny85. Es gibt ihn in mehreren Gehäusevarianten: Das bastlerfreundliche DIP-Gehäuse eignet sich für den Einsatz auf einem Breadboard, das kompakte TSSOP-Gehäuse fällt mit 3 x 4,4 Millimetern sehr klein aus.
Der ATtiny85 verfügt über 8 KByte Programmspeicher. Zum Ablegen variabler Daten bringt er 512 Byte SRAM mit. Wollen Sie die Daten vor einem Stromausfall schützen, nutzen Sie den EEPROM mit ebenfalls 512 Byte. Die 8-Bit-CPU taktet mit einer Frequenz von bis zu 20 MHz.
Die sechs I/O-Pins dürfen Sie frei programmieren, wobei einige Spezialfunktionen nur an bestimmten Pins bereitstehen. Sowohl SPI- als auch I2C-Schnittstellen sind vorhanden. Zum Verarbeiten von analogen Werten stehen vier Analog-Digital-Wandler mit 10 Bit Auflösung bereit. Abbildung 1 zeigt die Belegung der einzelnen Pins.

Abbildung 1: Die Pin-Belegung des ATtiny85.
Die Betriebsspannung des Controllers darf zwischen 1,8 und 5,5 Volt liegen. Das Datenblatt [1] des ATtiny85 ist mit seinen 234 Seiten ein richtiges Buch und beantwortet zahlreiche Fragen rund um den Controller. Sollten Sie sich nur einen Überblick über die Funktionen verschaffen wollen, genügt ein Blick in die Zusammenfassung des Datenblatts [2].
Testaufbau
Zum Ausprobieren eignet sich eine Schaltung für den ATtiny85 auf einem Breadboard. Den Aufbau sehen Sie in Abbildung 2, Abbildung 3 zeigt den zugehörigen Schaltplan. Zum Programmieren des ATtiny85 dient ein STK500-ISP-Programmierer [3].

Abbildung 2: Der Testaufbau mit dem ATtiny85 auf einem Breadboard.

Abbildung 3: Der Schaltplan für den Aufbau aus Abbildung 2.
Die Schaltung zeigt, wie Sie den ATtiny85 an den STK500 anschließen. Die LED1 dient dazu, die Betriebsspannung zu überwachen. Der Kondensator C1 stabilisiert die Betriebsspannung des ATtiny85. An Pin 3 (PB4) hängt über einen Vorwiderstand die LED2.
Der Vorwiderstand ist mit 10 kOhm eigentlich viel zu hoch dimensioniert. Allerdings haben die hier verwendeten China-LEDs eine extrem hohe Lichtintensität. Das grelle Licht war so unangenehm für die Augen, dass sich der Autor zu den hohen Vorwiderständen entschloss. Passen Sie den Vorwiderstand gegebenenfalls an die verwendeten LEDs an; bei 5 Volt Betriebsspannung bieten sich 330 Ohm oder 1 kOhm an.
Am Pin 2 (PB3) hängt ein Potenziometer, das einen Spannungsteiler mit der Betriebsspannung bildet. Sie dürfen mit dem Poti also an PB3 eine Spannung von 0 bis 5 Volt anlegen.
Am Pin 5 (PB2) ist ein einfacher Transistorverstärker angeschlossen, der das Ausgangssignal des ATtiny85 auf die Betriebsspannung des Servomotors anhebt, den ein 6-Volt-Netzteil betreibt. Das sorgt dafür, dass vom Servo verursachte Störungen nicht den ATtiny85 zum Absturz bringen.
Das Problem tritt zwar nicht bei allen Servos auf, selbst wenn Sie die 5 Volt direkt vom Ausgang des ATtiny85 verwenden. Das Einbinden eines Treibertransistors ist aber die sauberere Lösung. Allerdings invertiert die Treiberstufe das Signal; das gilt es später beim Initialisieren des Programms zu bedenken.
Falls Sie den ATtiny85 mit 3,3 Volt betreiben, benötigen Sie die Treiberstufe auf jeden Fall. Der Ausgang der Transistorstufe liegt am Signaleingang des Servomotors an. Dieser Pin dient auch zum Programmieren des ATtiny85.
Wenn Sie einen der Programmier-Pins im Betrieb mit einer anderen Aufgabe belegen, müssen Sie darauf achten, dass sich die zwei Funktionen nicht ins Gehege kommen. Im Zweifel entfernen Sie den ATtiny85 zum Programmieren aus der Schaltung und setzen ihn danach wieder ein.
Im vorliegenden Fall kommen sich der Servo und der STK500 nicht in die Quere. Abbildung 4 zeigt die Pin-Belegung des STK500. Die Tabelle “Verbindung” gibt an, welche Pins des STK500 Sie an den ATtiny85 anschließen.

Abbildung 4: Die Pin-Belegung des STK500-Programmierers.
|
STK500 |
ATtiny85 |
|---|---|
|
MOSI |
PB0 |
|
RESET |
PB5 |
|
SCK |
PB2 |
|
MISO |
PB1 |
|
VCC |
VCC |
|
GND |
GND |






