No estoy seguro de cuál es su nivel de experiencia con ATmegas (aunque la lectura de la hoja de datos es una buena señal), por lo que comenzaré con algo muy básico, omita si esto es inútil:
El término "programador" en este contexto puede referirse a dos cosas diferentes:
- Software. En tu caso es avrdude.
- Hardware. La pieza de hardware que se encuentra entre el programador de software (avrdude, en este caso) y su ATmega. Algunos ejemplos de estos son USBtinyISP , USBasp , programador de Pocket AVR , AVRisp , etc. Para programar el chip, incluidos los fusibles, necesita ambos, y para decir exactamente cuál debería ser el comando avrdude, necesitamos saber qué programador de hardware tiene.
Si realmente eres nuevo en el desarrollo de AVR, echa un vistazo al tutorial AVR de Lady Ada como < a href="https://electronics.stackexchange.com/users/16835/kurt-e-clothier"> Kurt E. Clothier apunta .
El sitio de referencia para mí para la configuración de los fusibles es la Calculadora de fusibles incrustada . En esa página, después de ingresar la configuración de fusible deseada, verá los argumentos que debe proporcionar a avrdude
para quemar los fusibles correctamente. Por ejemplo, para establecer la configuración predeterminada de los fusibles, además de deshabilitar el modo de compatibilidad ATmega103, use lo siguiente:
-U lfuse:w:0xc1:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
Desea agregar los comandos de fusible a una línea de comando regular avrdude
que especifica el programador (hardware), MCU, etc. Para mí, por ejemplo, la llamada a base avrdude
(sin un comando real) tiene este aspecto :
/usr/local/bin/avr/bin/avrdude.exe \
-p m328pu \
-C C:\cygwin\home\angelatlarge\arduino\arduino-1.0\hardware\tools\avr\etc\avrdude.conf \
-c usbtiny
(ignora la estúpida ruta de estilo de Windows a avrdude.conf en una línea de comandos de tipo Unix. En cygwin, solo la versión de Windows de avrdude funciona, AFAIK. En la mayoría de los sistemas, avrdude puede encontrar su conf archivo sin el parámetro -C de todos modos)
Donde
- La primera línea es la ruta a avrdude
- La opción
-p
especifica la MCU que está programando. Para ti será -p m128
- El parámetro
-C
especifica la ubicación del archivo avrdude.conf
. Solo es necesario en sistemas stoopid como el mío (cygwin ejecutando la versión para Windows de avrdude).
-
-c
es el nombre del programador (hardware) que está utilizando. Dependiendo del programador (hardware), es posible que también deba especificar un puerto serie utilizando la opción -P
. Si quiero programar un chip AVR a través de bluetooth, por ejemplo, uso -P COM18
.
A esto agregamos el comando para programar los fusibles, el resultado, para mi configuración, es el siguiente:
/usr/local/bin/avr/bin/avrdude.exe \
-p m128 \
C:\cygwin\home\angelatlarge\arduino\arduino-1.0\hardware\tools\avr\etc\avrdude.conf \
-c usbtiny \
-U lfuse:w:0xc1:m -U hfuse:w:0x99:m -U efuse:w:0xff:m