AVRDUDE con las configuraciones completas de AVR Studio

1

Hago mis propios tableros electrónicos a menudo con un Atmel ATmega328P. Utilicé AVR Studio para la programación. Ahora intenté hacer la misma configuración con avrdude y parece que no son realmente compatibles.

  1. ¿Hay una manera de establecer la velocidad de programación en avrdude? Quiero programar mis fusibles con 2.1592kHz y programar mi firmware con 500kHz. ¿Alguien sabe un comando?

  2. Parece que AVR Studio decodifica los valores de los fusibles diferentes a los de avrdude. Especialmente el efuso es diferente. Creo que estos dos son los mismos:

AVR Studio: efuse: 0xFD, hfuse: 0xDA, lfuse: 0xFF

avrdude: efuse: w: 0x05: m hfuse: w: 0xDA: m lfuse: w: 0xFF: m

Gracias por tus sugerencias.

Felix

    
pregunta user1446021

3 respuestas

2
  

¿Hay una manera de establecer la velocidad de programación en avrdude? Quiero programar mis fusibles con 2.1592kHz y programar mi firmware con 500kHz. ¿Alguien sabe un comando?

Usar parámetro -B <bitrate> : especifique el período de reloj de bits para la interfaz JTAG o el reloj ISP (solo ICE JTAG). El valor es un número de coma flotante en microsegundos. El valor predeterminado de JTAG ICE da como resultado un período de reloj de aproximadamente 1 microsegundo, adecuado para las MCU de destino que funcionan a una velocidad de 4 MHz o superior. A diferencia de ciertos parámetros en el STK500, el JTAG ICE restablece todos sus parámetros a sus valores predeterminados cuando el software de programación se desconecta del ICE, por lo que para MCU que se ejecutan a velocidades de reloj más bajas, este parámetro debe especificarse en la línea de comandos. También se puede establecer en el archivo de configuración usando la palabra clave ’default_bitclock’.

  

Parece que AVR Studio decodifica los valores de los fusibles diferentes a los de avrdude. Especialmente el efuso es diferente.

Normalmente, los valores de bytes del fusible en bruto deben ser idénticos, ya que son valores de lectura y no se interpretan de ninguna manera. Vea la respuesta de microtherion para una posible explicación de por qué los valores son diferentes en este caso.

    
respondido por el Rev1.0
2

Para responder a su segunda pregunta, para un ATmega328p, solo importan los 3 LSB de efuse, por lo que los dos valores que muestra son idénticos, en lo que respecta a la MCU. Es posible que avrdude y AVR Studio traten los bits de "no importa" de manera diferente al leer el valor para verificarlo.

    
respondido por el microtherion
1

¿Sabía que Atmel Studio también viene con una herramienta de línea de comandos llamada atprogram? Realmente funciona bastante bien una vez que averiguas dónde colocar cada valor :-)

    
respondido por el Tom L.

Lea otras preguntas en las etiquetas