Ich experimentiere intensiv mit ATtiny AVRs und kann es mir nicht leisten, für jedes Experiment einen neuen AVR zu kaufen. Deshalb habe ich mir ein Backup-Skript ausgedacht. Die Idee ist, dass ich meinen AVR auf die Werkseinstellungen zurücksetzen kann, nachdem ich sie verwendet habe. Insbesondere Sicherungen und Kalibrierungen sind hier schwierig. Ich möchte sie wiederherstellen können, da sie die Startparameter, die Taktrate und die Energieeffizienz ändern können.
Die Idee ist, meinen AVR mit dem folgenden Skript zu sichern:
#!/bin/bash
baud=115200
avr=attiny45
dst=$avr.`date +"%Y%m%d_%H%M%S"`
port=/dev/ttyUSB0
# calibration One or more bytes of RC oscillator calibration data.
# eeprom The EEPROM of the device.
# efuse The extended fuse byte.
# flash The flash ROM of the device.
# fuse The fuse byte in devices that have only a single fuse byte.
# hfuse The high fuse byte.
# lfuse The low fuse byte.
# lock The lock byte.
# signature The three device signature bytes (device ID).
# fuseN The fuse bytes of ATxmega devices, N is an integer number for each fuse supported by the device.
# application The application flash area of ATxmega devices.
# apptable The application table flash area of ATxmega devices.
# boot The boot flash area of ATxmega devices.
# prodsig The production signature (calibration) area of ATxmega devices.
# usersig The user signature area of ATxmega devices.
for memory in calibration eeprom efuse flash fuse hfuse lfuse lock signature application apptable boot prodsig usersig; do
avrdude -p $avr -c stk500v1 -P $port -b $baud -U $memory:r:/dev/stdout:i > ./$dst.$memory.hex ||
rm ./$dst.$memory.hex
done
Die einzige Ausnahme ist der Sicherungsspeicher, aber ich benutze ATxmega nicht und das war mir einfach egal.
EDIT1 : Ich verwende einen Arduino Duemanilove mit ATmega168-Antrieb und ArduinoISP-Skizze, die stk500v1 emuliert, um meine Geräte zu programmieren. Hochspannungsprogrammierung wird nicht unterstützt.
EDIT2 : Es ist mir gelungen, meinen ATtiny45 mit meinem Arduino erfolgreich zu entfernen, indem ich die Informationen unter http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/ verwendet habe.
Die Frage lautet nun wie folgt: Das Sicherungsskript scheint wie geplant zu funktionieren. Wird die Programmierung der resultierenden Dateien den AVR auf die Werkseinstellungen zurücksetzen, bevor ich meinen AVR "gemauert" habe?
quelle
Antworten:
Aus Ihrem Skript geht hervor, dass Sie eine STK500-Karte verwenden. Sie können den STK500 verwenden, um Hochspannungsprogrammierung mit den Attiny-Chips durchzuführen, sodass Sie die MCU jederzeit auf die Werkseinstellungen zurücksetzen können.
Es gibt bestimmte Dinge, die Sie mit Ihrem Skript nicht beheben können. Wenn Sie beispielsweise DWEN festlegen oder die Rücksetzfunktion deaktivieren, können Sie die ISP-Schnittstelle nicht verwenden.
quelle