Paso 1: Utilizar el AVR con V-USB
"V-USB es una implementación software de un dispositivo USB de baja velocidad para microcontroladores de Atmel AVR® lo que es posible construir el hardware del USB con casi cualquier Microcontrolador AVR®, no requieren ningún chip adicional".
V-USB utiliza un conjunto de hardware y un montaje muy especial técnicas de programación bit-bang el código binario de no retorno a cero (NRZ) que utiliza USB para comunicarse. Los archivos V-USB se compilarán en nuestro programa para crear un dispositivo USB con nuestro ATmega328P
Visite la parte de la Página Web de V-USB para obtener una copia de la última versión. En el código de mi proyecto, ya ha incluido.
Para compilar V-USB en su proyecto...
- Asegúrese de que usted ha definido el procesador y velocidad del reloj correctamente (V-USB sólo compatible con algunas velocidades de reloj)
- Copia la carpeta "usbdrv" desde el paquete descargado en la carpeta del proyecto
- En su Gerente de proyecto o makefile, incluyen "usbdrv.c" y "usbdrvasm. S", tal que el archivo de objeto que se genera se convierten vinculará en su proyecto
- Dentro de la carpeta "usbdrv", hay un "prototype.h usbconfig", copiar ese archivo en su directorio de proyecto principal y renombrarlo a "usbconfig.h"
- Editar "usbconfig.h", esto se explicará en detalle más adelante
- Usar comandos "#include" "usbconfig.h" y luego "usbdrv/usbdrv.h"
- Asegúrese de que "usbdrv/usbdrv.h" es capaz de encontrar "usbconfig.h", si no es capaz, con el uso "-I" a su "usbdrv/usbdrv.h" makefile o editar para cambiar la ruta del archivo a "usbconfig.h" (a "... / usbconfig.h ")
Entonces el proyecto debe implementar algunas funciones...
- Usted debe inicializar V-USB y luego activar interrupciones del AVR
- Es casi una práctica estándar falsa desconexión, esperar unos pocos milisegundos y vuelva a conectar a la computadora durante el arranque el código. Esto hace que el dispositivo y la computadora estén en un estado de "reset" para empezar.
- Una función de controlador de solicitud debe ser implementado, aunque no realice acciones reales en ella, se debe implementarlo mismo. Buscar "usbFunctionSetup" más adelante.
- En nuestro ejemplo, tenemos que usar esta función para manejar dos peticiones especiales, lo verás más adelante
- El pad es un dispositivo HID, un USB HID Descriptor de informe debe ser escrito y ser almacenado en el código
Leer más: