binder 2

22
www.Cypress.com Documento no. 001-73503 Rev. * C 1 AN73503 HID USB cargador de arranque para PSoC 3 y PSoC 5LP ® Autor: Robert Murphy, Keith Mikoleit Proyecto asociado: Sí Familia pieza asociada: PSoC3 y PSoC 5LP Versión de software: PSoC ® Creator ™ 2.1 SP1 Notas de aplicación relacionada: Recursos relacionad Si usted tiene alguna pregunta o necesita ayuda con esta nota de aplicación, póngase en contacto con el autor en Keith.Mikoleit@c AN73503 describe cómo implementar un bootloader USB para PSoC 3 y PSoC 5LP dispositivos usando el USB Clase de dispositivo de interfaz (HID) humano. También muestra cómo construir un programa host USB basado en Windows. Un PSoC Proyecto creador y un programa de acogida de ejemplo están incluidos. Contenido Introduction .......................................................................1 Términos y definiciones......................................................2 Utilizando un gestor de arranque.......................................2 La función del gestor de arranque flujo..............................2 Consideraciones Bootloader USB......................................3 Example Projects ..............................................................3 Proyecto 1: Bootloader USB...............................................3 Proyecto 2: Bootloadable (aplicación)................................8 PSoC creador Bootloader Host.........................................1 Construir un Host Bootloader...........................................12 Summary .........................................................................15 Recurso relacionados.....................................................16 Appendix A......................................................................17 USBFS configuración HID............................................7 Las ventas mundiales y diseño de apoyo........................22 Introducción Gestores de arranque son una parte común de diseño del sistema de MCU. A bootloader hace posible para el firmware de un producto ser actualizado en el campo. En la fábrica, programación de inicial firmware en un producto típicamente se realiza a través de la Grupo de acción conjunta prueba (JTAG) o cable Serial de MCU Interfaz de depurador (SWD). Sin embargo, estas interfaces son generalmente no está disponible en el campo. Aquí es donde entra bootloading. Bootloading es un proceso que permite actualizar el firmware del sistema sobre un interfaz de comunicación estándar como USB o I 2 C. Un gestor de arranque se comunica con un host para conseguir nuevos Código de la aplicación o datos y lo escribe en el dispositivo memoria Flash. En esta nota de aplicación usted aprenderá cómo: Agregue un bootloader USB al PSoC 3 o PSoC 5LP Preparar un proyecto de aplicación para bootloading Utilizar el programa de acogida bootloader provisto de PSoC Creador Crear tu propio host bootloader basados en Windows programa Esta nota de aplicación asume que estás familiarizado con PSoC y el creador de PSoC IDE. Si usted es nuevo en PSoC 3 o PSoC 5LP, introducciones pueden encontrarse en AN54181, Getting Started with PSoC 3 y AN77759, Empezando con PSoC 5LP. Si usted es nuevo al PSoC Creador, consulte la página de inicio de PSoC creador. Esta nota de aplicación también se supone que está familiarizado con los conceptos del gestor de arranque. Si eres nuevo en esto Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Upload: gustavo-rios

Post on 31-Dec-2015

65 views

Category:

Documents


0 download

TRANSCRIPT

www.Cypress.com Documento no. 001-73503 Rev. * C 1

AN73503HID USB cargador de arranque para PSoC 3 y PSoC 5LP®

Autor: Robert Murphy, Keith MikoleitProyecto asociado: Sí

Familia pieza asociada: PSoC3 y PSoC 5LPVersión de software: PSoC ® Creator ™ 2.1 SP1

Notas de aplicación relacionada: Recursos relacionados

Si usted tiene alguna pregunta o necesita ayuda con esta nota de aplicación, póngase en contacto con el autor en [email protected]

AN73503 describe cómo implementar un bootloader USB para PSoC 3 y PSoC 5LP dispositivos usando el USBClase de dispositivo de interfaz (HID) humano. También muestra cómo construir un programa host USB basado en Windows. Un PSoCProyecto creador y un programa de acogida de ejemplo están incluidos.

ContenidoIntroduction .......................................................................1Términos y definiciones......................................................2Utilizando un gestor de arranque.......................................2La función del gestor de arranque flujo..............................2Consideraciones Bootloader USB......................................3Example Projects ..............................................................3Proyecto 1: Bootloader USB...............................................3 Proyecto 2: Bootloadable (aplicación)................................8 PSoC creador Bootloader Host.........................................1 Construir un Host Bootloader...........................................12Summary .........................................................................15Recurso relacionados.....................................................16Appendix A......................................................................17

USBFS configuración HID............................................7Las ventas mundiales y diseño de apoyo........................22

IntroducciónGestores de arranque son una parte común de diseño del sistema de MCU. A bootloader hace posible para el firmware de un producto ser actualizado en el campo. En la fábrica, programación de inicial firmware en un producto típicamente se realiza a través de la Grupo de acción conjunta prueba (JTAG) o cable Serial de MCU Interfaz de depurador (SWD). Sin embargo, estas interfaces son generalmente no está disponible en el campo.Aquí es donde entra bootloading. Bootloading es unproceso que permite actualizar el firmware del sistemasobre un interfaz de comunicación estándar como USB o I2C. Un gestor de arranque se comunica con un host para conseguir nuevos Código de la aplicación o datos y lo escribe en el dispositivo memoria Flash.En esta nota de aplicación usted aprenderá cómo:

Agregue un bootloader USB al PSoC 3 o PSoC 5LP

Preparar un proyecto de aplicación para bootloading

Utilizar el programa de acogida bootloader provisto de PSoCCreador

Crear tu propio host bootloader basados en Windowsprograma

Esta nota de aplicación asume que estás familiarizado con PSoC y el creador de PSoC IDE. Si usted es nuevo en PSoC 3 o PSoC 5LP, introducciones pueden encontrarse en AN54181, Getting Started with PSoC 3 y AN77759, Empezando con PSoC 5LP. Si usted es nuevo al PSoC Creador, consulte la página de inicio de PSoC creador.

Esta nota de aplicación también se supone que está familiarizado con los conceptos del gestor de arranque. Si eres nuevo en esto

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 2

conceptos, ver AN73854, PSoC Introducción Para Gestores de arranque.

Por último, esta nota de aplicación asume que estás familiarizado con el USB. Si usted es nuevo en USB o la clase USB HID, ver AN57294, 101 USB: An Introduction to Universal Serial Autobús2.0 o AN57473, PSoC USB HID Fundamentos.

Términos y definicionesLa figura 1 muestra que firmware embebido de un producto debe ser capaz de utilizar el puerto de comunicación para dos diferentes propósitos: el funcionamiento normal y la actualización de flash. Que porción del firmware embebido que sabe cómo actualización del flash se llama un gestor de arranque.Figura 1. Sistema gestor de arranque

Blanco

MCU

FlashMemoria

Bootloader

Aplicación

HostComunicación

Canal

AplicaciónArchivo

Normalmente, el sistema que proporciona los datos para actualizar la Flash se llama el anfitrión, y el sistema está siendo actualizadose llama el objetivo. El host puede ser un PC externo o MCU otro en el mismo PCB como destino.

