Avrdude un problema con sck, cómo recuperar un AVR bloqueado con un bit de fusible de reloj externo

0

Escribí este código:

#ifndef F_CPU
#define F_CPU 1105920UL
#endif

#include <avr/io.h>
#include <util/delay.h>

int main(void){
    DDRC=0b00100000;
    while(1){
        PORTC=0b00100000;
        _delay_ms(5000);
        PORTC=0b00000000;
        _delay_ms(1000);
    }
}

Lo programé en atmega8 :

sudo avrdude -c usbasp -p m8 -U flash:w:my.hex

microprogramado, OK, no problema:

quería usar crystal externo; luego conecté crystal 11.0592 al pin 10 y 9, y reescribí el bit de fusible:

sudo avrdude -c usbasp -p m8 -U lfuse:w:0xE0:m

fuse bit reescribe y OK. no hay problema

ahora me di cuenta de que este valor 1105920UL es un error, edito el código y cambio de 1105920UL a 11059200UL ,

pero cuando programé micro, avrdude me da error:

$sudo avrdude  -c usbasp -p m8 -U flash:w:my.hex 

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

¿Mi micro está bloqueado? o debo volver a cablear sck ? ¿Cómo resuelvo este problema?!?

Gracias

    

2 respuestas

1

Programé otro micro ( atmega16 ) y lo uso de un reloj externo,

$regfile = "m16def.dat"
$crystal = 8000000
Config Portd = Output

Do

Toggle Portd.1
Loop

End

O en codevision (con rc 8Mhz interno):

while(1){
    PORTD.0 = ! PORTD.0
}

y conecte D0 pin ( atmega16 ) a xtal1 de micro bloqueado ( atmega8 ),

y ahora podemos programar micro bloqueado y cambiar el bit de fusible o establecerlo en el valor predeterminado.

U1 es atmega16 para usar un reloj externo

U2 es atmega8 , micro bloqueado, y queremos cambiar el bit de fusible

graciasde @Janka

    
respondido por el بارپابابا
1

Su problema es lfuse: 0xE0 significa "reloj externo". Debe utilizar un oscilador de cristal integrado de 8 a 16 MHz y conectarlo a XTAL1. Su dispositivo debe ser reprogramable de nuevo, al menos.

Para usar un cristal desnudo, necesita una configuración de lfuse de 0xEE. Pero no puede cambiar esto ahora, tuvo que conectar el oscilador externo que seleccionó antes primero.

    
respondido por el Janka

Lea otras preguntas en las etiquetas