Serie inDetail - komplexe Themen verständlich dargestellt

Der Mikrocontroller ATtiny13

Wie kommt ein Programm auf einen Mikrocontroller?
Wie sieht so ein Maschinencode aus und wie ist er aufgebaut?
Das sind Dinge, die wir uns an einem kleinen Mikrocontroller dem ATtiny 13 anschauen werden.

Zuerst wird eine SPI Verbindung aufgebaut um den Programmspeicherinhalt des ATtiny zu lesen und zu beschreiben. Später werden dann Maschinencodes entwickelt die eine I/OPort steuern und eine LED zum blinken bringen.

Der ATtiny13

Bild von einem ATtiny13 im Vergleich zu einem ATmega328P

Der ATtiny13 ist eine Mikrocontroller der die gleiche Controller-Architektur (AVR) wie der im Arduino Uno R3 verwendete ATmega328P verwendet. Auch die Programmbefehle sind weitgehend identisch. Nur ist er eben "tiny" und nicht "mega".

Der ATtiny13 hat ein 1K Byte Flash Speicher (Programmspeicher), 64 Byte RAM und ein 64 Byte großes EEPROM. Er hat eine Timer, einen ADC (Analog zu Digital Converter), einen Watchdog-Timer, einen analog Comparator und 6 I/O Pins.

Die integrierte Oszillatorschaltung hat eine Taktfrequenz von standardmäßig 9,6Mhz. Beim ATtiny ist keine zusätzliche äußere Schaltung notwendig um diesen zu Betrieben.

≫ Datenblatt des ATtiny13A

Programmcode aufspielen

Pinbelegung des ATtiny13

Der Mikrocontroller reagiert auf zwei Arten.

Wird RESET mit Ground verbunden verhält sich der ATtiny wie ein Speicherchip. Über eine SPI Verbindung lassen sich in diesem Programmiermodus Daten aufspielen oder auslesen. Auch lassen sich einige Einstellregister beschreiben (z.B. Einstellung der Taktfrequenz u.ä).

Ist RESET nicht mit Ground verbunden, beginnt der interne Oszillator zu starten un der Mikrocontroller beginnt den vorher aufgespielten Programmcode - beginnend bei der Speicheradresse 0 - nacheinander abzuarbeiten.

Im nächsten Kapitel wird die SPI Verbindung eingerichtet.