HVProg

  • 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

Einleitung

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).

Programmierschnittstellen

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

Changelog

  • 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

Rechtliches

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.

Hardware

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)


Belegung der Anschlüsse

  • 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.


Software

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:
  1. Den Programmieradapter mit dem PC und dem ISP Ports verbinden
  2. Mit dem 'Selfprogramming' Jumper Pin 1 und 2 überbrücken
  3. Die Stromversorgung anschließen (Basis: nur 5V nötig; Verbesserte: reguläre Versorgung)
  4. AvrProg starten (AvrStudio: Tools/AvrProg)
  5. 'stk500.ebn' auswählen und die Fuses passend setzen (ext. high frequency crystal, nur Mega8535. siehe Bild unten)
  6. Die Firmware aufspielen
  7. Versorgungsspannung und Programmer vom Board trennen
  8. 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:




Bilder

Erster Prototyp
PCB oben
PCB unten
Gehäusehälften
Eingebaut
Fertig verschlossen
HV-Parallel Schaltung
40pin Programmierboard
 



FAQ

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.



Umsetzung von Dritten

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!

Von:
    Klaus Leidinger

Download
    Das Board wurde zur offiziellen Version. Der Download findet sich unter Hardware.

Website
    www.mikrocontroller-projekte.de
Von:
    Crazy Horse

Download
    Schematic
    Board




* * * *

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