Was tun, wenn unser Programmer den AVR nicht mehr ansprechen kann?ACHTUNG: Der Nachfolger heißt RescueAVR-MikroShield und besteht nur noch aus drei Bauteilen!Es gibt ja schon etliche Geräte, die verfuste AVRs wieder zur Zusammenarbeit mit unserem Programmer überzeugen können. Neben einigen Programmern, die High-Volt-Programming beherrschen (nicht meine Preisliga) gibt es z.B. den Fusebit-Doctor. Bei den heutigen Preisen für Mikrocontroller müssen wir uns allerdings fragen, ob es den Aufwand überhaupt lohnt. Schön wäre, wenn es minimalistischer ginge. Wenn wir uns nicht ganz blöd anstellen, brauchen wir sowas ja auch nur selten. So ein Arduino hat doch eigentlich schon fast alles, was es braucht, außer die 12V Spannungsversorgung. Hat da schon mal jemand was konstruiert? Ja, es hat!
Im Bild sehen wir, wie mein 2,70 Euro China-Arduino-Uno einen ATtiny85 bearbeitet, bei dem ich den RESET-Pin deaktiviert habe,um ihn als normalen I/O-Pin zu benutzen. Die Programmierung war durch einen vorher(!) installierten Bootloader möglich, aber nicht mehr per ISP. Mittels RescueAVR können wir das nun jederzeit wieder rückgängig machen. Der UNO wird über USB mit Spannung versorgt. Die 12V kommen über das schwarz/orange Kabel auf das "Shield". |
Das "Shield"Als Schaltung für die High-Volt Steuerung des RescueAVR hat der Entwickler dieselbe verwendet, die auch beim Fusebit-Doctor verwendet wird. Die Software (Sketch auf "arduinisch") läuft nämlich auch auf der Fusebit-Doctor Hardware, darum soll es hier aber nicht gehen. Der entsprechende Schaltungsteil ist links abgebildet. Die Funktion ist ganz einfach: Wird HIGH-Pegel auf Pin 13 des Arduino gegeben, werden die 12V auf des RESET-Pin unseres AVR gegeben.Aufbau: Ich habe natürlich wieder meine geliebten Lochrasterplatinen benutzt. Der Aufbau ist unten dargestellt. Der Aufkleber ist auf Inkjet-Papier ausgedruckt, oben mit klarem Packband versiegelt und mit Klebestift auf die Platine geklebt. Hauptzweck ist, die Belegung der Pins darzustellen. Etwas fummelig ist das Einlöten der Anschlusspins. Diese bestehen aus je einem einzelnen Stift einer Stiftleiste, welcher ohne den Kunststoffkörper oben und unten verlötet werden muss. Wen der nicht rechtwinklige Sitz auf dem Arduino stört, kann eine weitere Lochraster-Reihe investieren. Ganz 90 Grad werden es wegen der nicht normgerechten Pinanordnung der Arduinos aber auch so nicht werden (aber etwas besser). Funktionstest: Bevor wir unser Werk mit dem Arduino verbinden, machen wir natürlich einen Funktionstest. Dazu schließen wir 12V an den dafür vorgesehenen Eingang an. An "HV out" kommt ein Multimeter. Außerdem halten wir eine 5V Spannungsquelle bereit. Alle drei Massen verbinden wir mit dem GND-Pin. Wenn wir jetzt +5V an den "Pin 13" Anschluss geben muss unser Multimeter ca. 12V anzeigen. Entfernen wir die +5V muss die Spannung auf 0V gehen. |
Den AVR verdrahten
Unser "Shield" stellt ja lediglich den High-Volt (HV) Ausgang zur
Verfügung. Der geht zum RESET Pin des AVR. Alle anderen Verbindungen
zum AVR kommen direkt vom Arduino Bord; ggf. über .... |
ATtiny x5 |
|
ATtiny x4 | ATmega x8 |
|||||||||||
Pin |
Funktion |
Arduino |
Pin |
Funktion |
Arduino |
Pin |
Funktion |
Arduino |
|
Pin |
Funktion |
Arduino |
||
1 |
RESET |
HV out |
1 |
Vcc |
12 |
1 |
RESET |
HV out |
15 |
DATA1 |
8 |
|||
2 |
SCI |
A5 |
2 |
SCI |
A5 |
2 |
- |
- |
16 |
DATA2 |
7 |
|||
3 |
- |
- |
3 |
- |
- |
3 |
RDY |
A4 |
17 |
DATA3 |
6 |
|||
4 |
GND |
GND |
4 |
RESET |
HV out |
4 |
OEi |
A3 |
18 |
DATA4 |
5 |
|||
5 |
SDI |
A0 |
5 |
- |
- |
5 |
WRi |
A2 |
19 |
DATA5 |
4 |
|||
6 |
SII |
A1 |
6 |
- |
- |
6 |
BS1 |
A1 |
20 |
Vcc |
12 |
|||
7 |
SDO |
A2 |
7 |
SDI |
A0 |
7 |
Vcc |
12 |
21 |
- |
- |
|||
8 |
Vcc |
12 |
8 |
SII |
A1 |
8 |
GND |
GND |
22 |
GND |
GND |
|||
9 |
SDO |
A2 |
9 |
XTAL1 |
A0 |
23 |
DATA6 |
3 |
||||||
10 |
- |
- |
10 |
- |
- |
24 |
DATA7 |
2 |
||||||
11 |
GND |
GND |
11 |
XA0 |
10 |
25 |
BS2 |
A5 |
||||||
12 |
GND |
GND |
12 |
XA1 |
11 |
26 |
- |
- |
||||||
13 |
GND |
GND |
13 |
PAGEL |
GND |
27 |
- |
- |
||||||
14 |
GND |
GND |
14 |
DATA0 |
9 |
28 |
- |
- |
Bedienung
RescueAVR kommt völlig ohne Hardware-Bedienelemente aus. Die gesamte
Kommunikation wird über UART und den sowieso im Arduino verbauten
USB-seriell Schnittstellwandler abgewickelt. Das heißt, wir müssen den
Arduino per USB mit einem Computer verbinden und computerseitig ein
Terminal-Programm am Start haben. Ist bei uns die Arduino IDE
installiert, haben wir schon alles an Bord (dort wählen wir Werkzeuge
- Serieller Monitor). |
Software &
Downloads
Projekt auf Github: |
|
© Frank Steinberg |