Home ==> Mikrobeginner ==> 1. ISP
ATtiny13

Lektion 1: ISP-Programmier-Interface


1.0 Übersicht

  1. Einführung
  2. Hardware
  3. Bauteile und Aufbau
  4. Bedienung

1.1 Einführung

Um Mikroprozessoren in den Griff zu bekommen, braucht man eine Steuerungsmöglichkeit. Mit Hilfe dieser Steuerung kann man Ohne diese Steuerungsmöglichkeit geht gar nix und der Prozessor schläft nur vor sich hin und tut gar nix.

In diesem Kurs greifen wir zum Programmieren direkt auf den Prozessor in der fertig aufgebauten Schaltung zu. Das bezeichnet man als "In-System Programming", kurz ISP.

Programmieren
Das hat immense Vorteile: Die fertige Schaltung funktioniert wie programmiert, es werden keine weiteren und überflüssigen Zusatzschaltungen benötigt (wie beim Arduino oder beim STK500). Nicht nur sind komplizierte Verkabelungen unnötig, auch der Strombedarf der fertigen Schaltung wird nicht unnötig erhöht.

Die ISP-Schnittstelle funktioniert bei allen AVR in gleicher Weise. Wenn also für eine Anwendung weitere Pins benötigt, nimmt man einfach den nächstgrößeren AVR-Typ, schreibt das Programm ein wenig um und programmiert diesen über die ISP-Schnittstelle in der fertig aufgebauten Schaltung.

Baut man das Programmierinterface, eine sechspolige Steckverbindung, in die fertige Schaltung ein, kann das Programm nachträglich verändert werden. Weder ist dazu das Ausbauen des Prozessors noch sind irgendwelche Lötarbeiten notwendig.

In diesem Kapitel lernen wir, den Prozessor in der Schaltung anzusprechen und seine Typkennung auszulesen. Die anderen Möglichkeiten zur Chipsteuerung werden kurz aufgezeigt.
Home Top Einführung Aufbau Bedienung

1.2 Hardware

1.2.1 Das Programmiergerät

Als Programmiergerät kommen viele in Frage. Ich verwende den AVR-ISPmkII von ATMEL, der am wenigsten Ärger macht und vom AVR Studio ideal unterstützt wird. Es funktionieren aber prinzipiell alle Adapter, die eine sechspolige ISP-Schnittstelle zur Verfügung stellen und die vom Studio unterstützt werden.

Die Beispiele sind alle mit dem AVR-ISPmkII erstellt.

1.2.2 Die Programmier-Hardware

Programmieradapter Die nötige Hardware für den Zugriff auf den AVR ist hier gezeigt.

Die Stromversorgung der Schaltung erfolgt aus einem Viererpack AAA-Akkus mit je 1,2 Volt. Aus dieser Quelle wird auch das Programmiergerät AVR-ISPmkII mit versorgt (über die GND/VTG-Anschlüsse am ISP6).

Über die drei Anschlüsse MOSI, MISO und SCK erfolgt die Kommunikation des Programmiergeräts mit dem AVR-Chip. Der AVR-Chip geht in den Programmiermodus, wenn der RESET-Pin 1 auf niedrigem Potential liegt. Dieser Pin wird durch den Widerstand von 10k auf Plus gezogen und vom Programmiergerät über die Leitung RST auf Null gezogen. Ist die Programmierung beendet, lässt das Programmiergerät diese Leitung wieder los, der 10k-Widerstand zieht RESET auf Plus und das im Professor abgelegte Programm legt los.

Zwischen der positiven und negativen Betriebsspannung liegt noch ein Keramikkondensator mit 100 nF. Dieser blockt Spannungsschwankungen ab, die von den Schaltvorgängen im Prozessor herrühren können. Der Kondensator ist so nahe als möglich an die Betriebsspannungs-Pins 4 (GND) und 8 (VCC) zu montieren.

Die Pins des Prozessors sind mit denjenigen Signalnamen bezeichnet, die hier praktisch zum Einsatz kommen. In anderen Anwendungen haben viele der Pins andere Funktionen bzw. wechseln ihre Funktion nur im Programmiermodus.

Mit dieser einfachen Hardware können wir schon mit dem AVR kommunizieren und in seine Innereien eingreifen.
Home Top Einführung Hardware Bedienung

1.3 Bauteile und Aufbau

1.3.1 Bauteile

Der Akku

LEFT RIGHT

Das hier ist der verwendete Akkupack. Verwendbar ist alles was zwischen vier und fünf Volt abgibt.

Der ISP6-Stecker

Der ISP-Stecker ist eine zweireihige dreipolige Stiftleiste. Für fliegenden Aufbau und gedruckte Platinen reicht der Einbau einer solchen Stiftleiste aus. Bei Aufbau auf dem Breadboard muss ein Adapter gebastelt werden.

