Tôi đang thử nghiệm rất nhiều với ATtiny AVR và tôi không đủ khả năng để mua một AVR mới cho mọi thử nghiệm, vì vậy tôi đã nghĩ ra một kịch bản sao lưu. Ý tưởng là tôi có thể mang AVR của mình trở lại mặc định của nhà máy sau khi tôi đã sử dụng chúng. Đặc biệt là cầu chì và hiệu chuẩn rất khó ở đây tôi muốn có thể khôi phục, vì chúng có thể thay đổi các thông số 'khởi động', tốc độ xung nhịp và hiệu suất năng lượng.
Ý tưởng là sao lưu AVR của tôi với đoạn script sau:
#!/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
Ngoại lệ duy nhất là bộ nhớ fuseN, nhưng tôi không sử dụng ATxmega và tôi không quan tâm đến điều đó.
EDIT1 : Tôi sử dụng Arduino Duemanilove chạy bằng ATmega168 với bản phác thảo ArduinoISP, mô phỏng stk500v1, để lập trình các thiết bị của tôi. Lập trình điện áp cao không được hỗ trợ.
EDIT2 : Được quản lý để thành công trong việc mở khóa ATtiny45 của tôi với Arduino của tôi bằng cách sử dụng thông tin tại http://www.rickety.us/2010/03/arduino-avr-high-vol volt-serial-programmer /
Bây giờ câu hỏi như sau: Kịch bản sao lưu dường như hoạt động như được thiết kế, nhưng trước khi tôi 'gạch' AVR của mình, liệu lập trình các tệp kết quả sẽ đưa AVR trở lại mặc định của nhà sản xuất?