2. AN-U002
Este documento se encuentra protegido por una licencia Creative Commons
Creative Commons: Atribution, Non-commercial, Share Alike
Atribución:
Puede copiar, distribuir y/o transmitir este trabajo siempre y cuando reconozca el
autor original del mismo, en este caso Naxus Sistemas Inteligentes.
No Comercial:
No puede utilizar este trabajo para propósitos comerciales.
Comparta igual:
Si realiza alguna modificación, alteración o construcción a partir de este trabajo,
puede distribuirlo únicamente usando la misma licencia o una similar.
Naxus Sistemas Inteligentes
Cra. 84A # 5 - 12
Cali, Colombia
www.naxuscolombia.com
contacto@naxuscolombia.com
Revisión 1.0 Página 2
3. AN-U002
Índice de contenido
1.INTRODUCCIÓN......................................................................................4
2.RECURSOS.............................................................................................5
3.CONEXIÓN ENTRE NXPROG Y WIRING........................................................6
Conectores ISP de Atmel..........................................................................6
NXProg y el conector ISP de Atmel............................................................6
Versiones de Wiring y sus conectores.........................................................7
Conexión entre Wiring y NXProg................................................................9
4.PROGRAMANDO DESDE LA INTERFAZ WIRING...........................................11
Selección de la plataforma Wiring............................................................11
Selección del puerto de programación......................................................12
Programando el bootloader.....................................................................14
Mensajes durante el proceso...................................................................14
5.PROBLEMAS Y SOLUCIONES....................................................................16
6.AGRADECIMIENTOS...............................................................................17
Revisión 1.0 Página 3
4. AN-U002
1. INTRODUCCIÓN
La tarjeta Wiring es una tarjeta de desarrollo comúnmente utilizada por
diseñadores industriales y de medios interactivos, así como ingenieros
electrónicos y de sistemas, como herramienta de prototipado rápido.
Cuenta con una interfaz de programación basada en Processing, similar a la
interfaz de Arduino (de hecho, Wiring fue la base de inspiración de
Arduino), la cual utiliza un lenguaje similar a C++, pero simplificado, con el
fin de facilitar la implementación de interfaces hardware. Más información
sobre el proyecto en www.wiring.org.co.
Las tarjetas Wiring se programan usando el puerto USB. Cuentan con el
dispositivo FT232RL que realiza una conversión USB a serial, por lo que el
microcontrolador de la tarjeta Wiring se programa a través de la UART
(interfaz serial del dispositivo). El microcontrolador se encuentra
previamente programado con un bootloader, esto es, un pequeño programa
que reside en la memoria FLASH del microcontrolador. Este programa es el
que permite que la tarjeta Wiring sea programada a través del puerto USB.
El bootloader se ejecuta al momento de realizar un Reset sobre la tarjeta
Wiring. Éste configura la UART para recibir comandos de programación, y de
esta manera es posible programar el dispositivo. En ciertos casos, el
bootloader se ve afectado debido a un mal manejo de la tarjeta o a una
mala programación. Si el bootloader falla, no es posible volver a programar
nuevamente el microcontrolador de la tarjeta, y por lo tanto, queda
inutilizada la Wiring. Sin embargo, en gran parte de los casos esto se puede
corregir reprogramando el bootloader en el microcontrolador de Wiring.
Esta nota de aplicación se encarga de describir paso a paso como realizar
este procedimiento de manera fácil utilizando el programador NXPRog.
Revisión 1.0 Página 4
5. AN-U002
2. RECURSOS
A continuación se describen los recursos necesarios para realizar la
reprogramación de Wiring:
• Programador NXProg y su respectivo cable USB tipo B para conexión
al computador.
• Tarjeta Wiring y su respectivo cable USB tipo B para conexión al
computador.
• Software Wiring previamente instalado.
• Software Sinaprog, AVR Studio o Codevision, en caso de que el
software Wiring no funcione correctamente (OPCIONAL).
Programador NXProg Tarjeta Wiring
Interfaz software Wiring Interfaz Software Sinaprog
Revisión 1.0 Página 5
6. AN-U002
3. CONEXIÓN ENTRE NXPROG Y WIRING
El primer paso es lograr una CORRECTA conexión entre NXProg y Wiring.
Para ello, es necesario identificar el tipo de conector con el que cuenta la
tarjeta Wiring, para establecer si es compatible o no con la disposición de
pines del conector de NXProg. Tanto NXProg como Wiring manejan el
estándar ISP de Atmel, sin embargo existen dos modos, uno de seis (6)
pines y otro de diez (10) pines. En la figura 1 se muestra la distribución de
pines en cada uno de estos conectores.
Conectores ISP de Atmel
Figura 1: Tipos de pinout de conectores ISP de Atmel: (a) conector
ISP de 6 pines, (b) conector ISP de 10 pines
Se puede observar que estos dos modos NO son COMPATIBLES.
NXProg y el conector ISP de Atmel
NXProg, a pesar de contar con 10 pines, es en realidad compatible con el
estándar de seis (6) pines, puesto que es el más común. La relación entre
el conector de 6 pines y el de NXProg se puede ver en la figura 2.
Revisión 1.0 Página 6
7. AN-U002
Figura 2: Estándar de 6 pines y el conector NXProg
Se observa entonces que basta con conectar NXProg usando únicamente los
seis pines de en medio del conector para cumplir con el estándar ISP de 6
pines. NXProg cuenta con detección automática de conexión, por lo que la
identificación de un correcto acople es sencillo, basta con ver el estado de
los LEDs, tal como se muestra en la tabla 1 (tomado de la hoja de datos de
NXProg):
Conexión incorrecta (LED Naranja y verde encendidos):
NXProg establece este estado cuando se encuentra
INCORRECTAMENTE conectado a la tarjeta Wiring o simplemente no
se ha conectado aún.
Conexión correcta (LED verde encendido):
NXProg establece este estado cuando se encuentra CORRECTAMENTE
conectado a la tarjeta Wiring.
Tabla 1: Estados de conexión de NXProg
Versiones de Wiring y sus conectores
La gran mayoría de las tarjetas Wiring cumplen con el estándar de conexión
ISP de 6 pines de Atmel (rev 0004 en adelante). Sin embargo, para
Revisión 1.0 Página 7
8. AN-U002
versiones muy viejas de Wiring (< rev 0004) el conector era el estándar ISP
de 10 pines. Por fortuna, la identificación del estándar es muy sencilla, ya
que basta con identificar con cuántos pines cuenta el conector para
establecer la diferencia. A continuación se dejan unas imágenes en la figura
3, que permiten identificar claramente la ubicación del conector en las
diferentes versiones de las tarjetas Wiring.
Wiring (<rev0004) con conector ISP de 10 pines Wiring (rev0004) con conector ISP de 6 pines
Wiring Sparkfun con conector ISP de 6 pines Wiring S con conector ISP de 6 pines
Figura 3: Conector ISP en tarjetas Wiring
Por lo tanto, en caso de contar con una tarjeta Wiring < rev 0004, es
necesario hacer un cableado adicional para convertir el estándar de 6 pines
a 10. La figura 4 ilustra la conexión necesaria entre el conector de NXProg
(estándar de 6 pines) y el estándar ISP de 10 pines. La conexión entre las
líneas VCC es opcional, si se desea alimentar la tarjeta Wiring desde
NXProg. Únicamente en este caso NO es necesaria la conexión de Wiring al
computador a través del cable USB.
Revisión 1.0 Página 8
9. AN-U002
Figura 4: Conversión del conector de NXProg al estándar
ISP de 10 pines
Conexión entre Wiring y NXProg
Habiendo identificado la versión de su tarjeta Wiring, proceda a realizar la
respectiva conexión con NXProg, teniendo en cuenta que es necesario que
la tarjeta Wiring se encuentre CONECTADA al computador mediante el cable
USB. Esto es debido a que NXProg no alimenta directamente la tarjeta
Wiring desde el conector ISP.
A continuación se muestra un ejemplo de una tarjeta Wiring < rev 0004
conectada con NXProg realizando la anterior conexión planteada, en la
figura 5.
Figura 5: Programando una Wiring con conector ISP de 10 pines: no se
puede realizar conexión directa, se cablean las respectivas señales.
NXProg avisa cuando se encuentra correctamente conectado
(únicamente LED verde encendido)
Revisión 1.0 Página 9
10. AN-U002
Si se cuenta con una tarjeta Wiring >= rev 0004, la conexión entre la
tarjeta y NXProg es directa, como lo muestra la figura 6.
Figura 6: Conexión de una Wiring con conector ISP de 6 pines: La conexión
es directa, el NXProg avisa cuando se encuentra correctamente conectado el
programador (únicamente LED verde encendido)
Se observa que en los dos casos de ejemplo NXProg señala que la conexión
es correcta (LED verde encendido).
Revisión 1.0 Página 10
11. AN-U002
4. PROGRAMANDO DESDE LA INTERFAZ WIRING
Ya habiendo conectado exitosamente NXProg con Wiring, se procede a
realizar el proceso de programación del bootloader. Para ello, utilizaremos la
misma interfaz de Wiring. Por lo tanto, proceda a abrir el programa.
Selección de la plataforma Wiring
El primer paso es seleccionar la versión de la tarjeta Wiring. Esto lo
hacemos a través del menú Tools → Board → Wiring → Versión. En la figura 7
se puede observar este procedimiento.
Figura 7: Selección de la versión de la tarjeta Wiring
Este procedimiento también puede realizarse para diferentes
microcontroladores Atmel, en caso de no poseer una tarjeta Wiring a la
mano. Para ello, puede seleccionar el menú Tools → Board → Atmel →
Revisión 1.0 Página 11
12. AN-U002
microcontrolador con el que cuente para el proyecto (Atmega168,
Atmega328, Atmega644 y Atmega1284 son los únicos soportados por el
momento). La figura 8 ilustra este procedimiento.
Figura 8: Selección del microcontrolador que emula la tarjeta Wiring
Selección del puerto de programación
Se procede entonces a seleccionar el puerto de NXProg para realizar la
programación. El puerto asignado a NXProg se puede consultar en el
Administrador de Dispositivos de Windows, aparece bajo el nombre AVR
NXPRog (ver figura 9). En la interfaz Wiring, el puerto se selección en el
menú Tools → Serial Port → COMx (la x es el puerto donde quedó NXProg,
en este ejemplo es el puerto 3, COM3). Este procedimiento se puede ver en
la figura 10.
Revisión 1.0 Página 12
13. AN-U002
Figura 9: Puerto asignado a NXProg
Figura 10: Selección del puerto en Wiring
Revisión 1.0 Página 13
14. AN-U002
Programando el bootloader
Ya configurado el puerto, se procede a realizar la programación. NXProg
emula el protocolo STK500, el mismo que utiliza el programador original de
Atmel, el AVRISP. Por lo tanto, seleccionaremos esta opción en el menú
Tools → Burn Bootloader → w/ AVR ISP . NO utilice la opción AVRISP mkII, ni
ninguna otra opción diferente, ya que no se encuentran soportadas. Esto se
observa en la figura 11.
Figura 11: Programación del bootloader con la interfaz AVRISP
Mensajes durante el proceso
La interfaz Wiring arroja diferentes mensajes durante el proceso de
programación del bootloader. La tabla 2 es una guía para estos diferentes
mensajes.
Revisión 1.0 Página 14
15. AN-U002
El procedimiento de programación del bootloader se está llevando a cabo. Espere
hasta que finalice.
El procedimiento de programación del bootloader ha finalizado correctamente. La
tarjeta Wiring ya debe estar respondiendo a comandos de programación.
Hubo un error durante la programación del bootloader. Inicie nuevamente el
procedimiento verificando que no cometió ningún error.
Tabla 2: Mensajes de la interfaz Wiring durante el proceso de programación del bootloader
Revisión 1.0 Página 15
16. AN-U002
5. PROBLEMAS Y SOLUCIONES
En caso de que este proceso sea infructuoso, le recomendamos intentar la
reprogramación del bootloader usando la interfaz Sinaprog, software disponible
en nuestra página web, así como su respectivo manual de uso:
Descarga de Sinaprog
www.naxuscolombia.com/descargas-comunes/
Manual de uso de Sinaprog
http://wwwnaxuscolombia.com/descargas-comunes/documentacion/
Recuerde que el proceso aquí descrito es sólo una guía de reprogramación de
bootloader de las tarjetas Wiring. En ningún caso pretende ser una guía de
recuperación completa de una tarjeta Wiring que pudiese estar quemada o
simplemente defectuosa. Recuerde que en caso de no funcionar el proceso, es
muy probable que su tarjeta Wiring presente otra falla diferente a la del
bootloader y no sea posible recuperarla. Esta situación depende de muchos
factores de acuerdo al manejo que se le haya dado a la tarjeta Wiring. Naxus
Sistemas Inteligentes no se responsabiliza por ningún accidente o problema que
se pudiese presentar al realizar este procedimiento, que afecte directa o
indirectamente su tarjeta Wiring.
Revisión 1.0 Página 16
17. AN-U002
6. AGRADECIMIENTOS
Naxus Sistemas Inteligentes agradece a los profesores de la Universidad
ICESI de Cali, Colombia, Juan Carlos Muñoz y Jose Moncada, por facilitar el
acceso a las tarjetas Wiring para realizar las respectivas pruebas de
validación del procedimiento aquí descrito.
Revisión 1.0 Página 17