ISP6-Stecker 2 ISP6-Stecker 3 Dieser ISP-Steckverbinder muss selbst gebaut werden. Dazu wird ein 3 * 4 Augen großes Stück einer Lochrasterplatine abgesägt und auf der Lötseite eine 2 * 3-polige Stiftleiste mittig aufgelötet (Stiftleiste nur bis Lochtiefe einstecken und mit Lötauge verlöten). Danach zwei 3-polige einreihige Stiftleisten auf der Bestückungsseite einlöten und mit den benachbarten Lötaugen der zweireihigen Stiftleiste verbinden.

Der 10k-Widerstand

Widerstand 10k Das hier sind zwei Bauformen von Widerständen mit 10k. Oben ist ein Kohleschicht-Widerstand, unten ein Metallfilm-Widerstand abgebildet. Die Kodierung des Widerstandswerts ist angegeben.

Der 100 nF-Keramikkondensator

Keramikkondensator 100nF Das hier ist ein Keramik-Abblockkondensator mit 100 nF Kapazität.

Die 8-polige IC-Fassung

DIP8-Fassung In diese Fassung kommt der 8-polige Mikroprozessor.

Der ATtiny13

ATtiny13-20PU ATtiny13-20PU Das hier ist der Mikroprofessor. Er hat in seinem Innern ganz viel Hardware, die wir noch kennenlernen werden, angeschlossen an acht äußere Beine, die etwas eigenwillig durchnummeriert sind (linkes Bild). Immerhin ist Pin 1 mehrfach gekennzeichnet. Zum Einen ist an der Eins ein Dreieck aufgedruckt. Zum anderen ist eine Kuhle eingeprägt. Zum Dritten besitzt der Chip mittig eine Einbuchtung an der Seite, auf der die Eins liegt. Mit diesen Merkmalen ist es möglich, den Chip richtig herum in die Fassung zu stecken.

Er passt natürlich nicht in die zugehörige Fassung. Das liegt daran, dass seine Beine nicht ganz rechtwinklig nach unten ragen sondern etwas nach außen gerichtet sind. Also biegen wir die vier Beine jeder Seite vorsichtig etwas einwärts, indem wir die jeweils vier Beine jeder Seite auf einer festen Oberfläche etwas eindrücken bis sie rechtwinklig vom Plastikgehäuse abstehen. Warum das nötig ist, erschließt sich nicht ganz. Wenn man das nicht macht, besteht die Gefahr, dass beim Eindrücken des Chips in die Fassung Beine ganz arg verbogen werden. Dann besteht Lebensgefahr für den Professor und man hat einen Heidenspaß damit, die verbogenen Beine wieder zu begradigen, ohne dass diese abbrechen und damit die €1,85 in die Tonne getreten werden können.

1.3.2 Der Aufbau

Das Breadboard

Breadboard Das hier ist ein Ausschnitt aus dem Breadboard. Breadboard bedeutet "Brütbrett", also ein Experimentier- oder Entwicklersystem. Mit dem Board kann man Schaltungen und Programme ausprobieren, bevor diese in eine gedruckte Schaltung und in die "Großproduktion" gehen.

Breadboard-Verbindungen Die grünen Linien zeigen, welche Löcher mit welchen intern verbunden sind (im unteren Bereich sind nur fünf Verbindungen gezeigt). Die oberen beiden Reihen sind für die Stromversorgung, die unteren Spalten für die Bauteile. Daraus wird jetzt auch klar, weshalb der ISP6-Adapter so eigenartig aufgebaut werden muss: die Trennung in der Mitte ist nun mal zwei Punkte auseinander, eine doppelreihige Stiftleiste würde kurzgeschlossen.

Der Aufbau

Der Aufbau geht in folgender Reihenfolge vonstatten:
  1. ISP6-Adapter und IC-Fassung platzieren.
  2. Stromversorgungsleitungen und Direktverbindungen Verdrahten.
  3. Alle anderen Bauteile (Widerstand, Kondensator) platzieren und verdrahten.
  4. Alle Verbindungen zwischen ISP6-Adapter und IC-Fassung "durchklingeln", das heißt mit dem Durchgangsprüfer oder einem Ohmmeter auf Übereinstimmung mit dem Schaltbild überprüfen.
  5. Stromversorgung (Akkupack) mit den Stromversorgungsleitungen des Breadboards verbinden.
  6. Mit einem Voltmeter an Pin 4 (GND, Minus) und 8 (VCC, Plus) sowie am ISP6-Stecker an den Pins 6 (GND, Minus) und 2 (VTG, Plus) überprüfen, ob die Betriebsspannung dort in Höhe und Polarität richtig anliegt.
  7. Den ATtiny13 in die Fassung drücken und das Programmiergerät an den ISP6-Adapter anschließen. Die Kontrolllampe am Programmiergerät sollte jetzt grün leuchten.
Das Auslassen einzelner Schritte bei dieser Aufbaureihenfolge (besonders der Schritte 4 und 6) wird garantiert mit Fehlermeldungen quittiert. Und für die Fehlersuche sind genau diese beiden Schritte auszuführen, also warum nicht gleich so.

