AVRISP 1.1 In-System-Programmiergerät


Dieses In-System-Programmiergerät ist zum Programmieren aller Atmel AVR-Microcontroller geeignet. Es wird an die serielle Schnittstelle des Computers angeschlossen und kann AVRs programmieren, ohne dass diese aus dem entsprechenden System ausgebaut werden müssen. Das Gerät ist der Nachfolger von AVRISP 1.0. Es ist ähnlich aufgebaut und hat ein etwas anderes Platinenlayout. Die grundlegende Neuerung ist jedoch, dass es selbst auf einem AVR-Microcontroller mit Fridgesoft-Firmware basiert. Es ist schneller als sein Vorgänger und unterstützt jetzt alle AVR-Typen, einschließlich dem ATmega103 und ATtiny. Damit ist es der quasi-Standard und wird auch für alle zukünftigen Projekte eingesetzt werden.


AVRISP 1.1 In-System-Programmiergerät


Zum Programmieren benötigt dieses Gerät keine eigene Stromversorgung, seine Betriebsspannung bezieht es aus dem Zielsystem, an welches es über den zehnpoligen Wannenstecker angeschlossen wird. Die Pinbelegung des Wannensteckers wurde für alle folgenden Geräte beibehalten. Über drei LEDs zeigt das Gerät seinen Betriebszustand an: Die Rote zeigt an, dass der Microcontroller des Zielsystems angehalten wurde, die Grüne zeigt, dass er läuft. Über die gelbe LED kann man den Datentransfer zwischen Computer und Programmiergerät beobachten.

Zusammen mit dem AT90S2313 Application Board oder dem AT90S8515 Application Board lassen sich schnell und preisgünstig Microcontroller-Projekte realisieren.


AVRISP 1.1 von hinten


Dieses Bild zeigt das Programmiergerät von hinten. Das Platinenlayout sieht etwas aufgeräumter aus, ähnelt jedoch seinem Vorgänger. Wie alle neueren Platinen ist auch diese mit einer Masseleitung umrandet. Durch den kompakten und relativ einfachen Aufbau ist dieses Programmiergerät mit geringen Kosten herzustellen (ca. 8 EUR). Das folgende Bild zeigt nocheinmal das Programmiergerät mit Verbindungskabel, das zum Anschluss des Zielsystems benötigt wird.


AVRISP 1.1 mit Verbindungskabel




Bauanleitung für das ISP 1.1:


Wegen der großen Nachfrage gibt es jetzt hier eine Bauanleitung dieses Programmiergerätes. Auch die dazugehörige Software sowie das Bios des Programmiergerätes kann hier heruntergeladen werden. Alle Bauteile, die für dieses Programmiergerät benötigt werden, sind bei Reichelt Elektronik erhältlich und kosten zusammen ca. 8 Euro. In der folgenden Stückliste sind hinter der Bauteilbezeichnung in eckigen Klammern die Reichelt-Bestellnummern der Bauteile angegeben, um ein längeres Suchen zu vermeiden.


Stückliste:


Alle benötigten Bauteile (ausser der Platine und COM-Port-Kabel)


Wenn die Bauteile da sind, muss die Platine erstellt werden. Das Platinenlayout kann hier als hochauflösende GIF-Grafik in 300 dpi heruntergeladen werden. Diese ist bereits gespiegelt, damit die bedruckte Seite beim Belichten auf der Platine aufliegt. Also nicht nochmal spiegeln, sondern so wie sie ist drucken! Wie man aus einem solchen Layout eine Platine herstellt, steht hier.

Zum Bestücken der Platine empfehle ich, das Bild des fertigen Gerätes ganz oben auf dieser Seite als Vorlage zu verwenden. Zu beachten ist, dass die Diode (hinter dem Microcontroller) und der Widerstand (unter dem Microcontroller) auf dem Bild verdeckt sind. Deswegen hier nochmal der Bestückungsplan der Platine:


Bestückungsplan des ISP 1.1 (Ansicht von oben)


