Arduino Como ISP y Cargadores de Arranque Arduino - Documentación de Arduino
Arduino Como ISP y Cargadores de Arranque Arduino - Documentación de Arduino
¿Qué hace que un Arduino sea lo que es? Muchas cosas, pero una de las más
importantes es la forma en que cada placa Arduino se programa fácilmente con
el software Arduino (IDE). Basta con conectarlo al puerto USB de la computadora
y presionar el ícono "Subir" para iniciar un proceso que transfiere tu boceto a la
memoria Flash del microcontrolador.
El cargador de arranque
El proceso de programación utiliza VCC, GND y cuatro pines de datos. Tres pines
conectan MISO, MOSI y SCK entre el micro de programación y el micro de destino,
el cuarto pin del micro de programación va al pin de reinicio del objetivo.
La siguiente tabla muestra en qué pines se dividen MOSI, MISO y SCK en las
diferentes placas Arduino:
La interfaz SPI (y por tanto estos pines) es la interfaz utilizada para programar los
microcontroladores AVR. Tenga en cuenta que MISO, MOSI y SCK están
disponibles en una ubicación física consistente en el encabezado ICSP; Este
conector también es utilizado por escudos que dependen de la interfaz SPI
permitiendo el diseño de escudos que funcionan en cada placa.
Placas como Leonardo, Esplora y Micro, con el USB gestionado directamente por
el microcontrolador, no necesitan condensador.
Cargar el boceto
Al recorrer las líneas del boceto, encontrará una serie de parámetros que deben
configurarse de acuerdo con el tablero de destino. Sin embargo, estos
parámetros se configuran mediante un archivo específico disponible para cada
gestor de arranque/placa compatible con el software Arduino (IDE). Otros
parámetros se explican claramente en los comentarios y solo deben cambiarse si
sabe lo que está haciendo. El boceto también admite tres LED que le brindan
información visual sobre el proceso de programación.
Para cargar el boceto en su placa Arduino, la que utilizará como programador,
debe seleccionar el tipo de placa y el puerto, luego podrá continuar como de
costumbre.
Si todos los cables están configurados, debe cambiar al tipo de placa que desea
programar con el gestor de arranque. Este paso es obligatorio para seleccionar el
código de arranque adecuado y las configuraciones de fusibles. El procedimiento
de programación verifica la firma del microcontrolador antes de realizar
cualquier acción de escritura, pero muchas placas comparten el mismo
microcontrolador y cada placa tiene su propio gestor de arranque. El puerto
sigue siendo el del ArduinoISP.
El proceso de programación gestiona las tres líneas SPI (MISO, MOSI y SCK) según
el protocolo de programación estándar SPI, el mismo que se utiliza para leer y
escribir tarjetas de memoria SD. La única diferencia con las tarjetas de memoria
es la falta de un pin CS (selección de chip). En nuestros microcontroladores AVR
utilizamos el pin RESET que detiene la ejecución de cualquier sketch o gestor de
arranque y pone el microcontrolador en un estado específico donde escucha los
comandos que llegan desde la interfaz SPI. El primer comando que requiere el
protocolo es el que ingresa al microcontrolador en el Modo de Programación Serial
.
Una vez activo este modo específico, podremos escribir y leer todas las áreas
programables del microcontrolador: Flash, EEPROM y Fusibles. Al final de la
memoria Flash, tenemos la zona del código del gestor de arranque, como se
destaca en la imagen al principio de este artículo. El procedimiento "Burn
Bootloader" también configura correctamente los fusibles del microcontrolador
según el diseño de la placa. Esta es una de las razones por las que tienes que
grabar el gestor de arranque seleccionando el modelo exacto de tu placa en la
lista.
Nota para Arduino 1.0: debe realizar un pequeño cambio en el código Ardu
inoISP. Busque la línea en la función heartbeat() que dice "delay(40);" y cám
bielo a "retraso (20);".
Seleccione los elementos en los menús Herramientas > Placa y Puerto serie
que corresponden a la placa que está utilizando como programador (no a l
a placa que se está programando).
Aprende más
También puedes explorar la referencia del lenguaje , una colección detallada del
lenguaje de programación Arduino.