Die folgenden Bilder zeigen die Stadien des Aufbaus.

Bestückung So sieht die Bestückung mit allen Bauteilen aus. Der Akku und der ATtiny sind noch nicht angeschlossen, um die Prüfung der Verbindungen ungestört durchführen zu können.

Versorgung Der Akkupack setzt das Ganze unter Spannung, noch ohne den Tiny. Jetzt mit dem Voltmeter auf richtige Polaritäten prüfen, um den Tiny nicht den Polaritätstod erleiden zu lassen.

Adapter Hier ist jetzt alles komplett und der AVR-ISPmkII-Adapter angeschlossen. Der signalisiert nun mit einem grünen Licht, dass er korrekt aus der USB-Schnittstelle und mit einem weiteren Lämpchen, dass er korrekt aus der Zielschaltung versorgt wird. Rote Lampen würden sagen, dass wir igendetwas falsch gebaut haben.

Damit kann es jetzt losgehen mit den Experimenten und dem Zugriff auf die Innereien des Herrn Professors.
Home Top Einführung Hardware Aufbau

1.4 Bedienung

Um an die Innereien des Professors heranzukommen, brauchen wir Software. Die kriegen wir kostenlos von ATMEL kostenlos, wenn wir dort im AVR-8Bit-Teil nach dem Studio suchen. Allerdings nur für Windoof.

Die folgenden Beispiele sind mit dem ATMEL Studio in der Version 4 erstellt. Das ist eine ältere Version der Studio-Software, die späteren Versionen 5 und 6 arbeiten grundsätzlich genauso, sehen nur ein wenig anders aus und brauchen unangenehm viel Zeit, bis sie das tun, was sie sollen, weil sie völlig überladen sind (Elefanten-Software). Wichtig: gleich zu Beginn "Assembler" auswählen.

Studio-Projekt So sieht das Studio nach dem Start aus: es fordert uns auf, ein neues Projekt anzulegen. Dazu wählen wir ein Assemblerprojekt, geben dem Projekt einen aussagekräftigen Namen, lassen das Studio eine entsprechende Quelldatei gleichen Namens in einem von uns eingestellten Ordner des Dateisystems anlegen und gehen auf Next.

Device-Auswahl Wir wählen als Plattform den Simulator und als Device den ATtiny13 aus.

Studio-Start Für unsere Erkundungen der Innereien ist das Tools-Menue entscheidend.

Tools-Autoconnect Nachdem wir das Programmiergerät der USB-Buchse nähergebracht haben, wählen wir im Tools-Menue "Program AVR" und "Auto Connect" in der Hoffnung, es möge erraten, was wir tun möchten.

Das Tools-Fenster Hat er die USB-Schnittstelle erkannt, öffnet sich das Toolsfenster. In diesem Fenster schalten wir auf den Tab "Main" um.

Einstellungen Hier gibt es nun einiges einzustellen. Im Feld "Device and Signature Bytes" wählen wir schon mal den ATtiny13 aus, drücken aber noch nicht den Button "Read Signature". Zuerst lesen wir im unteren Feld, was uns die Software mitteilt. Dann vergewissern wir uns, dass in den "Programming Mode and Target Settings" der ISP-Mode und dass die ISP-Frequenz unter 300 kHz liegt (wenn nicht: Button "Settings" betätigen und die Frequenz neu einstellen. Erst dann können wir die Signatur lesen.

Signatur Das ist der Bericht des Programmiergeräts. Es hat die Signatur gelesen, mit dem Sollwert des ATtiny13 verglichen und festgestellt, dass sie korrekt ist. Alles ist prima, unser Gerät funktioniert.

Error Wäre dem nicht so, dann käme jetzt diese oder eine ähnliche Fehlermeldung. Dann ist Fehlersuche angesagt. Also brav Spannungen messen und Schaltung durchklingeln, wie oben beschrieben.

Fuses Um noch einen Blick auf die Fuses des Herrn Professors zu werfen, wird der Tab "Fuses" betätigt. Hier sollte erst mal gar nix geändert werden, weil unkoordinierte Verstellungen schnell zu einem unbrauchbaren und nicht mehr ansprechbaren Chip führen können. Wer hier schon verstehen möchte, was die einzelnen Fuses so bewirken, wirft einen oder mehrere Blicke in das Device Databook des ATtiny13 (zu kriegen unter dieser Adresse, 176 Seiten).

Lockbits Das hier versteckt sich unter dem Tab "Lockbits": die Schalter zum Abstellen des Auslesens. Sie können nur überschrieben werden, wenn man den gesamten Speicher löscht (mit dem Button im Tab "Main"). Perfekter Softwareschutz.

Soweit die Innereien des Herrn Professors. Mehr kommt später.
Home Top Einführung Hardware Aufbau Bedienung

©2016 by http://www.gsc-elektronic.net