Was tun, wenn unser Programmer den AVR nicht mehr ansprechen kann?
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". |
Die Schaltung
|
Direkt auf dem
Steckbrett
Bei der geringen Anzahl erforderlicher Bauteile bietet sich an, ein
Steckbrett ("Breadboard") zu verwenden. So wie hier dargestellt, könnte
die Beschaltung eines ATtiny 45/85 aussehen. Die vier Widerstände an
der rechten Seite sind für die Funktion nicht erforderlich. Sie
schützen unseren Arduino bei Verdrahtungsfehlern oder defekten
Controllern. Die 12V müssen wir aus einer separaten Quelle zuführen. |
... oder ein "Shield" bauen?![]() ![]() |
Aufbau: Ich habe natürlich wieder meine geliebten Lochrasterplatinen benutzt. Der Aufbau ist links dargestellt. Wie bei der Steckbrett-Variante müssen wir auch hier die 12V separat zuführen. Im Bild ganz oben auf der Seite ist noch ein Aufkleber zu sehen. Dieser ist auf Inkjet-Papier ausgedruckt, oben mit klarem Packband versiegelt und auf die Platine geklebt. Hauptzweck ist, die Belegung der Pins darzustellen. 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 "AVR Rst" 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 0V anzeigen. Entfernen wir die +5V muss die Spannung auf ca. 12V 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 |
AVR Rst |
1 |
Vcc |
12 |
1 |
RESET |
AVR Rst |
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 |
AVR Rst |
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). Die Schnittstellenparameter lauten: 19.200 Baud, 8 Datenbits, keine Parität, 1 Stoppbit. Als Nummer der seriellen Schnittstelle wählen wir die unseres Arduino Bords aus. Notfalls müssen wir im Windows-Gerätemanager nachsehen. Bei den ganz billigen China-Klonen (wie bei mir) ist in der Regel ein CH340 Schnittstellenwandler verbaut. Der ist bei mir als "USB-SERIAL CH340 (COM5)" angemeldet. Haben wir alles fehlerfrei aufgebaut und angeschlossen, sollten wir in unserem Terminalprogramm eine Meldung sehen wie im Bild sehen. Über die Sendefunktion unseres Terminalprogramms geben wir die entsprechenden Anweisungen und erhalten dann eine neue Meldung. |
Software &
Downloads
Download Software
Version 2.1i (enthält Quelltext, vorkompilierte hexFiles,
Aufkleber, Doku) |
|
© Frank Steinberg |