Ingenieurbüro Bernhard Redemann
Elektronik, Netzwerk, Schulung
Das Bessere ist der Feind des Guten (Voltaire, 1694-1778)

 Bestellmöglichkeiten
   Im Online Shop

 Produkte / Bausätze
   USB-Produkte
   Bluetooth-Produkte
   HV-ISP-Progr. (Atmel)
   Schrittmotor Modul
   ENC28J60 Modul


    usbasp - nur 10,00 €

 Praxis / Freeware
   Projekt: Netzteil
   Arduino Clone
   Fritzing
   Eagle 3D
   DCF77 (Pollin)News!
   Messgerät (RS232-USB)
   HV-Programmer/Atmel µC

 News und Aktuelles
   19.02.2010:
   Androino2099: Update!
   26.01.2010:
   Androino2099: News!
   08.01.2010:
   USB-Set, Sonderangebot!
   29.12.2010:
   HV-Prog, Sonderangebot!
   28.12.2009:
   AVR Komplettset!
   23.12.2009:

Aufbau eines high-voltage
Programmers für Atmel MCs (1) (2)


Download zip File (eagle .sch, Dokument, Software, ca. 9MB)
Hier gehts zum Bausatz


Einleitung
Ursprünglich ist der high voltage (HV)-Programmer von Chan auf http://elm-chan.org/works/avrx/report_e.html entstanden. Nachdem ich diesen aufgebaut, ihn für sehr nützlich und gut befunden hatte, entschloss ich mich, diese Anleitung und das Layout dazu zur Verfügung zu stellen. Der ISP-Programmer ist eine Version mit dem HCT125 (ähnlich Atmel AVR ISP Dongle), welcher im Layout mit eingeschlossen ist. Beide Programmer arbeiten unabhängig voneinander, der HV-Programmer ist dafür gedacht, bei falsch gesetzten Fuse-Bits diese zurückzusetzen, falls man an den Mikrocontroller sonst nicht mehr herankommt. Durch entsprechende Jumper kann man zwischen dem ISP- und HV-Programmiermode umschalten.

Problem
Die meisten der heutigen Mikrocontroller werden normalerweise mit einer Software und einem Hardwareadapter (ISP=In-System-Programmer) programmiert. Da die Atmel-Controller sogenannte Fuse-Bits besitzen, gibt es hier ein Problem, wenn diese Fuse-Bits „irgendwie“ gesetzt werden. Die Fuse-Bits geben z.B. an, ob der Controller mit einem externen Quarz getaktet oder die Reset-Leitung als normaler Pin fungieren soll. Bei unüberlegtem oder versehentlichem Setzen dieser Fuse-Bits kann der Controller nicht mehr über den ISP-Adapter programmiert werden, der Controller bleibt sozusagen für den ISP verschlossen.

Lösung
Zur Lösung dieses Problems kann man sich entweder ein STK500 Programmiergerät von Atmel kaufen (ca. 100,- €) oder diesen preiswerten Adapter selber zusammenbauen. Dieser Programmer bietet die Möglichkeit der „high voltage“ (HV)-Programmierung, nur mit dieser ist es möglich, die Fuse-Bits wieder in einen default-Zustand zu setzen und danach wiederum mit dem ISP-Programmieradapter den Controller wie gewohnt zu programmieren. „High voltage“ bedeutet, dass der Controller mit 5V und 12V gebrannt wird.

Vor- und Nachteile
Die Vorteile dieses HV-Programmers liegen darin, dass man keinen zusätzlichen, bereits programmierten Controller benötigt, um den HV-Programmer aufzubauen. Der Programmer kann diverse Atmel-Controller programmieren, siehe dazu auch die Liste am Ende dieses Dokuments, in der diverse Controller aufgeführt werden. Die Bauteile des Programmer kosten ca. 15€, er ist also sehr preiswert. Als Nachteil wäre zu erwähnen, das durch die Anzahl der Bauteile ein gewisser Zeitaufwand benötigt wird, um ihn aufzubauen. Für diejenigen, die nur Windows-Oberflächen und Mausklicks gewohnt sind, könnte das Kommandozeilentool auch ein Nachteil sein. Dazu jedoch später, die Bedienung ist kinderleicht!

Bauteileliste
Wer diesen hier beschriebenen Programmer nachbauen will, benötigt zunächst folgende Bauteile:
Halbleiter:
1 x B80C5001 x BC327 3 x LED 3mm1 x 78L051 x 78L12 1 x 74HCT299*2 x 2SA1345**2 x 2SC3402**