El acto de transferencia de datos desde el host al objetivo Flash se llama bootloading, o una operación bootload, o Sólo bootload para abreviar. Los datos que se coloca en flash se llama la aplicación o bootloadable.Otro término común para bootloading es en el sistema programación (ISP). Cypress tiene un producto con una similar nombre llamado programador Serial en el sistema (PIAS) y un operación llamado Host origen Serial Programación(HSSP). Para obtener más información, vea AN73054, PSoC Programación mediante un microcontrolador externo (HSSP).Utilizando un gestor de arranque

Un puerto de comunicaciones del gestor de arranque es generalmente compartido entre el gestor de arranque y la aplicación real. Elprimer paso para usar un gestor de arranque es para manipular el productopara que el gestor de arranque y no la aplicación, esejecutando.Una vez que se ejecuta el gestor de arranque, el host puede enviar un "arranque comando bootload"sobre el canal de comunicación. Ifel gestor de arranque envía una respuesta "OK", puede bootloading comienzan.

Durante el bootloading, el host Lee el archivo para el nuevo aplicación, analiza en comandos de escritura de flash, yenvía los comandos para el gestor de arranque. Después de todo else envía el archivo, el gestor de arranque puede pasar el control a la nueva aplicación.

Flujo de la función del gestor de arranqueUn gestor de arranque normalmente se ejecuta primero en reset. Puede entonces Realice las siguientes acciones:

Comprobar validez de la aplicación antes de dejarlo correr

Administrar el tiempo para empezar la comunicación host

Hacer el bootload / operación de actualización de flash

Y finalmente, pase el control a la aplicación

Figura 2 es un diagrama de flujo que muestra cómo funciona esto. Figura 2.

Flujograma de proceso bootload

RESET

Gestor de arranque ¿válido en flash?

Ir a la aplicación

Aplicación

¿válido en flash?

Esperar a quenueva aplicación

¿de host?

Sí ¿Esperar para siempre?

Sí Comunicaciones de host.

¿Inicio?

Sí ¿Tiempo de espera?

Recibir nuevosaplicación de

host,instalar en flash,

sobrescribirexistentes

aplicación

No Comunicaciones de host.

¿Inicio?

Detener la ejecuciónNO

No

No

No

No

No

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 3

Consideraciones Bootloader USBHay varios elementos a considerar cuando se utiliza un USB Puerto como interfaz de comunicación en un gestor de arranque. El Clase USB HID da la ventaja de no necesitar un conductor, y el dispositivo puede funcionar con cualquier sistema operativo del host.Tenga en cuenta que el cargador de arranque espera una limitada cantidad de tiempo antes de pasar el control a la aplicación,y dispositivos USB Tómese tiempo para enumerar. Si USB enumeración lleva demasiado tiempo, el anfitrión puede pasar por alto la oportunidad de iniciar una operación bootload después de restablecer.Una vez que la aplicación está en control, hay un par de formas de pasar el control hacia el gestor de arranque.

a) Bootloadable API

El componente bootloadable tiene una función de la API para iniciar el gestor de arranque: Bootloadable_Load(). Esto permite la aplicación para pasar el control hacia el gestor de arranque basado en un comando o algún usuario de entrada. Se trata de un gran manera de permitir que un usuario final iniciar un firmware actualización para el dispositivo.

El problema con este método es que ahoradependiente en el código de la aplicación para realizar un actualización de la aplicación. ¿Qué pasa si la aplicacióntiene un error que no permite carga exitosa de la¿bootloader? Para asegurar la capacidad de actualizar y corregir firmware, es una buena idea poner en un método de prueba de fallos de iniciar el gestor de arranque en el proyecto del gestor de arranque.

b) Lanzamiento del gestor de arranque en el inicio con una espera infinita período

Para abordar cuestiones tales como las aplicaciones corruptas o tiempos de larga enumeración con un bootloader USB, nos puede agregar una forma de iniciar el bootloader y permanecer en el Gestor de arranque hasta que se recibe una orden. Podemos personalizar el proyecto del gestor de arranque para comprobar algunos entrada d

usuario antes de llamar a Bootloader_Start() y corriendo a través de su rutina normal.Consulte el sección Firmware bootloader para másinformación.

Proyectos de ejemploLas siguientes secciones muestran los pasos para crear PSoC Creador del gestor de arranque y bootloadable proyectos. Ellos también muestra cómo crear y utilizar su propio basado en Windows bootloader programa host mediante la programación de C# idioma. Los proyectos pueden usarse con theCY8CKIT-001 kit de desarrollo, o la CY8CKIT-030 o CY8CKIT-050kits.Proyecto 1: USB cargador de arranqueCrear el proyectoPara empezar, tenemos que crear el proyecto de gestor de arranque del núcleo.Crear un nuevo proyecto de PSoC creador y asígnele un nombrecomo "USB_Bootloader". Seleccione el vacío PSoC 3Plantilla de diseño. Crear un nuevo espacio de trabajo para este proyecto.

Haga clic en el botón "+" junto a "Avanzado" para ampliar laOpciones de configuración y seleccione el tipo de aplicación, comoLa figura 3 muestra.

Figura 3. Nueva creación de proyectos

el Ahora que tenemos nuestro proyecto necesitamos añadir componentes

a nuestro esquema. Añadir USBFS, gestor de arranque, el carácter

L

LCD y componentes Pin Digital para el esquema.Cambiar el nombre de los componentes según la tabla 1.

Tabla 1. Nombres de componentes del gestor de arranque

Componente Nombre

USBFS USBFS

Gestor de arranque BL

PIN Wait_Forever

Caracteres LCD LCD_BL

El siguiente paso es configurar estos componentes.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 4

Configurar el componente del gestor de arranque

Haga doble clic en el componente del gestor de arranque para abrir el Asistente de configuración. Configurar el componente de comunicación para USBFS_1, como se muestra en figura 4. Esto dice creador de PSoC para generar las funciones necesarias para el gestor de arranque para interfaz con el USB.

Figura 4. Componente bootloader Customizer

Tomemos un momento para revisar la "espera de comando" ajustes, descritos en detalle a continuación. Estos ajustes son particularmente importante para los gestores de arranque USB porque nos necesidad de considerar el tiempo de enumeración. Para obtener información sobre la resto de la configuración del gestor de arranque se refieren al gestor de arranque hoja de datos del componente.

Espera de comando: Restabl, el gestor de arranquepuede esperar a un comando desde el gestor de arranque, osaltar al código de la aplicación inmediatamente. Si esta opciónestá habilitada, el gestor de arranque esperará un comando desde el host hasta el período de tiempo de espera especificado por Parámetro de "Esperar el tiempo de comando". Si el gestor de arranque No recibe un comando desde elhost dentro de esteintervalo de tiempo de espera, el proyecto activo bootloadable en la Flash se ejecuta después del tiempo de espera.

Comando tiempo espera: Si el cargador de arranque es esperar para el comando para iniciar una nueva Bootloadable de carga aplicación, esto es la cantidad de tiempo de espera antes de a partir de la aplicaciónexistente Bootloadable. Esto opción es válida sólo si esperar a quese activa el comando. El valor cero se interpreta como esperar parasiempre. El El valor predeterminado es un tiempo de espera 2 segundos.

Configurar el componente USB

Ahora necesitamos configurar el componente USBFSapoyar la comunicación del gestor de arranque. Recuerde que esteNota de aplicación utiliza la clase USB HID para evitar la necesidad delos archivos de controlador suministrado externamente. Para comenzar a configurar el Componente USBFS, haga doble clic en él.

