- Kompatibel mit AvrStudio
- Unterstützt alle aktuellen AVR Controller
- Paralleles und serielles High-Voltage Programmieren
- Blockorientiertes STK500 Protokoll
- Klein und einfach aus wenigen Bauteilen aufzubauen
- Schaltplan und Boardlayout verfügbar
Das Projekt ist als Erweiterung des Evertool Projekts von Martin Thomas
entstanden. Er hat den AVRISP und JTAG-Adapter aus wenigen Teilen
nachgebaut. Leider bieten beide keinen High-Voltage Programmiermodus,
der die einzige Möglichkeit der Wiederbelebung darstellt, wenn man sich
z.B den Reset oder SPI wegdefiniert hat. Die einzige Möglichkeit war
bisher das STK500 von ATMEL.
HVProg ist ein Redesign des STK500, bei dem alle Komponenten eines
Entwicklungsboards weggelassen wurden. Es basiert auf den Original Atmel
Schaltplänen, die frei im Netz verfügbar sind (z.B. bei avrfreaks.net). Hauptziel war es, alle AVR's in allen verfügbaren Programmiermodi zu beschreiben.
Wenn man ein Entwicklungsboard für ATMELs AVR Controller sucht, ist man mit einem echten
STK500 besser bedient. Wenn man nur einen ISP-Programmieradapter
benötigt, ist man mit dem AVRISP aus dem Evertool Projekt besser
bedient!
Zu beachten ist, dass..
- der HVProg das STK500 als Entwicklungsboard nicht ersetzten kann und auch nicht soll
- die meisten Entstör- und Schutzmaßnahmen weggelassen wurden
- HVProg in der Basis-Variante eine geregelte 12V- und 5V-Eingangsspannung braucht
- man für einen Arbeitsschritt einen funktionierenden Programmer braucht (am besten AvrProg kompatibel, siehe Software)
- HVProg als ISP-Adapter nur für 5V Systeme getestet wurde
Es sind zwei Varianten des Projekts verfügbar:
- Die Basis-Variante enthält einzelne Anschlüsse für die unterschiedlichen Programmer-Modi und ist nur
als Schaltplan verfügbar.
Des Weiteren benötigt diese Variante eine geregelte 5V und 12V
Spannungsversorgung. Diese Version ist für eigene Weiterentwicklungen
und
Boardlayouts gedacht und wird nicht mehr weiterentwickelt (grobe Fehler
werden weiterhin aktualisiert).
- Die verbesserte Variante ist als Schaltplan und
Boardlayout verfügbar, und es gibt eine ausführliche, bebilderte
Anleitung zum
Gehäuseeinbau. Für diese Version werden demnächst noch Adapterplatinen
für die parallele HV-Programmierung online gestellt. Außerdem
benötigt diese Variante eine Eingangsspannung von mindestens 15V (AC
oder DC).
Basis-Variante
- 6 Pin ISP
- 10 Pin ISP
- Serielles High-Voltage-Programming (kein definierter Anschluss)
- Paralleles High-Voltage-Programming (STK500 kompatible
Control- und Data-Anschlüsse und ein zusätzlicher Anschluss für weitere
benötigte Signale)
Verbesserte Variante
- 6 Pin ISP
- 20 Pin Anschluss für ISP, paralleles- und serielles High-Voltage-Programming
- 03.10.2004 -> Erste Version ins Netz gestellt (V0.2)
- 05.10.2004 -> Schaltplan als Eagle-Datei verfügbar
- 06.11.2004 -> Version 0.3 mit weniger Bauteilen
- 24.04.2005 -> Komplett überarbeitete Seite mit neuen Infos
- 29.09.2005 -> Programmierproblem gelöst. Siehe Software-Section
Die Schaltung kann für nichtkommerzielle Zwecke frei benutzt werden. Ich
bin in keinster Weise dafür verantwortlich, wenn durch meine Schaltung
irgendein Schaden entsteht, sei es durch Fehlinformation meinerseits
oder beliebige andere Gründe.
Für den Inhalt der Seiten, auf die ich verlinke bin ich nicht
verantwortlich. Externe Inhalte unterliegen dem Copyright des jeweiligen
Besitzers.
Basis-Variante (v0.3)
- Schaltplan im Eagle-Format (Freeware 4.11): Download
- Schaltplan als gif-Datei (ca 400kb): Download
- Bauteile-Liste als txt: Download
Verbesserte Variante (v0.5)
- ISP: Der Anschluss entspricht dem ATMEL Standard (s.STK500 User Guide S.51)
- HV-Seriel: (Genaue Pinbelegung steht im jeweiligen Datenblatt unter Memory Programming/High Voltage Serial Programming)
| Pin Name |
uC Pin |
| SWCLK |
XTAL1 |
| TRST |
Reset (High Voltage Enable Jumper muss gesetzt sein) |
| PPD0 |
'Serial Data Input' (meist PB0) |
| PPD1 |
'Serial Instr. Input' (meist PB1) |
| PPD2 |
'Serial Data Output' (meist PB2) |
- HV-Parallel: Besonderheiten im STK500 User Guide beachten (Tabelle S.21, Stichworte BSEL2 und PJUMP)
| Pin Name |
uC Pin |
| VCC |
Spannungsversorgung für den Ziel-uC |
| GND |
Ground |
| TRST |
Reset (High Voltage Enable Jumper muss gesetzt sein) |
| SWCLK |
XTAL1 |
| PPC0 |
Wenn BSEL2, dann an PortA.0, sonst nicht benötigt |
| PPC1 |
PortD.1: Rdy/Bsy |
| PPC2 |
PortD.2: OE |
| PPC3 |
PortD.3: WR |
| PPC4 |
PortD.4: BS1 |
| PPC5 |
PortD.5: XA0 |
| PPC6 |
PortD.6: XA1 |
| PPC7 |
PortD.7: PAGEL |
| PPD0 |
PortB.0 |
| PPD1 |
PortB.1 |
| PPD2 |
PortB.2 |
| PPD3 |
PortB.3 |
| PPD4 |
PortB.4 |
| PPD5/MOSI |
PortB.5 |
| PPD6/MISO |
PortB.6; wenn PJUMP, dann an PortC.0 |
| PPD7/SCK |
PortB.7; wenn PJUMP, dann an PortC.1 |
- Externer Takt für die Wiederbelebung bei verstellten
Clock-Fuses am Pin SWCLK. Der Takt ist dazu mit Xtal1 zu verbinden und
kann im AvrStudio über das STK500 Plugin auf bis zu 3,69MHz eingestellt
werden.
Die Original-ATMEL-Firmware liegt im .ebn Format vor, das nur AvrProg (im AvrStudio
enthalten) verarbeiten kann. Wenn man den Original
Avr910-Programmieradapter hat und einen den At90s8535 benutzt, kann man
die Firmware problemlos aufspielen. Die Datei befindet sich im AvrStudio
Verzeichnis ".\Stk500\stk500.ebn".
Einen passenden Programmer für den Mega8535 gibt es z.B bei Klaus Leidinger zum Nachbau.
Aufspielen der Firmware:
- Den Programmieradapter mit dem PC und dem ISP Ports verbinden
- Mit dem 'Selfprogramming' Jumper Pin 1 und 2 überbrücken
- Die Stromversorgung anschließen (Basis: nur 5V nötig; Verbesserte: reguläre Versorgung)
- AvrProg starten (AvrStudio: Tools/AvrProg)
- 'stk500.ebn' auswählen und die Fuses passend setzen (ext. high frequency crystal, nur Mega8535. siehe Bild unten)
- Die Firmware aufspielen
- Versorgungsspannung und Programmer vom Board trennen
- Den 'Selfprogramming' Jumper wieder auf 2 und 3 stellen (Standardposition)
Wichtig:
Wer den AvrProg von Klaus Leidinger benutzt sollte auf jeden Fall
auf Version 3.8 aktualisieren,
sonst kommt es bei Benutzung eines Mega8535 zu Fehlern!
Die Fuse Bits müssen so eingestellt werden:
Beim Schreiben der Firmware mit Klaus Leidingers Programmer kommt immer ein Schreibfehler (nur bei 90s8535)
Das war ein Bug in der Avr910 Programmer Firmware V3.6. Das Problem ist mit der Version 3.7 behoben. Ein Update ist
hier verfügbar und sollte aufgespielt werden.
Mit der Basis-Version funktioniert das HV-Programmieren nicht
Die 12V Spannungsversorgung muss für diesen Programmier-Modus exakt
zwischen 11.5V und 12.5V liegen, sonst können Probleme auftreten.
Der HV- und/oder ISP-Programmiermodus funktioniert nicht
Der 'Selfprogramming' Jumper muss auf Position 2,3 stecken. Für den HV-Modus muss der 'High Voltage Enable' Jumper gesetzt sein.
Läuft HVProg mit der neuen 2.x Firmware zusammen?
Ja, da das STK500 hardwaremäßig nachgebildet wird, werden voraussichtlich alle kommenden Firmwareversionen problemlos laufen.
Hier finden sich Abwandlungen des Original-HVProg, die von anderen an ihre speziellen Wünsche angepasst wurden.
Es ist möglich, dass einige der oben gegebenen Spezifikationen nicht auf diese Nachbauten zutreffen!
* * * *
Zu guter Letzt noch einen Dank an die Leute vom mikrocontroller.net Forum
und im Besonderen an Klaus Leidinger für das Boardlayout sowie seine Unterstützung und Hilfe.
Tobias Hammer
|