* (ein „HC“-Typ hat sich als ungeeignet herausgestellt!)
** („digitaler“ Transistor mit internen Widerständen)

Kondensatoren:
1 x 220µF – 470µF 35V2 x 100µF 12V6 x 100µF

Widerstände:
2 x 100 Ohm1 x 470 Ohm1 x 680 Ohm3 x 4,7kOhm18 x 1kOhm

Sonstiges:
SUBD-Stecker, 25-polig, männlich
Buchsenleisten für ICs etc.


Stromlaufplan
Der Stromlaufplan auf der nächsten Seite wird zugrunde gelegt. Wie man erkennen kann, gibt es drei Jumper, die vor jeder Programmierung gewissenhaft und richtig gesetzt werden müssen. Folgende Tabelle zeigt die notwendigen Jumperstellungen, wenn man den ISP oder HV Modus benutzen möchte:

Jumper

ISPHV
JP12-31-2
JP21-22-3
JP3Nicht relevantFür 8-poligen µC
1,2 : Signal R/B
3 : Signal BS1
JP4STK200 oder 300 kompatibel
STK200: 1-2
STK300: offen
offen


Erläuterung zu den Jumpern:
Bei JP1 wird die 5V Versorgungsspannung entweder auf das IC1 (ISP programmieren) oder IC7 gelegt.
Bei JP2 wird vom DSUB-Stecker Pin12 im ISP Modus mit Pin 2 verbunden, im HV Modus wird Pin 12 mit Pin 9 verbunden.
JP3 ist nur für den HV-Modus relevant. Siehe Verdrahtung für 8-polige Atmels.
JP4 ist für die Kompatibilität von STK200/300 im ISP Modus da (Default: offen).

HV-Stromlaufplan.gif    ISP-Stromlaufplan.gif

Desweiteren sind im Stromlaufplan diverse Buchsen- und Stiftleisten zu erkennen. Hier die Erklärungen für alle Steckverbinder:
X1Parallelport, Stecker (männlich), wird mit 1zu1 Verlängerungskabel an den PC angeschlossen.
X2Spannungsversorgung, sollte zwischen 14 und 16V AC oder DC betragen.
ST1Adapter Stiftleiste für Erweitungsboard, z.B. QFP Gehäuse etc. Hier sind alle Signale vorhanden, um den Controller im parallelen Modus zu brennen.
ST2ISP Adapter, 6-polig. Nach Standard aufgebaut. Ebenfalls für Erweiterungsboards.
JP15V Spannungsversorgung entweder zum ISP- oder HV Brennen (siehe Tabelle oben).
JP2Pin 12 von X1 entweder zum ISP- oder HV Brennen (siehe Tabelle oben).
JP3R/B und BS1 Signal für 8-polige Controller (siehe Tabelle oben).
JP4Entweder STK200 oder STK300 kompatibel
BU1A, BU1BDie Signale an diesen Buchsen müssen, je nach MC-Typ, mit IC-BU1 und IC-BU2 verbunden werden. Eine genaue Anschlussbelegung ist unten zu finden.
BU2ISP Signale zum Verbinden nach IC-BU1 oder IC-BU2.
BU1-40,BU2-40, BU3-28Buchsenleisten für die Controller (8 bis 28-polig und 40-polig)


LEDs
LED1 – Programmier-LED für HV
LED2 – 12V Programmierspannung vorhanden
LED3 – Zeigt an, dass JP1 auf den HV Programmiermodus eingestellt ist
LED4 – Zeigt an, dass JP1 auf den ISP Programmiermodus eingestellt ist

Belegung der Buchsenleiste BU1A/BU2A und ST1 (HV Programmierung)
Um einen Controller im HV-Modus wieder in einen default-Zustand zurückzusetzen, sind die Signale an den Buchsenleisten BU1A/BU1B oder ST1 notwendig. Wenn ein Controller z.B. die Datenleitungen D0 bis D7 nicht benötigt (z.B. Tiny 15 o.ä.), bleiben diese unbenutzt. Die Belegung geht aus dem linken Bild hervor:

          

Der ISP Anschluss (rechtes Bild) entspricht der „Norm“ des 6-poligen Atmel-Verbinders. Auch hier besteht mit ST2 die Möglichkeit, diesen Anschluss für externe Boards zu nutzen.

Bestückungsplan, Jumper, 3D-Ansicht
05_Bestückungsplan.gif    06_HVJumper.gif     07_ISPJumper.gif     08_Brenner3D.jpg