Utilice la opción de configuración de insertar en el dispositivoFicha del descriptor para importar la configuración USB para el Gestor de arranque, figura5 muestra. La completa USB configuración para el gestor de arranque se guarda como un archivo xml y se incluye con PSoC creador. Bootloader.root.XML esubicado en el directorio:

<PSoC creator="" installdir="">\psoc\content\</PSoC> cycomponentlibrary\CyComponentLibrary.cylib\ USBFS_v2_40\Custom\template\

Si no ves la plantilla del gestor de arranque, ajustar el archivo filtro de tipo en el cuadro de diálogo a todos los archivos .xml.

Figura 5. Inserte el USB configuración

Después de que el archivo xml es importado, creador de PSoC configura el Descriptores USB automáticamente. Consulte el Apéndice A para USB detalles de configuración.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 5

Configurar la entrada de Pin

Como se mencionó anteriormente, es una buena idea para proporcionar opción puerta trasera para iniciar el bootloader. Una manera de hacer estoes para comprobar el estado de un pin en el arranque. Esto funciona muy bienSi la aplicación final ya tiene algún tipo de usuariointerfaz como un interruptor. Podemos asignar un pin de entrada enel proyecto del gestor de arranque con el mismo conector físico que utilizareen el proyecto bootloadable. Incluso podemos utilizar el mismoperno de nombre, como el gestor de arranque y bootloadable configuraciones únicas.

Aquí configuramos un pin de entrada digital. Más tarde, en el Sección de firmware, vamos a discutir cómo utilizar este pin como un opción de puerta trasera.

Establezca el modo de disco de este pin en pull-up resistiva y la inicial en estado alto (1), como muestra la figura 6. Deseleccione la Configuración de conexión hardware bajo la ficha tipo así.

Figura 6. Configuración de pines

Coloque los pernos y configurar relojes

unAhora que todos los componentes están configurados, debemosconfigurar los sincronización de los recursos y colocar las clavijas.

En la ventana del explorador de área de trabajo, localice y doble-Haga clic en USB_Bootloader.cydwr.La pestaña selección de Pin

mosaparece. Tenga en cuenta que son las líneas USB ingles y D-datosasigna automáticamente por PSoC creador.

Asignar el componente pin Wait_Forever a un pin físico en el dispositivo basado en el kit está utilizando:

un) Si usted está usando un CY8CKIT-001, asignar el pasador paraP0 [7].

b) Si usted está utilizando el CY8CKIT-030 o CY8CKIT-050, asignar el Pin a P6 [1].

Los pines del LCD pueden asignarse a Port2 [6:0]. Esto funciona para todos los kits de PSoC.

A continuación haga clic en la ficha de relojes y haga doble clic en uno de los relojes para abrir al asistente de configuración. Si utiliza un 3 PSoCo dispositivo 5LP PSoC, ajustar la configuración del reloj para que coincida conFigura 7 en la página 6. La OIT debe establecerse a 100 kHz y el reloj USB debe establecerse a 48 MHz.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 6

Figura 7. PSoC 3 / Configuración del PSoC 5LP

PSoC 5 dispositivos requieren un cristal externo de 24 MHz (XTAL) para cumplir los requisitos de precisión de reloj USB. Para un PSoC 5dispositivo, ajustar los parámetros para la fuente de la OMI desde el XTAL externo, como muestra la figura 8.

Figura 8. PSoC 5 configuración de reloj

OMI debe ser originario de fuente externa de reloj

ILO debeestablecerse en100 kHz

Reloj USB debeser 48 MHz

Autobús reloj debeser 33 MHz o

mayor

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 7

FirmwareDespués se configuran todos los elementos de hardware en PSoC creador, el siguiente paso es añadir firmware para controlar laoperación del cargador de arranque. Código 1 presenta el firmware de main.c del proyecto asociado del gestor de arranque, con los comentarioseliminado.

Código 1. Bootloader main.c

void main(){

LCD_BL_Start();LCD_BL_PrintString("bootloader");LCD_BL_Position (1, 0);

if((Wait_Forever_Read() == 0) || (BL_GET_RUN_TYPE == BL_START_BTLDR)){

BL_SET_RUN_TYPE(BL_START_BTLDR);LCD_BL_PrintString ("espera para iniciar");

}

CyBtldr_Start();

for(;;){

/ * Coloque aquí su código de aplicación. */}

}

Lo primero que hacemos en el gestor de arranque es poner en marcha la pantalla LCDy mostrará la palabra ―Bootloader‖ en la fila superior. Estoindica que el cargador de arranque está actualmente en control.

A continuación, comprobamos el estado del pin Wait_Forever y labooloader ejecutar tipo. El tipo de ejecución dice el bootloader aesperar indefinidamente o después del tiempo de espera pasar el control ala aplicación. Si el tipo de funcionamiento es BL_START_BTLDR, entoncesespera indefinidamente. Cuando se invoca el proyecto bootloadableel gestor de arranque es el gestor de arranque tipo empieza a correrGestor de arranque.

Si el pin se mantiene bajo en el inicio, sabemos que el usuarioquiere esperar una eternidad para iniciar un bootload y no pasarcontrol de la aplicación. En este ejemplo puedes hacerlopulsado SW2 en el tablero de juego al mismo tiempo restablecer elPSoC.

Comprobamos el bootloader correr tipo utilizando los siguientesmacro:

Bootloader_GET_RUN_TYPEY podemos configurar el gestor de arranque tipo con ejecutar:

Bootloader_SET_RUN_TYPETenga en cuenta estosmacros asumir que el Gestor de arranquecomponente se denomina "Bootloader".

Si el interruptor se lleva a cabo bajo (iniciado por el usuario) o si el funcionamiento tipoYa está establecido en BL_START_BTLDR (bootloadableIniciado), disponemos de ―Wait para Start‖ en el LCD y el conjuntoel tipo de ejecución BL_START_BTLDR. De lo contrario elcargador de arranque espera sólo 2 segundos antes de control pasa ala aplicación.

La última cosa que hacemos en main.c es llamada CyBtldr_Start(). NosNo devuelva de esta función. Esta función tampoco veceshacia fuera o completa una operación de bootload. En cualquier caso elbootloader define el tipo de ejecución de BL_START_APP yemite un software reset para pasar el control de la bootloadablecódigo.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 8

Proyecto 2: Bootloadable (aplicación)Crear el proyectoEn este ejemplo, construimos un proyecto sencillo que muestra lamensaje de "¡ Bootloaded!" en la pantalla LCD de caracteres. Cuando ustedpulsar un interruptor, el dispositivo entra en el gestor de arranque y esperapara una nueva imagen de bootloadable.

Crear un nuevo proyecto de tipo Bootloadable, como figura 9muestra. Nombre del proyecto Bootloadable. Agregar este proyecto ael mismo espacio de trabajo como el proyecto del gestor de arranque para un mejororganización.1

Figura 9. Creación del proyecto Bootloadable

Para este proyecto necesitamos el Bootloadable, interrumpir el Pin,y componentes de LCD. Añadir estos componentes a sudiagrama esquemático.

Nombrar los componentes según la tabla 2.

La tabla 2. Nombres de componentes Bootloadable

