AVR HV-Programmer

Wechseln zu: Navigation, Suche

Ein "Hochspannungs"-Programmierer für AVR legt eine Spannung von +12V an den Reset-Eingang. Damit lassen sich auch Fusebits programmieren, die mit dem normalen ISP-Programmer nicht zugänglich sind.

Zu unterscheiden sind das High Voltage Serial Programming (HVSP) und das Parallel Programming (PP). Welche Methode(n) ein AVR unterstützt, steht im jeweiligen Datenblatt des AVRs.

Bekannte HV Programmer sind:

Hochvolt-Programmer sind nur dann als In-System-Programmer verwendbar, wenn die Schaltung mit den 12 V an der Resetleitung zurechtkommt und auch alle anderen Pins genügend hochohmig und ohne schaltungstechnische Nebenwirkungen (etwa einem Brückenkurzschluss) angeschlossen sind. Da dies bei der Menge anzuschließender Pins [im Vergleich zur Gesamtanzahl der Pins des Gehäuses] eher selten der Fall sein wird, werden die Chips fast immer „solo“ (sozusagen „Out-System“) gebrannt. Am ehesten bietet sich HVSP-ISP für 14-beinige SMD-AVRs an; dazu müssen in der Einsatzschaltung ggf. entsprechende Vorkehrungen getroffen werden.

Ein Platinenlayout für ElmChans Hochvolt-Programmer

Dieser benötigt einen PC mit Parallelport sowie eine externe Stromversorgung von 6..24 V=. USB-Parallel-Konverter (für Drucker) funktionieren nicht. Vorteil: Ein Mikrocontroller wird nicht benötigt.

Wie auch das Original beherrscht dieser PP (parallel programming) als auch HVSP (serial programming). Für den rein seriellen Gebrauch (HVSP der 8- und 14-Beiner) kann man auf den 74HC299 verzichten.

Schaltplan im Eagle-Format, Bestückungspläne und Platinenlayout: Christoph Kessler

ElmChans Konzept ist eine ausgesprochene „Billiglösung“, die 20-poligen AVRs bevorzugend, dem scheint eine einseitige Platine mit Drahtbrücken im Eagle-Light-Format 80×100 mm² angemessen. Jener verzichtet auf Spannungsregler; einen 78L05 hinzuzusetzen und das Ganze mit stabilisierten 12 V zu speisen sollte jedoch nicht allzu schwer fallen.

Das Foto (unten) zeigt schon die „Luxusversion“, Teilbestückung ist entsprechend denkbar.

Achtung, Schaltplanfehler! Die Bezeichnungen /AUTOFEED und /SELIN sind genau verkehrt herum.

Eagle board / schematic files

Schematic.png

Components.png

AVR HV Programmer Layout.png

AVR HV Programmer Foto.jpg

Software, auch für ATtiny4..10

Open-Source, Download. Kann direkt ELF-Dateien laden, kein Umweg über avr-objcopy erforderlich. Kann EEPROM, Fuses und Lockbits „in einem Rutsch“ der (von-neumannisierten) Hex- oder ELF-Datei entnehmen und brennen. Sowie die Chip-Signatur aus der Datei (mit #include <avr/signature.h> zu generieren) mit dem Chip vergleichen. Die Software kennt alle 8-Bit-AVRs. Unterstützt direkten (giveio.sys) als auch indirekten (InpOut32.dll) Portzugriff aufs Parallelport sowie eine wahlfreie Port(basis)adresse. Sollte von Windows 95 bis Windows 10 sowie Linux (PC mit Parallelport) laufen.

Der sechsbeinige Schaltkreis im SOT23-Gehäuse ist wie folgt an die 8-polige Fassung anzuschließen:

Pin der Fassung Pin des Controllers Signalname
1 6 RESET = Programmierspannung
2 3 TPICLK (Takt)
4 2 GND (Bezugspotenzial)
7 1 TPIDATA (Daten, bidirektional)
8 5 5P (geschaltet)

Das Pin 4 des Controllers kann frei bleiben.

Fuse bei ATtiny4..10

Diese Mikrocontroller haben laut Dokumentation keine Fuse(s), sondern Configuration Bits. avr-gcc trägt diesem Umstand „Rechnung“, dass #include <avr/fuse.h> nicht wie erwartet funktioniert: Die Configuration-Bits sollen laut Linker-Skript in der Sektion .config ankommen, mit der linearen Adresse 0x820000 (die gleiche wie .fuse für die übrigen AVRs). In die ELF-Datei setzt man ein einzelnes Configuration-Byte so:

   uint8_t __attribute__((__section__(".config"))) Config=0xFE;  // Reset = I/O-Pin

Der ELF-Loader vom oben angegebenen avrpp berücksichtigt diese Besonderheit.

siehe auch

Miniatur-Version von ElmChans HV-Programmer

AVR In System Programmer