Copia de seguridad de AVR con avrdude

7

Estoy experimentando mucho con los AVR de ATtiny y no puedo permitirme comprar un nuevo AVR para cada experimento, así que pensé en un script de respaldo. La idea es que pueda devolver mi AVR a los valores predeterminados de fábrica después de haberlos usado. Especialmente los fusibles y la calibración son complicados aquí. Quiero poder recuperarlos, ya que pueden cambiar los parámetros de 'arranque', la velocidad del reloj y la eficiencia energética.

La idea es hacer una copia de seguridad de mi AVR con el siguiente script:

#!/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

La única excepción es la memoria fuseN, pero no uso ATxmega y eso no me importó.

EDIT1 : uso un Arduino Duemanilove de Armino168 de ATmega168 con un croquis ArduinoISP, que emula stk500v1, para programar mis dispositivos. La programación de alto voltaje no es compatible.

EDIT2 : Logré desbloquear con éxito mi ATtiny45 con mi Arduino usando también la información en enlace

Ahora la pregunta es la siguiente: el script de copia de seguridad parece funcionar como se diseñó, pero antes de "bloquear" mi AVR, ¿la programación de los archivos resultantes hará que el AVR vuelva a los valores predeterminados de fábrica?

    
pregunta jippie

1 respuesta

5

Desde su script, parece que está utilizando una placa STK500. Puede usar el STK500 para realizar la programación de alto voltaje con los chips attiny, de modo que siempre puede restablecer el mcu a los valores predeterminados de fábrica.

Hay ciertas cosas que no podrá solucionar con su secuencia de comandos, por ejemplo, si configura DWEN o deshabilita la funcionalidad de restablecimiento, no podrá usar la interfaz ISP.

    
respondido por el lajos

Lea otras preguntas en las etiquetas