Componente Nombre

Bootloadable Bootloadable

PIN Pin_StartBootloader

Interrupción Isr_EnterBootloader

Caracteres LCD LCD

1 Un espacio de trabajo PSoC Creador puede tener múltiples proyectos. En muchoscasos, existe un proyecto de gestor de arranque en el mismo espacio de trabajo como subootloadables asociados. Sin embargo, hacer estoesn’

thunveto

be

el

caso: gestores de arranque y bootloadables pueden existir por separadoespacios de trabajo y lugares diferentes en tu PC. Antes de llegar

comenzó con PSoC, es una buena idea a funcionar un workspaces /proyectos plan para las necesidades de su desarrollo general del sistema.Configurar el componente Bootloadable

Un proyecto de bootloadable siempre está vinculado al hexagonal de salidaarchivo de un proyecto de gestor de arranque asociados. Para vincular el

proyectos haciendo clic en la pestaña de dependencias y navegue hasta elArchivo de arranque proyecto HEX de las dependencias comoLa figura 10 muestra. El archivo hexadecimal puede encontrarse en elsiguiendo la ruta de acceso relativa:

USB Bootloader\USB_Bootloader.cydsn\DP8051\DP8051_Keil_903\Debug.Figura 10. Configuración de componentes BootloadablePara obtener información sobre el resto del Personalizador BootlodableOpciones consulte la hoja de datos del componente del gestor de arranque.LCD, ISR y entrada de PinEn primer lugar, asignar los pines del LCD a P2 ficha de Pins en [6:0] de laarchivo de recursos amplio diseño (.cydwr).Al configurar el Pin y el servicio de interrupción asociada

rutina, como figura 11 – 13 en Mostrar página 9.1.Establecer el modo de la impulsión del componente Pin resistiva

dominadas con agarre pronado y conjunto el Pin Puerto interrupción ocurrirá en elFlanco descendente.2.

ConectarunISR

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 9

Figura 11. Modo configuración de pines Drive

Figura 12. Configuración de interrupción de PIN

Figura 13. Asignación y colocación de perno

FirmwareAgregue el código siguiente a main.c, como muestra el código 2:

Código 2. Bootloadable main.c

Uint8 bootload_flag = 0;

void main(){

/ * Código Iinitialization/arranque aquí * /LCD_Start();LCD_PrintString ("Bootloaded.");LCD_Position(1,0);LCD_PrintString ("SW2 escriba Btldr");

/ * Habilitar interrupciones * /isr_EnterBootloader_Start();CYGlobalIntEnable;

for(;;){/ * Establecer cuando es in_StartBootloader

Pulsa * /if(bootload_flag){

/ * Ingresar Bootloader * /Bootloadable_Load();

}}

}

Los mensajes "Bootloaded!" y "SW2 entrar Btldr"Visualiza en la pantalla después de que el gestor de arranque pasa controlpara la aplicación.

La bandera bootload entonces se comprueba continuamente. Si la banderase establece, se llama a Bootloadable_Load() para invocar la funciónel gestor de arranque. Como hemos comentado anteriormente, esta función ajustaflash variable para indicar el tipo de ejecución para el gestor de arranque, yluego se ejecuta un software reset para pasar el control a laGestor de arranque.

A continuación, genere el proyecto para generar el componente de interrupciónArchivos de API. Entonces en el conjunto de rutina de servicio de interrupción delvariable 'bootload_flag' para mostrar que quiere invocarel gestor de arranque. Tenga en cuenta que 'bootload_flag' está definido enMain.c y por lo tanto debe ser declarada como un externovariable en interrupt.c, como se muestra en código 3.

Código 3. EnterBootloader ISR

CY_ISR(isr_EnterBootloader_Interrupt){

/ * Coloque aquí el código de interrupción. *// * '#START isr_EnterBootloader_Interrupt'*/

/ * Set bandera para mostrar el evento de la interfaz de usuario*/bootload_flag = 1;

/ * '#END' * /}

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

USB HID Bootloader for PSoC® 3 and PSoC 5

www.cypress.com Document No. 001-73503 Rev. *C 10

Configuración del reloj A diferencia del proyecto del gestor de arranque, un proyecto bootloadable hace no requiere ninguna configuración específica de reloj. En este ejemplo utilizamos el estándar de 3 MHz OMI con un 24 MHz Salida PLL. Usted puede configurar los relojes de manera que se adapta a las especificaciones de su proyecto.Configuración KitConfigure el kit de desarrollo para poner a prueba el proyecto como de la siguiente manera:

a) Para el CY8CKIT-001

Conectar P0 [7] para SW2

Conecte un cable USB de su PC para J9.

Asegúrese J12 está en la posición "On", al poderla pantalla LCD

Conecte el LCD en el conector LCD Puerto 2

Establecer SW3 a 5V

Cambie J8 en la posición más baja, a la fuente dealimentación desde el bus USB

Establezca todos los puentes de potencia (J2 - J7) a "Vdd"

b) Para el CY8CKIT-030 o CY8CKIT-050

Conecte un cable USB desde el PC al J2

Set J10 y J11 en la posición 5V

Conecte el LCD en el conector LCD Puerto 2

Tenga en cuenta que este proyecto no es compatible con el PSoC Primera Toque Kits.

USB HID Bootloader for PSoC® 3 and PSoC 5

www.cypress.com Document No. 001-73503 Rev. *C 11

PSoC Creator Bootloader Host Es el momento de realizar una operación de bootload. Para probar nuestra bootloader vamos a utilizar la herramienta de gestor de arranque host que viene con PSoC Creador1. Construir la bootloadable proyecto. Programa la

proyecto bootloadable en el PSoC

2. Abra la herramienta Bootloader Host ( Figura 14) pornavegar a Herramientas Host Bootloader en PSoCCreador

Figure 14. PSoC Creator Bootloader Host Tool

3. Haga clic en Filtros y agregar un filtro para identificar el USB dispositivos (es decir, el DVK) que tiene intención de Bootload, como Figura 15 shows. Utilice el Vendor ID (VID) y Identificación del producto (PID) como se define en la plantilla; véase Configure el componente USB

Figure 15. VID y PID Configuración del filtro

4. Haga clic en Abrir archivo para buscar la ubicación de suarchivo bootloadable (*. cyacd). El archivo de cyacd. Puedeser que se encuentra en la carpeta de depuración de suproyecto

5. Presione SW2 en su kit de desarrollo para pasar elcontrol de el PSoC al gestor de arranqueTambién puede restablecer el dispositivo para pasar elcontrol de nuevo a el gestor de arranque. Recuerde quecuando el dispositivo entra en el gestor de arranque dereinicio o encendido espera por un período de tiempo deespera (establecido en el componente de gestor dearranque) antes de pasar el control a la aplicaciónbootloadable

Tenga en cuenta que la enumeración USB lleva tiempo. Si toma demasiado tiempo para enumerar dispositivo bootloader entonces puede agotar el tiempo y pasar el control a la aplicación antes de que el huésped tiene la oportunidad de comenzar una bootload. Uso el método de puerta trasera que implementamos, iniciar el bootloader manteniendo pulsado SW2 cuando se restablece la PSoC. Consulte Firmware f detalles o más sobre cómo este funciona.

