programando wiring con nxprog

17
NOTA DE APLICACIÓN AN-P002 Programando Wiring con NXProg

Upload: alepusto

Post on 04-Aug-2015

533 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Programando Wiring con NXProg

NOTA DE APLICACIÓNAN-P002

Programando Wiring con NXProg

Page 2: Programando Wiring con NXProg

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 InteligentesCra. 84A # 5 - 12Cali, Colombia

[email protected]

Revisión 1.0 Página 2

Page 3: Programando Wiring con NXProg

AN-U002

Índice de contenido1.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

Page 4: Programando Wiring con NXProg

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

Page 5: Programando Wiring con NXProg

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

Page 6: Programando Wiring con NXProg

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

Page 7: Programando Wiring con NXProg

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

Page 8: Programando Wiring con NXProg

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

Page 9: Programando Wiring con NXProg

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

Page 10: Programando Wiring con NXProg

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

Page 11: Programando Wiring con NXProg

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

Page 12: Programando Wiring con NXProg

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

Page 13: Programando Wiring con NXProg

AN-U002

Figura 9: Puerto asignado a NXProg

Figura 10: Selección del puerto en Wiring

Revisión 1.0 Página 13

Page 14: Programando Wiring con NXProg

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

Page 15: Programando Wiring con NXProg

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

Page 16: Programando Wiring con NXProg

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 Sinaprogwww.naxuscolombia.com/descargas-comunes/

Manual de uso de Sinaproghttp://www naxuscolombia .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

Page 17: Programando Wiring con NXProg

AN-U002

6. AGRADECIMIENTOSNaxus 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