Programando con Atmel FLIP Manual de usuario para programar microcontroladores AVR con interfaz USB Manual de Atmel FLIP 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 [email protected] Revisión 1.1 Marzo 2011 Revisión 1.1 Página 2 Manual de Atmel FLIP Índice de contenido 1.INTRODUCCIÓN......................................................................................4 2.INSTALACIÓN DE FLIP..............................................................................5 3.INSTALACIÓN DEL DRIVER PARA DISPOSITIVOS USB...................................9 4.UTILIZANDO FLIP..................................................................................15 4.1. Interfaz del programa......................................................................15 4.1.1. Barra de herramientas ..............................................................16 4.1.2. Barra de estado........................................................................17 4.1.3. Barra de comunicación...............................................................18 4.2. Procedimiento de programación para microcontroladores USB...............18 4.3. Automatización de comandos............................................................23 Revisión 1.1 Página 3 Manual de Atmel FLIP 1. INTRODUCCIÓN FLIP es un software que facilita Atmel para la programación de microcontroladores de características especiales, que disponen de un bootloader para ser programados. Las interfaces soportadas por FLIP son RS232, CAN y USB. Este manual se enfoca en el uso de FLIP para microcontroladores con interfaz USB, sin embargo es una guía útil en el caso de que se vayan a programar microcontroladores por las otras interfaces mencionadas. FLIP en su instalación incluye además los drivers USB para microcontroladores que soportan esta interfaz. De esta manera, no es necesario descargar software adicional. El procedimiento de reconocimiento del dispositivo se explica también en este manual. Finalmente FLIP es usado con varios productos de Naxus Sistemas Inteligentes. Se usa en la reprogramación de NXProg (actualizaciones y cambios de firmware), así como para la programación de USBee, nuestra mini-tarjeta de desarrollo con USB 2.0. Revisión 1.1 Página 4 Manual de Atmel FLIP 2. INSTALACIÓN DE FLIP El primer paso para utilizar FLIP es instalarlo en su computador. La instalación Windows es muy sencilla, sólo requiere seguir los pasos indicados por programa de instalación. El programa FLIP lo puede descargar desde la página Atmel: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886. continuación se realiza un breve resumen de estos pasos. en el de A Recién se ejecuta el programa de instalación aparece una pantalla de bienvenida. Dé clic en Siguiente (Next). Figura 1: Pantalla de bienvenida del instalador de FLIP Aparece una ventana que especifica la licencia del software. Debe aceptar la licencia del programa para poder instalarlo. Chequée la casilla de aceptación de la licencia y dé clic en Siguiente (Next). Revisión 1.1 Página 5 Manual de Atmel FLIP Figura 2: Licencia de FLIP Posteriormente se le pedirá que elija la ruta donde desea instalar FLIP. Puede tomar la ruta por defecto que ofrece el instalador o especificar la ruta que prefiera. Figura 3: Directorio de instalación Revisión 1.1 Página 6 Manual de Atmel FLIP A continuación el programa le pregunta si desea darle un nombre diferente al submenú de FLIP del menú Inicio. Realice los cambios que desee. Figura 4: Menú de inicio para FLIP El programa comenzará entonces a realizar la instalación del software. Espere a que termine completamente y dé clic en Siguiente. Figura 5: Instalación de archivos de FLIP Revisión 1.1 Página 7 Manual de Atmel FLIP Finalmente el programa le pide si quiere un acceso directo a FLIP en el Escritorio. Marque la casilla correspondiente si así lo desea, y dé clic en Finalizar (Finish). Figura 6: Finalización del instalador de FLIP Con estos pasos se tiene FLIP correctamente instalado en su sistema operativo. Revisión 1.1 Página 8 Manual de Atmel FLIP 3. INSTALACIÓN DEL DRIVER PARA DISPOSITIVOS USB Con FLIP ya instalado se puede proceder a configurar el driver para microcontroladores con interfaz USB. A continuación se incluye una lista de los dispositivos más comunes con esta interfaz, que pueden ser utilizados con FLIP: • • • • • • • • • • • • AT90USB82 AT90USB162 AT90USB646 AT90USB647 AT90USB1286 AT90USB1287 ATMEGA8U2 ATMEGA16U2 ATMEGA16U4 ATMEGA32U2 ATMEGA32U4 ATMEGA32U6 Estos microcontroladores poseen un mecanismo para entrar al bootloader al momento de realizar un Hard Reset, y consiste en mantener el pin HWB en estado bajo mientras se ejecuta el Reset. Este modo se le denomina en adelante Modo BOOT en este manual. Para mayor información, recomendamos referirse a la hoja de datos específica del microcontrolador. FLIP incluye un driver genérico para todos estos microcontroladores AVR. Conecte el dispositivo a través de la interfaz USB e ingrese en Modo BOOT. Debe aparecer el mensaje de nuevo hardware encontrado, como se ilustra en la figura 7. Figura 7: Nuevo hardware encontrado Asimismo se debe abrir la ventana del Asistente para hardware nuevo encontrado. Éste le pregunta si desea buscar el driver en las bases de datos de Windows Update. Seleccione la opción No por el momento y haga clic en Siguiente. Revisión 1.1 Página 9 Manual de Atmel FLIP Figura 8: Pantalla inicial del asistente de configuración Posteriormente el asistente le pregunta si desea instalar automáticamente el driver o desea indicarle donde se encuentra el driver en una posición específica. Seleccione esta última opción, ya que el driver se encuentra en la carpeta donde instaló FLIP. Revisión 1.1 Página 10 Manual de Atmel FLIP Figura 9: Tipo de búsqueda del driver Se muestra una nueva ventana en donde se le pide que defina la ubicación del driver. Para ello, utilice el botón Examinar y seleccione la ruta <carpeta FLIP>/usb. Figura 10: Localización del driver Revisión 1.1 Página 11 Manual de Atmel FLIP Esta ruta corresponde a la que utilizó para instalar FLIP previamente. Dé clic en Siguiente y observará que comienza el proceso de instalación del dispositivo. Figura 11: Localización del driver Figura 12: Instalación del dispositivo Revisión 1.1 Página 12 Manual de Atmel FLIP Cuando el asistente ha finalizado, le muestra la pantalla que define cuál microcontrolador ha sido encontrado. En el ejemplo aquí mostrado se ha reconocido el microcontrolador AT90USB162. Figura 13: Finalización del asistente Finalmente se puede observar el mensaje del sistema operativo, indicando que ha reconocido el dispositivo. Figura 14: Mensaje del sistema operativo Asimismo puede verificar directamente en el Panel de Control, y observará que aparece un nuevo menú, denominado Atmel USB Devices, y bajo éste se encuentra el dispositivo reconocido. Nuevamente, en este ejemplo se observa que se ha reconocido el microcontrolador AT90USB162. Revisión 1.1 Página 13 Manual de Atmel FLIP Figura 15: Microcontrolador USB reconocido en el Administrador de Dispositivos de Windows De esta manera el microcontrolador AVR USB ha sido reconocido por Windows y puede ser usada en conjunto con FLIP. Recuerde siempre que cuando conecte el microcontrolador, debe ingresar en Modo BOOT para que Windows reconozca el dispositivo (consulte la hoja de datos del microcontrolador de su interés). Sólo conectar el microcontrolador al puerto USB no hace que éste sea reconocido por el sistema operativo. Revisión 1.1 Página 14 Manual de Atmel FLIP 4. UTILIZANDO FLIP El primer paso es proceder a ejecutar el programa. Para esto, diríjase al botón de Inicio de Windows, seleccione el menú FLIP 3.4.x (la x depende de la versión que se ha instalado), y haga clic en la herramienta Flip. Figura 16: Ejecución de FLIP 4.1. Interfaz del programa Se abre entonces la ventana del programa, cuya interfaz se muestra en la siguiente imagen. Barra de estado Información del buffer Cadena de de memoria operaciones FLASH y EEPROM Información del microcontrolador USB Barra de herramientas Barra de conexión Las partes más relevantes de la interfaz se han señalado en lila. Corresponden a la cadena de operaciones (Operations Flow), que permite la automatización del proceso de programación, la sección de información del buffer de memoria FLASH o de EEPROM, que entrega información valiosa sobre el archivo HEX cargado en el buffer del programa, y la información del microcontrolador, que muestra la firma (signature) del microcontrolador, así como la versión de bootloader que tiene preprogramado. Revisión 1.1 Página 15 Manual de Atmel FLIP Se han resaltado tres secciones muy importantes de la ventana: la barra de herramientas, que nos permite acceder a cada una de las opciones que FLIP facilita; la barra de estado, que muestra el resultado de cada una de las operaciones realizadas desde la interfaz, y finalmente la barra de comunicación, que muestra si el microcontrolador se encuentra efectivamente conectado al PC para proceder con las programación del mismo. 4.1.1. Barra de herramientas Figura 17: Barra de herramientas de FLIP ICONO DESCRIPCIÓN Dispositivo: Permite seleccionar el microcontrolador que se intenta programar. Al pulsarlo se abre una ventana que incluye una lista con los microcontroladores soportados. Comunicación: Permite establecer la comunicación microcontrolador y el PC, ya sea USB, CAN, RS232 o LPC. entre el Borrar memoria: Permite borrar la memoria FLASH del dipositivo. Verificación de memoria en blanco: Normalmente se utiliza luego de una acción de borrado de la memoria para verificar que este procedimiento fue correctamente realizado. Programación de memoria: Programa la memoria FLASH o EEPROM del dispositivo utilizando el archivo .HEX seleccionado con el botón "Cargar archivo .HEX". Verificación de memoria: Permite comparar la memoria FLASH del dispositivo con el buffer del programa que representa un archivo .HEX previamente cargado. Lectura de memoria: Permite leer la memoria FLASH del dispositivo y almacenarla en el buffer del programa, para posteriormente guardarla en un archivo .HEX. Revisión 1.1 Página 16 Manual de Atmel FLIP Editar buffer: Permite editar, byte a byte, el buffer del programa. Cargar archivo HEX: Permite seleccionar un archivo .HEX para ser cargado en el buffer del programa. Si está seleccionando un archivo HEX para la EEPROM, éstos por lo general son de extensión .EEP. Guardar buffer como archivo HEX: Permite guardar el buffer del programa en un archivo .HEX. Ayuda: Despliega una ventana de ayuda para el manejo del programa FLIP. 4.1.2. Barra de estado La barra de estado le permite al usuario conocer el resultado de la ejecución de comandos realizados con FLIP. A continuación se muestra una tabla que ilustra parte de los mensajes que muestra la barra de estado. MENSAJE DESCRIPCIÓN Mensaje que aparece cuando se ha realizado un borrado de memoria FLASH del dispositivo y la operación ha sido ejecutada correctamente. Mensaje que aparece cuando se ha realizado un chequeo de la memoria flash en blanco y el chequeo ha sido positivo. Mensaje que aparece cuando se ha realizado la programación de la memoria FLASH del dispositivo y todo ha salido correctamente. Mensaje que aparece cuando se ha ejecutado una verificación de la memoria FLASH del dispositivo con la del buffer del programa, y la verificación ha sido exitosa. Mensaje que aparece cuando se ha cargado correctamente un archivo .HEX en el buffer del Revisión 1.1 Página 17 Manual de Atmel FLIP programa. Mensaje de error que aparece cuando FLIP no ha podido leer correctamente el dispositivo. Generalmente se debe a una mala conexión del mismo. Mensaje de error que aparece cuando FLIP ha encontrado diferencias entre la memoria FLASH y la memoria del buffer. Esto sucede cuando se ejecuta el comando de verificación de memoria. 4.1.3. Barra de comunicación La barra de comunicación permite establecer si el dispositivo ha sido correctamente reconocido por el programa, y se puede proceder a ejecutar comandos de FLIP para programar el dispositivo. A continuación se muestra una tabla que refleja los mensajes más comunes que aparecen en esta barra. MENSAJE DESCRIPCIÓN Este mensaje aparece cuando no se ha detectado ningún dispositivo conectado al computador. Este mensaje se muestra cuando se ha logrado una comunicación exitosa con el dispositivo a través del puerto USB. 4.1.4. Selección de FLASH o EEPROM Es posible seleccionar entre programar la memoria FLASH o la EEPROM del dispositivo, gracias a un botón que se encuentra en la sección Información del buffer de memoria. MENSAJE BOTÓN DESCRIPCIÓN Si el botón contiene este mensaje, FLIP está preparado para programar la memoria FLASH. Púlselo en caso de que quiera programar la EEPROM. Si el botón contiene este mensaje, FLIP está preparado para programar la memoria EEPROM. Púlselo en caso de que quiera programar la FLASH. Revisión 1.1 Página 18 Manual de Atmel FLIP 4.2. Procedimiento de programación para microcontroladores USB Con la interfaz FLIP ya descrita, se puede proceder a utilizar este software para programar los microcontroladores soportados. La secuencia de pasos aquí descrita no es obligatoria aunque sí recomendada; puede omitir por ejemplo los pasos de verificación sin que esto afecte el proceso. 1. Microcontrolador USB en Modo Boot: Este paso es indispensable para que FLIP pueda reconocer correctamente el dispositivo. Conecte el microcontrolador e ingrese en modo Boot. Si es necesario, reinstale el driver según las especificaciones dadas anteriormente. Cada vez que se utiliza un puerto USB diferente para conectar el dispositivo, Windows lo reconoce como un dispositivo nuevo y debe aplicar el procedimiento de instalación del driver. 2. Conexión entre FLIP y el dispositivo: Si el microcontrolador ha sido correctamente reconocido, proceda a abrir FLIP y seleccione el dispositivo que se encuentre utilizando, usando el botón Dispositivo de la barra de herramientas, como se muestra en la siguiente figura, tomando como ejemplo el microcontrolador AT90USB162. Figura 18: Selección del microcontrolador de USBee Revisión 1.1 Página 19 Manual de Atmel FLIP Luego de seleccionado el microcontrolador, proceda a pulsar el botón de comunicación , y seleccione USB. Se abrirá una ventana nueva, pulse el botón Abrir (Open). Si el procedimiento ha sido exitoso, en la barra de comunicación debe aparecer el mensaje y la barra de herramientas debe haberse activado. Las siguientes tres figuras ilustran este proceso. Figura 19: Selección de comunicación por USB Revisión 1.1 Página 20 Manual de Atmel FLIP Figura 20: Abrir puerto USB Figura 21: Barra de herramientas activada y barra de comunicación USB ON Revisión 1.1 Página 21 Manual de Atmel FLIP En caso de que ocurra algún error en la comunicación, FLIP avisará al usuario mostrando la ventana de la siguiente figura. Figura 22: Mensaje de error cuando no es posible la comunicación con USBee Generalmente se debe a que el dispositivo USB no ha sido correctamente reconocido por el sistema. Verifique primero que el microcontrolador se encuentre en Modo Boot, repitiendo el procedimiento para ingresar a este estado, y verifique que el driver se encuentre correctamente instalado. Asimismo, verifique que el microcontrolador USB aparece en el Administrador de Dispositivos de Windows, como se muestra en la Figura 15. 3. Selección de memoria a programar: Antes de proceder con otra tarea, establezca cuál memoria del dispositivo va a programar, si la FLASH o la EEPROM. Esto lo puede definir utilizando los botones para programar la FLASH, o para programar la EEPROM. 4. Borrado de memoria del microcontrolador: Para programar la FLASH del dispositivo es indispensable ejecutar previamente el comando de borrado. Utilice los botones de la barra de herramientas, Borrar memoria y verificación de memoria en blanco , para tal fin. Si estos comandos han sido ejecutados exitosamente, aparecen los mensajes y , respectivamente, en la barra de estado. Si ha seleccionado programar la memoria EEPROM, este paso no es necesario. 5. Selección del archivo .HEX: Proceda ahora a seleccionar el archivo .HEX que desea programar en la memoria FLASH del microcontrolador, utilizando el botón Cargar archivo HEX de la barra de herramientas. Se despliega una nueva ventana que le permite seleccionar el archivo en cuestión. La siguiente figura ilustra este procedimiento. Si el procedimiento se ha Revisión 1.1 Página 22 Manual de Atmel FLIP realizado correctamente aparece en la barra de estado el mensaje que indica que el archivo ha sido copiado al buffer del programa. Figura 23: Cargar del archivo HEX Si está trabajando con la memoria EEPROM, localice el archivo de extensión .EEP (también es un archivo de formato hexadecimal, pero con extensión diferente para diferenciarlo del de la Flash), al utilizar el filtro Todos los archivos en el menú "Archivos de tipo:" de la ventana de selección. 6. Programación de memoria FLASH o EEPROM: Finalmente es posible pulsar el botón Programación de memoria de la barra de herramientas, para programar la FLASH o EEPROM del microcontrolador con el buffer del programa. Si el procedimiento ha sido ejecutado correctamente, aparece el mensaje en la barra de estado. Proceda a pulsar posteriormente el botón Verificación de Memoria , y si ésta concuerda con la del buffer, aparece el mensaje en la barra de estado. Revisión 1.1 Página 23 Manual de Atmel FLIP 7. Ingreso a Modo Aplicación: Con esto queda finalizado el proceso de programación, y solo resta realizar un RESET del dispositivo para que comience a ejecutar el código recién programado. Si aparece la ventana de la figura 24 en algún momento del proceso, es posible que haya ocurrido una desconexión del dispositivo. Proceda desde el punto 1. Figura 24: Error de escritura Revisión 1.1 Página 24 Manual de Atmel FLIP 4.3. Automatización de comandos FLIP permite automatizar la cadena de comandos a utilizar, facilitando las labores de programación. En la sección cadena de operaciones (Operations Flow) de la interfaz de FLIP, seleccione las tareas que le interesa que se ejecuten. Cuando se encuentre listo para realizarlas, presione Ejecutar (Run). FLIP ejecutará secuencialmente estas tareas. Recuerde que no se puede programar el microcontrolador USB sin previamente haber realizado la operación de borrado de memoria. Figura 25: Cadena de operaciones secuenciales Revisión 1.1 Página 25