6. La pantalla LCD indica que el gestor de arranque está activo - un dispositivo de interfaz humana USB aparece en la ventana de puertos. Al seleccionar el puerto de HID que vea el VID y PID establecimos en el descriptor de HID. Haga clic en Programa o presione F5 para iniciar bootloading.

La sección siguiente muestra cómo crear su propio herramienta de host del gestor de arranque, con una interfaz gráfica de usuario basada en C#

USB HID Bootloader for PSoC® 3 and PSoC 5

www.cypress.com Document No. 001-73503 Rev. *C 12

Construir un Host Bootloader En esta sección se muestra cómo crear una interfaz gráfica de usuario que implementa su propio gestor de arranque personalizado Host USB. Sólo la tecla pasos se describen aquí. Si no está familiarizado con Desarrollo de aplicaciones de Windows o Microsoft Visual De estudio, por favor refiérase a la sección de recursos relacionados para recomendaciones sobre dónde aprender acerca de estos temasSe recomienda que usted ha abrir el ejemplo de C # y C + +, mientras que los proyectos que realizan los siguientes pasos. La proyectos se adjuntan a esta nota de aplicación como los archivos zip.Un ejecutable completado basándose en los estos proyectos es también disponible, como USBBootloaderHost.exe.

Recursos necesarios

Usted necesitará un par de cosas para crear el host del gestor de arranque:

1. Visual C# Express 2008 o posterior

Esto es IDE gratuito de Microsoft para el desarrollo de. NET aplicaciones utilizando el lenguaje de programación C #. Mientras esta nota de aplicación utiliza la versión gratuita del software, también puede utilizar la versión completa (Visual Studio). Visual C # Express se puede descargar de Microsoft en el siguiente URL: 2.010 Visual C # Express

2. Visual C++ Express 2008 o más reciente (Opcional)

Este es otro IDE de Microsoft para el desarrollo de. NET aplicaciones, sino que utiliza el lenguaje de programación C + +. Visual C + + Express se utiliza para generar un vínculo dinámico Library (DLL) usando módulos de C. Esto sólo es necesario si deseen crear su propia DLL. Un archivo DLL precompilado, Bootload_Utils.dll, se proporciona con el proyecto asociado archivos.

Visual C + + Express se puede descargar desde el siguiente URL: 2010 Visual C + + Express

3. CYUSB.dll

CYUSB.dll es el Cypress desarrollado y mantenido. NET biblioteca para interconectar aplicaciones de Visual Studio con Los dispositivos USB de Cypress. Esta DLL viene incluido con el Paquete Cypress SuiteUSB, que es un conjunto completo de Herramientas de desarrollo USB para Visual Studio. Una copia de CyUSB.dll se incluye en esta nota de aplicación, puede ser que se encuentra en la carpeta "Host GUI".

Además, SuiteUSB se puede descargar de Cypress en el siguiente enlace: Cypress SuiteUSB.

4. API del gestor de arranque suministrados con PSoC Creador

Los cuatro módulos de API utilizadas para crear el programa de acogida son incluido con esta nota de aplicación o se puede encontrar en la siguiente carpeta Creador PSoC:

PSoC Creator\2.1\PSoC Creator\cybootloaderutils

Estos módulos incluyen todo el código necesario para interconectar con un bootloader PSoC usando el gestor de arranque Cypress protocolo. Para obtener más información sobre este protocolo de ver el ficha componente gestor de arranque o la referencia del sistema Guía.

Hay cuatro módulos, cada uno de los cuales es un C / h Archivo par..: cybtldr_command.c / .h

Este módulo construye paquetes a enviar a la gestor de arranque, y analiza los paquetes recibidos desde el bootloader

cybtldr_parse.c / .h

Este módulo analiza el archivo cyacd *. Que contiene el bootloadable imagen para enviar al dispositivo

cybtldr_api.c / .h

Este módulo contiene las funciones de bajo nivel para configurar la operación bootload, programa una fila flash, borrar una fila, verificar una fila, y poner fin a la operación bootload

cybtldr_api2.c / .h

Este módulo es una API de alto nivel que gestiona la proceso bootload entero. Tiene funciones a programthe dispositivo, borrar el dispositivo, compruebe el dispositivo y anular la operación bootload

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 13

Crear la aplicación Host del gestor de arranqueEste proceso tiene cuatro etapas principales:

Etapa 1: Crear una DLL (Dynamic Link Library) con elfunciones de utilidad C bootloader proporcionadas de PSoC creador.

Etapa 2: Crear una aplicación de formularios Windows C# (es decir, unINTERFAZ GRÁFICA DE USUARIO).

Etapa 3: Importar las funciones esenciales del gestor de arranque de laDLL creada en etapa 1.

Etapa 4: Proporciona definiciones para la comunicaciónfunciones definición y requieren por CyUSB.dll.

Las secciones siguientes explica en detalle cada etapa:

Etapa 1: Crear una DLLLo primero que tenemos que hacer es crear un vínculo dinámicoBiblioteca (DLL) con los archivos de arranque C PSoC creador.

NOTA A copia de un Ya compilado DLL,"BootLoad_Utils.dll", se adjunta a esta nota de aplicación,Así que esta etapa es opcional.

1. Abre tu entorno de desarrollo de Visual C++. Elpasos siguientes se basan en Visual C++ Express2008.

2. En el menú Archivo, seleccione nuevo proyecto.

3. Seleccione Win32 como el tipo de proyecto y luego seleccioneAplicación de consola Win32.

4. Proporcionar un nombre adecuado al proyecto, tales comoBootloader_Utils.

5. Haga clic en Aceptar para iniciar al asistente para aplicaciones Win32.Bajo Tipo de aplicación, SeleccioneDLL. BajoOpciones de la aplicación, seleccione proyecto vacío. Haga clic enTerminar de aplicar estos ajustes y crear una nuevaproyecto.

6. En el explorador de soluciones, haga clic en archivos de encabezadoy seleccione Añadir-> elemento existente. Añadir la siguientearchivos de encabezado: cybtldr_command.h cybtldr_parse.h cybtldr_api.h cybtldr_api2.h

7. En el explorador de soluciones, haga clic en archivos de código fuentey seleccione Añadir-> elemento existente. Añadir la siguienteArchivos de código fuente: cybtldr_command.c cybtldr_parse.c cybtldr_api.c cybtldr_api2.c

8. Para construir el proyecto en un archivo DLL, del proyectomenú, seleccione las propiedades del proyecto. En el panel izquierdo,en propiedades de configuración, seleccione a General.Desde el panel derecho, cambiar el tipo de configuracióna biblioteca dinámicos (.dll). Pulse OK para guardar lacambios.

9. Compilar el proyecto haciendo clic en Debug-> BuildSolución. Esto crea el archivo dll necesario.

El BootLoad_Utils.dll y el CyUSB.dll tienen que sercopiado a la carpeta de salida de la aplicación de formularios Windows(donde se crea el archivo .exe), como la próxima etapadescribe.

Etapa 2: Crear un formulario Windows FormsAplicaciónEl siguiente paso es crear un GUI para el host del gestor de arranque.La GUI se crea utilizando Visual C#. Los principaleslos requisitos son sencillos:

Reconocer y conectar a un dispositivo HID basado en elVID y PID. Para más información consulte el USBNotas de aplicación en la sección recursos relacionados.

