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:
- 1 Hartpapier einseitig 1,5 mm [FHPCU 50x100 mm]
- 1 SUB-D Printbuchse, 9-polig, Euro-Norm [D-SUB BU 09 EU]
- 1 Flachbandkabel 10-adrig, 3m [AWG 28-10G 3m]
- 4 Elkos radial 0,1µF [rad 0,1/100]
- 1 Elko radial 10µF [rad 10/35]
- 1 Quarz 7,3728 MHz [7,3728 HC-18]
- 2 Keramik-Kondensatoren 39 pF [KERKO 39p]
- 1 IC MAX232 [MAX232 CPE]
- 1 IC AT90S2313 [AT90S2313 PDIP]
- 1 IC-Fassung 16 Pins [GS 16]
- 1 IC-Fassung 20 Pins [GS 20]
- 1 Kohleschicht-Widerstand 10k [1/4W 10K]
- 1 Widerstandsarray 10k 5er, gemeinsame Masse [SIL 6-5 10k]
- 1 Widerstandsarray 150 Ohm 4er, gemeinsame Masse [SIL 5-4 150]
- 1 LED 3mm standard, rot [LED 3mm ST rt]
- 1 LED 3mm standard, grün [LED 3mm ST gn]
- 1 LED 3mm standerd, gelb [LED 3mm ST ge]
- 1 Wannenstecker 10 Pins [WSL 10G]
- 2 Pfostensteckverbinder 10 polig [PFL 10]
- 1 Diode 1A [1N 4001]
- 1 Serielles Verbindungskabel zum Computer [AK 230]
|
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:
- Platinenlayout herunterladen und drucken
- Platine belichten, ätzen und bestücken
- WinAVR herunterladen und installieren
- Das Fridgesoft-Shell samt Flasher-Bios herunterladen und ins WinAVR-Verzeichnis kopieren
- Das Flasher-Bios in den den ISP1.1 flashen (Fremdprogrammiergerät erforderlich!)
- 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