Estoy usando la placa de inicio de Microchip de 16 bits y 28 pines y la comunicación USB con la PC sigue interrumpiéndose.
Hay dos microprocesadores en la placa. El procesador de aplicaciones se comunica con el procesador USB a través de UART. El procesador USB está configurado como un dispositivo USB de clase CDC y aparece en el administrador de dispositivos como un puerto serie.
El dispositivo enumera ok y los datos que se transmiten desde la PC al procesador de aplicaciones ok. El procesador de aplicaciones responde al procesador USB, pero la respuesta nunca llega a la PC.
Sé que las comunicaciones UART entre los dos procesadores funcionan bien porque estoy usando un BusBee para monitorear el UART. No escribí el código para el procesador USB (que vino de Microchip). Ha funcionado antes, pero parece que no puedo hacer que funcione de nuevo.
¿Hay alguna herramienta o algo que pueda usar para depurar los puntos finales USB en la PC?
Algo así como wireshark, pero para USB?
¿Alguien más ha usado el kit de inicio de 16 bits de Microchip y ha tenido problemas similares?
El PIC UART puede ser exigente. ¿Recordó verificar el bit Frame Overrun (OERR)? El PIC no podrá recibir comunicaciones UART hasta que se borre la OERR.
EDITAR: También estaba pensando ... ¿tal vez podrías probar una especie de bucle invertido? Es decir, elimine el UART del bucle, y cuando la PC envíe algo a través de USB, simplemente envíelo de regreso. Esto le dirá si el problema está en el UART o en el lado USB del PIC.
Rastreo de USB :
Windows: http://sourceforge.net/projects/usbsnoop/
Linux: http://www.linux-usb.org/tools.html
Microchip CDC :
Me temo que no sé nada sobre su stack oficial, pero...
En http://dangerousprototypes.com han estado construyendo una nueva pila USB PIC de código abierto .
Lo están usando en el nuevo Bus Pirate de un solo chip . El conductor de Bus Pirate CDC está aquí .
O bien, puede elegir la versión de pila alternativa original aquí .
mjh2007
mjh2007