Permite al usuario seleccionar un nuevo archivo .cyacd para bootloaden el dispositivo

El archivo .cyacd en el dispositivo a través del programa eluso de las funciones de .dll

Abra su entorno Visual C# y crear una nuevaAplicación de Windows Forms. Toma elementos del cuadro de herramientasy arrastre las formas deseadas de la ventana del formulario principalpara implementar el ejemplo mostrado en la figura 16 GUI

Figura 16. Host personalizado Bootloader GUI

Usted puede agregar otros elementos de la caja de herramientas para personalizar tu GUIcon opciones tales como informes de estado desde el gestor de arranquelos paquetes de respuesta o una barra de progreso durante la bootloadoperación.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 14

Etapa 3: Importar las funciones de gestor de arranqueEl paso siguiente es importar las funciones de gestor de arranque denuestra dll en nuestra aplicación de C#. Esto se logra utilizandoel modificador dllimport. Usando dllimport nos permite hacerllamadas a código no administrado desde una aplicación administrada.La utilidad del gestor de arranque los módulos se definen como no administradacódigo.

Administrado se ejecuta código en el CLR (Common LanguageTiempo de ejecución), que ofrece servicios como la recolección de basura,verificación de tipos en tiempo de ejecución y verificación de referencia. VisualBasic y C# puede producir solamente código administrado.

Compila código no administrado a código de máquina.Esto significa que no está gestionado por el CLR ypor lo tanto no llega a usar utilidades como basuracolección. Todo el código administrado está escrito en Visual Studioen C o C++.

Por ejemplo ver el proyecto de Visual Studio incluyeUSB_Bootloader_Host. El clase Bootload_Utils esdefinidas en el archivo BootLoad_Utils_NativeCode.cs.

Para importar las funciones sigan estos pasos:

1. Identificar las funciones de la DLL que se invocan directamente porla aplicación host de C#. Esto incluye: CyBtldr_Program() CyBtldr_Erase() CyBtldr_Verify() CyBtldr_Abort()

2. Crear una clase para sostener las funciones DLL. Puede utilizar unclase existente, crear una clase individual para cada unola función no administrada, o crear una clase que contieneun conjunto de funciones relacionadas no administrados.

3. Crear prototipos en código administrado.En C#, utilice el atributo DllImport para identificar el archivo DLLy la función. Esto indica al compilador dónde encontrar eldefinición de función. Marque el método con la estáticay extern modificadores.

A partir de .NET 4.0 necesitamos especificar el llamadoConvención también. Hacemos esto mediante la adición de laparámetro CallingConvention.Cdecl ParaDile elcompilador que se trata de una función de estilo de lenguaje CDeclaración. Ver código 4.

Código 4. Funciones de la importación de dll

[DllImport ("BootLoad_Utils.dll",CallingConvention =

CallingConvention.Cdecl)]public static extern int

CyBtldr_Program (string archivo,Ref CyBtldr_CommunicationsData comm,Actualización de CyBtldr_ProgressUpdate);

4. Llame a la función de la Dll.El métodos y objetos proporcionadoporBootLoad_Utils.dll son acceder a De el C#aplicación mediante la utilidad de la invocación de plataforma (pInvoke)proporcionado por Windows.Se invoca el método en el código C# como lo haríainvocar cualquier otro método. Vea el código Form1.cs enel proyecto de Visual Studio asociado de ejemplos.

Etapa 4: Definir la comunicaciónFuncionesLos archivos C a PSoC creador contienen código quemaneja el protocolo de ciprés del gestor de arranque para que el hostpuede leer el .cyacd archivo y marco bootloader paquetes.Sólo tienes que definir la comunicación de alto nivelfunciones para el manejo de la interfaz USB.

Deben definirse las funciones siguientes en el código C# parautilizar las funciones de utilidad del gestor de arranque:

OpenConnection()

CloseConnection()

ReadData()

WriteData()Estas cuatro funciones son utilizadas por las funciones de C comodevoluciones de llamada para enviar y recibir comandos del gestor de arranque. Acallback es una función utilizada por código de nivel inferior que esdefinido en el código de nivel superior. Con el fin de coincidir con el más altodefiniciones de nivel con las declaraciones de nivel inferiores que definimosfunción de punteros a las funciones de nivel inferiores y conjunto de lafunciones como delegados de alto nivel.

Revise el archivo BootLoad_Utils_NativeCode.cs en laProyecto asociado USB_Bootloader_Host C# para ver cómopara ello. Por ejemplo, para implementar el OpenConnectionla función, siga estos pasos:

1. Declarar la función como delegado, como muestra el código 5.

Código 5. Declaración de OpenConnection Callback USB

[(UnmanagedFunctionPointer)CallingConvention.Cdecl)]

Delegado public int OpenConnection_USB();

2. Definir la función en C#, como muestra el código 6:

Código 6. Definición de OpenConnection Callback

public int OpenConnection(){

int estado = 0;¿estado = GetHidDevice()? ERR_SUCCESS:

ERR_OPEN;devuelven estado;

}

Repita los pasos 1 y 2 para cada uno de la comunicación USBfunciones.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 15

3. El estructura "CyBtldr_CommunicationsData"declarado en cybtldr.h se utiliza Parase reúnen losfunciones de comunicación, como se muestra en código 7. Necesitamospara definir esta estructura, crear una instancia de laestructura y poblar a sus miembros con el delegadofunciones. Vea la clase "Bootload_Utils" en el C#Código adjunto.

Código 7. Estructura de datos de la función de devolución de llamada

[StructLayout(LayoutKind.Sequential)]público struct CyBtldr_CommunicationsData{

público OpenConnection_USB OpenConnection;CloseConnection_USB pública

CloseConnection;público ReadData ReadData_USB;público WriteData WriteData_USB;uint pública MaxTransferSize;

};

4. Crear una instancia (comm_data) de la estructura que hemos definido anteriormente, como muestra el código de 8.

Código 8. Crear una nueva instancia de CyBtldr estructura

Bootload_Utils.CyBtldr_CommunicationsData comm_data =Nueva Bootload_Utils.CyBtldr_CommunicationsData();

5. Asignar a los miembros de la estructura, como código 9muestra:

Código 9. Poblando a los miembros de la estructura

comm_data.OpenConnection = OpenConnection;comm_data.CloseConnection =

CloseConnection;comm_data.ReadData = ReadData;comm_data.WriteData = WriteData;comm_data.MaxTransferSize = 64;

Aquí está una breve explicación de lo que cada uno de estas funcionesZorro

1) Delegado public int OpenConnection_USB();

This function gets a handle to the USB device with acoincidencia de VID y PID.

2) public delegate int CloseConnection_USB();

This function releases the previously obtained devicehandle and sets the USB device object to null.

3) public delegate int ReadData_USB(IntPtr buffer, int size);

This function reads data from an IN Endpoint and stores iten un búfer.

4) public delegate int WriteData_USB(IntPtr buffer, int size);

This function writes data to an OUT Endpoint. The data ispreloaded in a buffer.

The definitions for the communication functions are givenin delegated_functions.cs andBootLoad_Utils_NativeCode.cs in the attached C# project.

Complete the Windows Form ApplicationThe bootload process is conveniently wrapped in a singlefunction call. After a valid USB device is attached and a.cyacd file has been selected, the host application onlyneeds to call the following function to perform the bootloadoperation:

