Como hacer dispositivo USB (PIC18F) (6 / 8 paso)

Paso 6: Comprender el código de firmware

En el archivo zip 'PIC18F Generic HID Device' con este artículo usted encontrará un completado firmware listo para el PIC18F4550.

Simplemente descomprime el archivo en su directorio de proyecto MPLAB favorito y luego usar el MPLAB para abrir el proyecto.

He separado los archivos de código fuente y archivos de encabezado en código que debe mirar y luego las partes más genéricas de la stack de Microchip (almacenados en directorios sub 'stack USB' en el navegador de proyecto).

Los archivos en los directorios de "stack USB" son interesantes, pero para ponerse en marcha rápidamente usted no debería preocuparse de los aspectos del meollo del código hasta que estés más familiarizado con los niveles superiores.

Puesto que ya está preparado el VID/PID y el resto de la información de enumeración debe empezar por realizar un build-todo sobre el proyecto y luego descargar el firmware resultante a su PIC18F. Por supuesto, usted necesitará un entorno de compilación sane para que funcione pero hay un montón de recursos a través de Google si tiene problemas con su entorno.

Probar con algunos ejemplos sencillos para asegurarse de que todo está bien antes de volver a cargar este proyecto y tratar otra vez.
El firmware ofrece 3 comandos:

  • 0 x 80 - cambiar el LED
  • 0x81 - Lea el estado del interruptor del empuje
  • 0x82 - Lea el estado del LED

El código que ejecuta estos comandos se encuentra en el archivo de código fuente main.c en la función ProcessIO(). Esta función es responsable de determinar al mando deseado y luego enviar y recibir datos según corresponda.

Esto es bastante sencillo ya que la pila USB se encarga de toda la complejidad subyacente; echar un rápido vistazo en el código fuente y podrás ver lo sencillo es realmente.

El cheque sólo extra realizado por la función es para ver si el dispositivo está en un estado configurado; Esto significa que el dispositivo está conectado a un host y enumeración ha sido exitosa.

La principal función simplemente llama a la pila USB para realizar las tareas de bajo nivel del dispositivo y luego la función ProcessIO una y otra vez. Es posible hacerlo usando interrupciones en lugar de un bucle, sin embargo en este firmware he seguí lo más sencillo posible.

Para entender un poco más sobre el proceso de enumeración mira usb_descriptors.c que contiene la información que se transmite al host cuando el dispositivo está conectado primero.

La fuente se encuentra la información de VID y PID del dispositivo así como una serie de descriptores de configuración que explican al host qué tipo de interfaces, el dispositivo tiene y las capacidades de los interfaces. Los 'extremos' son los conectores para las 'tuberías' descritos anteriormente.

También hay algunas cadenas que describen textualmente el fabricante y el producto. Windows generalmente utiliza estas cadenas al nombrar dispositivos USB.

Entender el proceso de enumeración y los formatos de descriptor es bastante complejo y está cubierto por las varias especificaciones de USB así como un gran libro por Jan Axelson llamado «USB completa - todo lo necesario para desarrollar periféricos USB personalizadas» (ISBN 978-1931448086). Si gozan de este artículo y quiere conseguir más serio USB recomiendo conseguir una copia del libro, sin duda me ayudó cuando yo estaba aprendiendo.

En general el firmware es muy sencillo, se incluye todo lo que necesita para levantarse y ejecutar la comunicación a y desde el host. Obviamente usted puede hacer esto tan complejo como quieras, pero a los efectos de este artículo (que te va con el USB) hay mucho para experimentar con.

Artículos Relacionados

Cómo utilizar el lector de tarjetas de memoria interno de PS3 como un dispositivo USB en tu PC

Cómo utilizar el lector de tarjetas de memoria interno de PS3 como un dispositivo USB en tu PC

primero este es mi primer Instructable (yippie!), estoy seguro de que habrá mucho que venga.Por lo tanto, tenía una PS3 rota y quería hacer algún uso de los componentes de trabajo. Lo primero que hice fue tirar la hoja de datos de la viruta del conve
Como hacer 1 usb 2, o más.

Como hacer 1 usb 2, o más.

Va a enseñar paso a paso sobre cómo aumentar el número de usb puertos disponibles en su computadora. Podría costar menos de $10 o libre.Paso 1: materiales Materiales y herramientas:Desforrador/cortador de alambrela soldadura y la soldadura de hierro
Los dispositivos USB con una fuente de alimentación 6-24V como paneles solares de energía

Los dispositivos USB con una fuente de alimentación 6-24V como paneles solares de energía

