Atmega32 no puede verificar después de configurar los fusibles correctos para el cristal externo. AYUDA

1

Estoy teniendo problemas con algunos Atmega32A comprados en eBay. Los MCU no parecen ser falsos ya que funcionan correctamente. Estoy experimentando el siguiente problema: quiero usar un cristal externo de 14.7456MHz. Con la configuración de fusibles predeterminada (

0xE1 / 0b11100001 low fuse;
0x99 / 0b10011001 high fuse;

) Soy capaz de programar el MCU y verifica que todo está bien cuando funciona con una velocidad de reloj interna de 1MHz. Cuando cambio el fusible alto a 0b11001001 para desactivar JTAG y el programa CKOPT, funciona de nuevo. Pero cuando cambio el fusible bajo para hacer que la MCU use un reloj externo, escribe el hexágono, pero no puede verificar la MCU y no está funcionando. Aquí está la salida:

> "make.exe" program
avrdude -p atmega32 -P usb -c usbasp    -U flash:w:main.hex 

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9502
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (15896 bytes):

Writing | ################################################## | 100% 6.73s

avrdude: 15896 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 15896 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.87s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x0c != 0x00
avrdude: verification error; content mismatch

avrdude done.  Thank you.

make.exe: *** [program] Error 1

> Process Exit Code: 2
> Time Taken: 00:12

El programador está funcionando bien, puedo confirmar que el circuito funciona porque está funcionando con Atmega32 cuando se configura para usar un reloj externo (estoy usando capacitores cerámicos de 2x22pF justo al lado del cristal). El problema es con estos Atmega32A. cual puede ser la razon? Encontré esto, pero creo que 1111 es el correcto para el cristal.

Device clocking options             CKSEL 3..0
External crystal/ceramic resonator  1111-1010
External low frequency crystal      1001
External RC oscillator              1000-0101
Calibrated Internal RC oscillator   0100-0001
External clock                      0000

Gracias de antemano.

    
pregunta Ezio_

0 respuestas

Lea otras preguntas en las etiquetas