Bootload_Utils.CyBtldr_Program(Chosen_File_Cyacd,ref comm_data,update)

In the example project this function is called when theProgram botón is clicked, using theProgram_Button_Click event handler.

SummaryBootloaders are a great tool that can be used for fieldupgrades. Every bootloader needs a hardwarecommunication interface to interact with its host. USB hasbecome so common that it has become the preferredchoice for this communication interface.

The PSoC USB HID bootloader described in thisapplication note provides a quick, reliable solution to getyou up and running with a USB bootloader. The device isconfigured as a HID class so that it can interface with anyoperating system with no custom driver.

The Bootloader, Bootloadable, and Host examplesprovided with this application note are starter designs,which can be customized to provide additional features.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 16

Recursos relacionadosNotas de aplicación:

§ AN54181 Getting Started with PSoC3

§ AN77759 Getting Started With PSoC5

§ AN73854 PSoC 3 y PSoC 5 IntroducciónGestores de arranque

§ AN60317 PSoC3/PSoC5 I2C Bootloader

§ AN57473 - PSoC ® 3 / PSoC 5 USB HIDFundamentos con el ratón y Joystick

§ AN58726 - PSoC ® 3 / PSoC 5 USB HID intermedio(con teclado y dispositivo compuesto)

§ AN56377 - PSoC ® 3 / PSoC 5 tipos de transferencia USB

§ AN023 - USB cumplimiento prueba Resumen

§ AN14557 Introducción a la CYUSB.dll baseAplicación desarrollo usando C#

§ AN61744 Introducción a la CYAPI.lib baseAplicación desarrollo usando VC ++

Información adicional:

§ Página de inicio de Cypress PSoC USB

Sobre los autoresNombre: Robert Murphy

Título: Ingeniero Senior de aplicaciones

Fondo: Robert Murphy se graduó de PurdueCon una licenciatura en la UniversidadTecnología de ingeniería eléctrica.

Contacto: [email protected]

Nombre: Keith Mikoleit

Título: Ingeniero Senior de aplicaciones

Fondo: Keith Mikoleit se graduó de WesternWashington Universidad con unDespedida de solteroGrado en EléctricaTecnología de la ingeniería.

Contacto: [email protected]

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 17

Apéndice AConfiguración HID USBFSRecuerde que esta nota de aplicación utiliza el USB HIDclase para evitar la necesidad de archivos de controlador suministrado externamente.Para comenzar a configurar el componente USBFS, doble clicen él.

1. En el árbol del Descriptor, haga clic en dispositivo de Descriptor.Configurar las opciones para los atributos del dispositivo comoa continuación (ver figura 17):

ú Vendor ID: 0x04B4ú ID de producto: 0xE174ú Comunicado de dispositivo: 0x0101ú Cadena de fabricación: Cypress Semiconductorú Cadena de producto: PSoC 3 Bootloader

El requisito sólo duro aquí es cambiar el proveedorID (VID) y el Product ID (PID). Es el VID utilizado (0x04B4)un específico Cypress Semiconductor VID. Es aceptableuso de este ejemplo. Sin embargo, debe utilizar un VIDasignado a su empresa Cuando desarrollas unaplicación para la producción. El PID elegido es exclusivo deEsta aplicación. La aplicación del host bootloader utiliza elVID y PID en reconocer el dispositivo. Usted puede opcionalmentecambiar las cuerdas diversas tales como la cadena del producto yla cadena de fabricación.

Figura 17. Descriptor de dispositivo USBFS

2. En el Descriptor árbol, Haga clic enConfiguraciónDescriptor. Configurar las opciones de configuraciónAtributos como sigue (véase la figura 18):

ú Potencia máxima (mA): 20ú Dispositivo de alimentación: Bus Powered

Figura 18. Descriptor de configuración USBFS

Los valores claves en esta sección son definir el USBdispositivo como Bus Powered y solicitar un presupuesto de alimentación de20 mA desde el host. Menos de 20 mA para la aplicaciónes aceptable, pero nosotros no podemos superar este requisito.Puesto que nosotros no requerimos funcionalidad de activación remota, nosdesactívelo.

3. En el árbol del Descriptor, haga clic en configuración alternativa 0.Configurar las opciones de atributos de la interfaz comoa continuación (ver figura 19 en la página 18):

ú Cadena de interfaz: PSoC 3 Bootloaderú Clase: HIDú Subclase: Ninguna subclase

Tenga en cuenta que aún hemos no configurado el informe HID. Si ustedHaga clic en aceptar o aplicar en este punto que usted recibirá un errorPorque ningún informe HID está definido. La creación de esteInforme está cubierto en los pasos siguientes.

Cada interfaz puede tener múltiples escenarios alternos parapermiten múltiples configuraciones de punto final. Aquí sólotener una configuración (uno predeterminado) se alternan. Esto también esdonde especificamos que el dispositivo cumple con la HIDclase. Cuenta como cambia la clase deIndefinido a ocultado, aparece un Descriptor adicional en elÁrbol raíz descriptor: Descriptor clase HID.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 18

Figura 19. Configuración alternativa USBFS

4. Haga clic enel añade Endpoint botón. Un adicionalEndpoint Descriptor aparece en el árbol del Descriptor,como muestra la figura 20.

Figura 20. USBFS añadiendo Enpoints

ClYoc

kHe

re

Utilice la interfaz HID Descriptor para crear un informe HIDdescriptor, como se muestra en la figura 21:

Figura 21. Descriptor de HID

Paso 1Paso 2

Paso 3

Paso 4

Paso 5

1. Haga clic en la ficha del Descriptor HID.2. Haga clic en el botón Añadir informe.

Siga la tabla 3 en la página 19 para los pasos 3 a 5. Elelementos del informe deben agregarse en el mismo ordenen la tabla.

3. Seleccione un elemento de la lista de HID.4. Select a value from the Item Value list according to

the table.5. When the Item Value box contains a text field for a

particular Item selected, click either the Decimal orHexadecimal radio option and enter the desiredvalue in the field.

6. Repeat steps 3 to 5 until the report descriptorresembles the screenshot in Figure 22 on page 19.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 19

Tabla 3. Descriptor ocultado elementos

Artículo HID Valor del elemento (uso)

PÁGINA DE USO (05) Controles genéricos de escritorio 01

USO (09) Undefined 0 x 00

COLECCIÓN (A1) 0 X 00 física

USO (09) Undefined 0 x 00

COLECCIÓN (A1) 0 X 00 física

USO (09) Undefined 0 x 00

LOGICAL_MINIMUM (15) 0 x 00

LOGICAL_MAXIMUM(26)

0xFF

REPORT_SIZE (75) 0 x 08

REPORT_COUNT (95) 0 x 40

SALIDA (91) Bit 1 - Variable

USO (09) Undefined 0 x 00

LOGICAL_MINIMUM (15) 0 x 00

LOGICAL_MAXIMUM(26)

0xFF

REPORT_SIZE (75) 0 x 08

REPORT_COUNT (95) 0 x 40

ENTRADA (81) Bit 1 - Variable

END_COLLECTION (C0) NA

END_COLLECTION (C0) NA

Figura 22. Completado el Descriptor HID

