PIC32, el dispositivo compuesto USB CDC + HID falla con el código 10

1

He estado ocupado compilando un dispositivo USB compuesto CDC + HID durante las últimas semanas y me quedé con Este dispositivo no se puede iniciar. (Código 10) error en Windows 7.

Al mirar el dispositivo a través de USBlyzer, puedo ver que el dispositivo se comunica correctamente con la PC, ya que USBlyzer puede extraer el dispositivo USB y los descriptores de configuración. USBlyzer no señala ningún error, lo que dificulta ver qué es exactamente lo que está mal.

Mi código está disponible en bitbucket.org , la URL del repositorio de Mercurial es enlace .

El proyecto es realmente simple y básicamente hay tres archivos importantes:

El proyecto se deriva básicamente del ejemplo Dispositivo - Compuesto - MSD + CDC de Bibliotecas de aplicaciones de Microchips . He comprobado dos veces que los valores de tamaño del descriptor son correctos, y he revisado el código una docena de veces, pero no estoy seguro de lo que está causando mis dolores de cabeza.

La configuración de mi placa de prueba se ve así, y está funcionando bastante bien, ya que la he probado con un ejemplo único de HID, y funcionó perfectamente (Por lo tanto, el problema está definitivamente en algún lugar de mi código) :

Laconfiguraciónutilizaun PIC32MX250F128B MCU de Microchip , con un LDO en la parte superior derecha que baja el VUSB 5V a 3.3V para el suministro de MCU Vdd. Un cristal de 12MHz suministra una señal de reloj a la MCU, que se utiliza para configurar el reloj del Módulo USB a 48MHz (consulte los bits de configuración en el código fuente). El LED verde se ilumina cuando USBDeviceState == CONFIGURED_STATE y el LED rojo simplemente indica que el suministro de 3.3V está encendido.

El dispositivo está visible en el Administrador de dispositivos:

...pero,porsupuesto,Windows7noestácontento:

Aquí está el informe de USBlyzer:

UnpocomásdesalidadeUSBTrace,¿podríaserelproblemaconlaseleccióndeconfiguración?

No tengo idea de lo que está mal, y he estado intentando durante toda la semana solucionar este problema.

Por favor, ¿alguien puede intentar ayudar?

    

0 respuestas

Lea otras preguntas en las etiquetas