¿Nunca encontraste a ti mismo con una fuente de alimentación 6-24V, o paneles solares que pueden cargar su teléfono o ejecutar cualquier otro dispositivo USB de 5V? ¡ Pues ahora puede!Esta es una guía para encerrar un bonverter de $10 dólar (también
Como carga cualquier dispositivo USB en montar su bicicleta

Como carga cualquier dispositivo USB en montar su bicicleta

para empezar, este proyecto se inició cuando recibió un subsidio del programa Lemelson-MIT. (Josh, si estás leyendo esto, le amamos.)Un equipo de 6 estudiantes y un profesor armar este proyecto, y hemos decidido ponerlo en Instructables con la espera
Como hacer cable de extensión USB para 0$

Como hacer cable de extensión USB para 0$

Cansado del iPhone corta cableCada vez cargo mi iPhone he tenido este problemaEl cable es cortoAsí que ahora usted puede hacer su propio cable de extensión USB para 0$Proyecto de lo que se puede hacer en 10 minutosPaso 1: ¿Qué necesita?Así que para e
Como hacer auriculares por cable WIFI DIY

Como hacer auriculares por cable WIFI DIY

Hoy en día, todo es inalámbrico todos los gadgets como ratón, teclado, auriculares, altavoces etc. Así había tengo una idea para hacer con cable de auriculares / auriculares inalámbricos en casa en cuantos dólares con los auriculares antiguos. Auricu
Cómo instalar Windows 8 desde un dispositivo USB

Cómo instalar Windows 8 desde un dispositivo USB

para aquellos de ustedes que tienen netbooks y quieren instalar windows 8 pero no puedo porque theres ningún DVD conducir en ellos, o los que descargar windows 8 desde internet, heres cómo instalar windows 8 a su ordenador mediante un USB stickahora
Termómetro de interior/exterior USB (o, 'Mi primer dispositivo USB')

Termómetro de interior/exterior USB (o, 'Mi primer dispositivo USB')

este es un diseño simple que demuestra la USB periférico en la PIC 18Fs. Hay un montón de ejemplos para el 18F4550 40 pin fichas en línea, este diseño demuestra la versión más pequeña de 28 pin 18F2550.La placa utiliza piezas de montaje en superficie
Auto Reset de un dispositivo USB.

Auto Reset de un dispositivo USB.

¿No todos odiamos tener que desconecte y vuelva a conectar un dispositivo usb si ha dejado de responder? Mi UIRT USB es la clave a mi casa y automatización de comodidad. En ocasiones bloquea y debo volver a enchufarlo o reiniciar la pc.Aquí es cómo f
Como hacer el jailbreak (sin ataduras) 3.0 y 2.2.1

Como hacer el jailbreak (sin ataduras) 3.0 y 2.2.1

actualización: el dev team ha liberado una nueva versión de redsn0w y saurik ha lanzado nuevas versiones de sustrato móvil y winterboard para el 3GS!-champster2.2.1 es solo para el ipod touch 2G.Y también los datos que, Cyle/cyleleghorn/A.C.E., he añ
Hacer un USB-marcador/lápiz/marcador

Hacer un USB-marcador/lápiz/marcador

he creado un USB-marcador para los propósitos de mi clase de innovación. Yo quería hacer un lápiz USB al principio, pero fue un poco difícil, dadas las limitaciones de espacio, por lo que terminó con un marcador de USB =)Paso 1: Materiales necesarios
Dispositivo usb ocultos

Dispositivo usb ocultos

muchos de nosotros enfrentan el problema de la privacidad de los datos. Su es un barato, sorprendente e interesante manera de esconder un dispositivo de almacenamiento y controlar con el uso de magnetismo. Nadie será nunca capaz de pensar cómo activa
Cómo hacer un USB mediante el uso de batería muerta

Cómo hacer un USB mediante el uso de batería muerta

mantenimiento de documentos secretos en poder del enemigo pueden ser un reto, especialmente si los malos tienen la costumbre de parar y te busca.El cifrado es una cosa, pero es el arte de la esteganografía (ocultar mensajes) que será en última instan
Cómo jugar backups de Wii desde un dispositivo usb con ningún modchip. ¿

Cómo jugar backups de Wii desde un dispositivo usb con ningún modchip. ¿

Cansado de mala quemaduras de DVD? ¿Wii laser murió hacia fuera en usted? ¿Quieres copiar juegos de Wii directamente desde tu Wii dvd al disco duro? Este instructable es perfecto para usted! Con este instructable, usted será capaz de jugar su favorit