5. Haga clic en la ficha del Descriptor de dispositivo. En el Descriptorárbol, haga clic en HID Class Descriptor. Configurar las opciones depara los atributos del dispositivo de la siguiente manera (ver figura 23):

ú Tipo de descriptor: informeú Código del país: No se admiteú Informe ocultado: Generic HID

Puesto que el proyecto utiliza un Descriptor de informe, establecemos laDescriptor tipo de informe. Porque el proyecto no esespecífica a cualquier país, nos propusimos código de país noApoyado. Finalmente, el Descriptor de clase HID debe apuntar ael Descriptor HID informe hemos creado en el paso anterior.Para crear este vínculo, emparejamos el informe ocultado a nuestra HIDInforme Descriptor, que en nuestro ejemplo se etiquetaGenérico se escondió.

Figura 23. USBFS HID dispositivo atributos

6. En el árbol del Descriptor, haga clic en el primer punto finalEntrada de descriptor. Configurar opciones de EndpointAtributos como sigue (véase la Figura 24 en la página 20):

ú Número de punto final: EP1ú Dirección: caboú Tipo de transferencia: INTú Intervalo: 10ú Tamaño máximo de paquete: 64

El primer EP se utiliza como el punto final. Actúa como unbúfer de datos recibidos desde el host. USB IN y OUTterminología siempre se hace referencia en relación con el anfitrión del USB.

En primer lugar, definimos este extremo como extremo 1 (EP1). Siguiente,establecemos la dirección del extremo como OUT. Puesto que estola aplicación es un HID, la especificación requiere que nosotrosutilizan transferencias de interrupción (INT). Entonces establecimos la votaciónIntervalo para un valor de 10 ms. finalmente, fijamos nuestra máximaTamaño del paquete a un valor de 64 bytes.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 20

Figura 24. USBFS Endpoint 1

7. El propósito de EP2 es que actúe como un amortiguador para los datos quese enviará al host. Repita el paso 8 para la segundapunto final para configurarlo como un extremo IN con el(vea la figura 25) los siguientes atributos:

úNúmero de punto final: EP2úDirección: enú Tipo de transferencia: INTú Intervalo: 10ú Tamaño máximo de paquete: 64

Figura 25. USBFS Endpoint 2

8. Haga clic en el botón aplicar y haga clic en el botón Aceptarpara cerrar al asistente de configuración.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 21

Histórico del documentoTítulo: AN73503 - HID USB cargador de arranque para PSoC 3 y PSoC 5®

Número de documento: 001-73503

Revisión ECN Orig. deCambio

PresentaciónFecha

Descripción del cambio

** 3435382 UDAY 20/12/2011 Nuevas especificaciones.

* A 3673053 UDAY 11/07/2012 Actualizaciones menores y las ediciones. Plantilla actualizada.

* B 3811883 ANCY 14/11/2012 Actualizado para PSoC 5LP

* C 3850054 KLMZ 21/12/2012 Reescrito para la organización y contenido mejorado

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

HID USB cargador de arranque para PSoC 3 y PSoC 5®

www.Cypress.com Documento no. 001-73503 Rev. * C 22

Ventas y soporte de diseñoCypress mantiene una red mundial de oficinas, centros de soluciones, fabricante s representantes y distribuidores. Buscarla oficina más cercana a usted, visite lugares de ciprés.

ProductosAutomotriz Cypress.com/go/Automotive

Relojes & Buffers Cypress.com/go/Clocks

Interfaz Cypress.com/go/interface

Iluminación & de Control de potenciaCypress.com/go/powerpsocCypress.com/go/PLC

Memoria Cypress.com/go/Memory

Sensores de navegación óptica Cypress.com/go/ons

PSoC Cypress.com/go/PSoC

Touch Sensor Cypress.com/go/Touch

Controladores USB Cypress.com/go/USB

RF Wireless Cypress.com/go/Wireless

Soluciones de PSoC®

PSoC.Cypress.com/Solutions

PSoC 1 | PSoC 3 | PSoC 5

Comunidad de desarrolladores de ciprésComunidad | Foros | Blogs | Video | Entrenamiento

Soporte técnicoCypress.com/go/support

PSoC es una marca registrada de Cypress Semiconductor Corp. "Programable System-on-Chip", y PSoC Designer, son marcas registradas de ciprésSemiconductor Corp. Todas las demás marcas registradas que se hace referencia en este documento son propiedad de sus respectivos propietarios.

Cypress Semiconductor198 Campeón de corteSan Jose, CA 95134-1709

Teléfono : 408-943-2600Fax : 408-943-4730Sitio web : www.cypress.com

Cypress Semiconductor Corporation © 2011-2012. La información aquí contenida está sujeta a cambios sin previo aviso. Cypress SemiconductorCorporation no asume ninguna responsabilidad derivada del uso de cualquier circuito de distintos circuitos incorporados en un producto de ciprés. Ni expresar o implicar cualquierlicencia bajo patente u otros derechos. Cypress productos no están garantizados ni destinados a ser utilizados para médico, apoyo vital, salvamento, control crítico oaplicaciones de seguridad, salvo en virtud de un expreso escrito acuerdo con ciprés. Además, ciprés no autoriza a sus productos para su uso comocomponentes críticos en sistemas de soporte vital donde un fallo o puede razonablemente esperarse que resultar en lesión significativa para el usuario. Elinclusión de productos de ciprés en sistemas de soporte vital aplicación implica que el fabricante no asume todo el riesgo de tal uso y, al hacerlo así que indemnizaCypress contra todos los cargos.Este código fuente (software o firmware) es propiedad de Cypress Semiconductor Corporation (ciprés) y está protegido por y sujeto a todo el mundoprotección de la patente (Estados Unidos y extranjeros), las leyes de copyright de Estados Unidos y tratados internacionales. Cypress le otorga al Licenciatario unapersonal, no exclusiva, no transferible licencia para copiar, utilizar, modificar, crear trabajos derivados de y compilar el código fuente de ciprés y derivadotrabaja con el único propósito de la creación de software a medida y o firmware en apoyo de producto del Licenciatario para usarse sólo en combinación con un cipréscircuito integrado como se especifica en el acuerdo vigente. Cualquier reproducción, modificación, traducción, compilación o representación de esta fuenteCódigo excepto como se especifica anteriormente está prohibida sin el permiso escrito expreso de ciprés.Descargo de responsabilidad: Ciprés no otorga ninguna garantía de cualquier tipo, expresas o implícitas, con respecto a este MATERIAL, incluidas, peroSIN LIMITARSE A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR. Las reservas de ciprés laderecho de hacer cambios sin aviso a los materiales descritos. Cypress no asume ninguna responsabilidad derivada de la aplicación oel uso de cualquier producto o circuito descritos. Cypress no autoriza a sus productos para su uso como componentes críticos en sistemas de soporte vital donde unfallo o puede razonablemente esperarse que resultar en lesión significativa para el usuario. La inclusión de productos de ciprés en un sistema de soporte vitalaplicación implica que el fabricante no asume todo el riesgo de tal uso y, al hacerlo así que indemniza Cypress contra todos los cargos.Uso puede ser limitado por y objeto del contrato de licencia de software de ciprés aplicable.

http://www.Cypress.com/?ID=2233

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.

Multilizer PDF Translator Free version - translation is limited to ~ 3 pages per translation.