Programando ATMega48 con Arduino Uno

1

Estoy tratando de construir un circuito que use un chip ATMega48 estilo PDIP y un ATTiny26. Estoy atascado al cargar el código en el ATMega48 usando un Arduino Uno.

He estado siguiendo estas instrucciones. Llegué al paso 4 cuando recibí este error:

>avrdude -P COM3 -b 19200 -c avrisp -p m48 -n

[...]

avrdude: Device signature = 0x1e920a
avrdude: Expected signature for ATMEGA48 is 1E 92 05
         Double-check chip, or use -F to override this check.

[...]

Hice lo fácil y agregué la opción -F, y todo pareció funcionar. Luego agregué el archivo hexadecimal (siguiendo el formato especificado en la guía) y obtuve esto:

>avrdude -P COM3 -b 19200 -c avrisp -p m328p -u -U flash:
w:"[...]\build2681525234531849420.tmp\Blink.cpp.hex":i -F

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1e920a
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
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: reading input file "[...]\build2681525234531849420.tmp\Blink.cpp.hex"
avrdude: writing flash (1084 bytes):

Writing | ################################################## | 100% 1.34s

avrdude: 1084 bytes of flash written
avrdude: verifying flash memory against [...]\build2681525234531849420.tmp\Blink.cpp.hex:
avrdude: load data flash data from input file [...]\build2681525234531849420.tmp\Blink.cpp.hex:
avrdude: input file [...]\build2681525234531849420.tmp\Blink.cpp.hex contains 1084 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.98s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0002
         0x61 != 0x01
avrdude: verification error; content mismatch

avrdude done.  Thank you.

¿Cómo hago para solucionar esto?

Para el registro, estoy usando la configuración "mínima" especificada aquí :

Arduino - > Mega48

10 - > 1

11 - > 17

12 - > 18

13 - > 19

    
pregunta ramchand917

1 respuesta

4

Tienes un ATmega48p, a juzgar por la firma, así que usa -p m48p para deshacerte del error de firma.

No sé si solo eso solucionará las cosas, pero el ATmega328 tiene un tamaño de página flash diferente y, sin duda, otras diferencias con respecto al mega48, por lo que ignorar la firma probablemente no funcionará (creo que -F para cualquier cosa que no sea un diagnóstico propósitos es un mal movimiento).

    
respondido por el microtherion

Lea otras preguntas en las etiquetas