Sao lưu AVR với avrdude


7

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?


3
Đầu tiên: Bạn có một lập trình viên điện áp cao? Nếu bạn không, hãy lấy một cái và sau đó lo lắng về việc viết các cài đặt mặc định, bởi vì trong một số trường hợp nhất định, bạn sẽ cần nó để khai thác AVR.
AndrejaKo

Câu trả lời:


5

Từ tập lệnh của bạn, có vẻ như bạn đang sử dụng bảng STK500. Bạn có thể sử dụng STK500 để lập trình điện áp cao với các chip attiny, vì vậy bạn luôn có thể đặt lại mcu về mặc định của nhà máy.

Có một số điều bạn sẽ không thể sửa với tập lệnh của mình, ví dụ: nếu bạn đặt DWEN hoặc tắt chức năng đặt lại, bạn sẽ không thể sử dụng giao diện ISP.


Tôi phải kiểm tra DWEN trong bảng dữ liệu vào cuối tuần này. Tôi đồng ý về việc thiết lập lại vô hiệu hóa, đó là rủi ro đã biết / tính toán. STK500 của tôi thực sự là một Arduino Duemanilove chạy ArduinoISP s / w, vì vậy tôi nghi ngờ lập trình điện áp cao là một lựa chọn.
jippie 17/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.