[TUTORIAL] Programar un AT90S8515 con Arduino

Programar con un programador USB

Controladores. Siempre dependiendo de qué programador elegiste, para Mac y Linux no hay que instalar absolutamente nada. En Windows, si has elegido el mismo que el que tengo u otro con el mismo chip necesitarás descargar su controlador.

Fisch.de

Antes de meternos en faena de programar nuestro querido dinosaurio, podemos hacer unas prácticas con nuestro USB ASP intentando programar nuestro UNO, MEGA (siempre que sea AVR) o lo que tengamos a través de su conector ICSP. Esto nos dejará el terreno preparado para programar el µC eliminando errores y aprendiendo el funcionamiento de este programador, que es ligeramente diferente. Así descartamos posibles problemas, al menos en esta parte, cuando intentemos programar el dinosaurio y nos salte algún error de comunicación o imposibilidad de programarlo.

Para programar el Arduino con este programador hay que hacer algún cambio en la configuración. El cambio menos llamativo es el de la elección de la placa que hay DETRÁS del programador. Aunque usemos el programador, hay que seleccionar lo que hay conectado en el programador. Si es un UNO, el UNO y si es el MEGA, pues el MEGA. El puerto que usaremos es... Ninguno. :smiley: No saldrán puertos disponibles, o al menos algún puerto donde esté conectado el programador. No te preocupes, esto es así. Sin embargo, sí hay que realizar un ajuste. En el mismo menú de Herramientas, donde seleccionamos nuestra placa y el puerto a usar, hay otra opción que es "Programador". Para este caso, hay que seleccionar USB ASP.

Enlace externo a la imagen

¿Y entonces, cómo se programa si no puedo seleccionar el puerto? Sencillo. En vez de darle al botón habitual de la flecha verde orientada a la derecha, nos vamos al menú Programa. Ahí tenemos la opción de Subir, la de la flecha verde, y otra que es la que buscamos, "Subir usando programador".

Enlace externo a la imagen

Para las pruebas, usaremos un programa sencillo, el conocido Blink. Si todo está bien conectado, si estás en Windows y tienes instalado el controlador correcto, Arduino empezará a compilar y a subir el programa a tu placa Arduino, y tu programador empezará a encender los LEDs de comunicación. Si todo está bien, en este momento habrás programado tu placa Arduino, puede que por primera vez, a través del puerto ICSP. :smiley:

Si has podido programar tu Arduino de esta manera, ya estás listo para programar el dinosaurio con éxito!! :wink:

Programar con un Arduino como programador

Para este cometido necesitamos previamente cargar el programa AruinoISP con la configuración estándar, esto es, seleccionando nuestra placa Arduino y el puerto en el que esté conectada. Con esto, transformaremos el Arduino en un programador ASP. Subimos el programa y listo!! :smiley:

Enlace externo a la imagen

Ahora necesitamos hacer algún ajuste. En el menú Programa debemos seleccionar el Arduino que tenemos DETRÁS del transformado, no el que usamos para programar. Si nuestro Arduino transformado es un UNO pero queremos programar un MEGA, seleccionaremos el Arduino MEGA. Una vez hecha esta configuración, nos vamos al mismo menú pero al apartado "Programador". Estará seleccionado el AVR ISP 2. Debemos cambiarlo por "Arduino as ISP".

Enlace externo a la imagen

Ejemplo de diagrama de conexiones para programar un Arduino a través de otro Arduino:

Enlace externo a la imagen

Para el ejemplo, cargaremos el Blink para saber que todo funciona. Ya no podemos usar el botón verde de la flecha a la derecha para programarlo. De lo contrario, cargaremos el Blink en el Arduino transformado y posiblemente nos arroje un error. :smiley: Para hacer esto correctamente debemos ir al menú "Programa". Aquí tenemos la opción de "Subir", que es la misma que el botón de la flecha verde que usamos habitualmente, pero esa opción no nos sirve, ya que no tenemos una configuración "estándar". Debemos seleccionar "Subir usando programador". Si todo está bien y los cables están bien puestos, el programa subirá con éxito y habrás programado un Arduino, imagino que por primera vez, con el puerto ICSP. :smiley:

Enlace externo a la imagen

NOTA: Al programar un µC o un Arduino a través de este puerto, PERDEREMOS EL BOOTLOADER y no podremos volver a programar, en este estado, el Arduino con el método original. Para volver a subir un programa de la forma original, hay que quemar el bootloader de nuevo de la misma manera que estamos programando el otro Arduino. Para ello, nos vamos, SIN TOCAR NI UN CABLE NI OPCIÓN ALGUNA, al menú Herramientas/Quemar bootloader. El bootloader se quemará de nuevo y ya podremos usar de nuevo nuestro Arduino de forma totalmente normal. :wink:

Y finalmente, hemos programado nuestro dinosaurio!! :smiley: Y al contrario que como dice Homer Simpson (u Homero para los latinos), que "podrás comprar lo que quieras menos un dinosaurio", pues bueno, no es cierto, tampoco especificó qué dinosaurio... :smiley:

Bueno, pues aquí llega el fin de este tutorial. Espero que al menos sirva de ayuda para alguien o sirva de guía para que otra persona pueda añadir un µC distinto a la lista de placas disponibles y poder trabajarlo sin problema!! :wink:

Saludos!!

s8515.zip (3.19 KB)