Beim Einlöten der Bauteile muss auf die Polarität der Bauteile geachtet werden, insbesondere bei den Elkos, der Diode und den Leuchtdioden. Die ICs werden gesockelt, also den Sockel einlöten und anschließend den IC draufstecken. Das Massepin der Widerstandsarrays ist mit einem Punkt bezeichnet, der in das quadratische Lötpad der Platine eingelötet werden muss. Die Diode wird so eingelötet, dass sie im Falle einer Verpolung der Versorgungsspannung diese kurzschließt.


Die Software:

Um das Programmiergerät in Betrieb zu nehmen, muss der darauf befindliche Microcontroller mit dem passenden Bios geflasht werden. Dafür ist wohlgemerkt einmalig ein Fremd-Programmiergerät erforderlich. Wenn der ISP dann funktioniert, kann er sich quasi selbst fortpflanzen, weil er ja seinen eigenen Typ Microcontroller flashen kann.

Falls Sie wirklich keinen kennen, der ein Universal-Programmiergerät hat, können Sie mir einen AT90S2313-Microcontroller im frankierten Rückumschlag (aber mit Polstermaterial und bereits draufgeschriebener Adresse!) schicken, so dass ich ihn programmiere und Ihnen zurückschicke.

Bei der Programmiersoftware handelt es sich um ein Shell von Fridgesoft, das den GNU-C-Compiler (WinAVR) bedient. Das Shell und das Flasher-Bios gibt es auf der Fridgesoft Downloadseite. WinAVR kann kostenlos hier heruntergeladen werden.


Zusammenfassung:

Um dieses Programmiergerät zu bauen, müssen Sie folgende Schritte durchführen:
  1. Platinenlayout herunterladen und drucken
  2. Platine belichten, ätzen und bestücken
  3. WinAVR herunterladen und installieren
  4. Das Fridgesoft-Shell samt Flasher-Bios herunterladen und ins WinAVR-Verzeichnis kopieren
  5. Das Flasher-Bios in den den ISP1.1 flashen (Fremdprogrammiergerät erforderlich!)
  6. Das fertige ISP1.1 an den COMport anschließen und loslegen
Programmiert wird recht komfortabel in C, und zum Testen des Programms muss man nur F9 drücken. Dann wird der Quelltext compiliert, der Microcontroller des Zielsystems angehalten, geflasht und anschließend neu gestartet. Das geschieht innerhalb weniger Sekunden, und man kann sofort jede Änderung im Programm überprüfen, ohne irgendwas umstecken zu müssen.


FAQ:

Wozu ist die Schutzdiode da?

Die Schutzdiode hat folgenden Sinn:
Das Programmiergerät bezieht seine Versorgungsspannung aus dem Zielsystem. Wenn man nun (versehentlich) die Spannungsversorgung des Zielsystems verkehrt rum anschließt und das Programmiergerät dransteckt, würde dieses falschherum mit Spannung versorgt werden, und das mögen die Microcontroller gar nicht (die werden ganz schön heiss und gehen kaputt). In so einem Fall ist es besser, wenn die Stromversorgung des Zielsystems (ist ja üblicherweise ein 7805, der auf 1A begrenzt ist) kurzgeschlossen wird, um das Programmiergerät zu schützen. In Reihe kann man so eine Diode wegen dem relativ großen Spannungsabfall nicht schalten.

Wie oft kann man einen AT90Sxxxx flashen?

Atmel schreibt, man könnte die Microcontroller 1000x flashen. Ich habe das nicht geglaubt, und ein Testprogramm geschrieben, das Zufallszahlen flasht, verifiziert und die Flashzeit misst. Nach fünf Tagen Dauerbetrieb und ca. 380000x flashen habe ich den Test abgebrochen, weil der Microcontroller unkaputtbar war und die Flashzeit sich nicht wesentlich verändert hat (soll angeblich länger werden, steht im Datenblatt). Man kann also beruhigt jede Änderung im Programm schnell mit F9 ausprobieren...



Zusammenfassend gibt es hier nochmal den Schaltplan, das Platinenlayout und den Bestückungsplan dieses Gerätes als PDF.





(c) 2001 by Hubersoft.net