Problemas con la clase de dispositivo CDC

4

Estoy usando la placa de inicio de Microchip de 16 bits y 28 pines y la comunicación USB con la PC se rompe.

Hay dos microprocesadores en el tablero. El procesador de la aplicación se comunica con el procesador USB a través de UART. El procesador USB está configurado como un dispositivo USB de clase CDC y se muestra 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 la aplicación ok. El procesador de la aplicación 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 venía de Microchip). Ha funcionado antes, pero parece que no puedo hacerlo funcionar nuevamente.

¿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 tuvo problemas similares?

    
pregunta mjh2007

2 respuestas

4

El PIC UART puede ser delicado. ¿Recordó comprobar el bit de saturación de marco (OERR)? El PIC no podrá recibir comunicaciones UART hasta que se borre el OERR.

EDITAR: También estaba pensando ... ¿quizás podrías probar una especie de loopback? Es decir, corte el UART fuera del bucle, y cuando la PC envíe algo a través de USB, solo envíe de vuelta. Esto le diría si el problema está relacionado con UART o el lado USB del PIC.

    
respondido por el ajs410
3

USB Sniffing :

Windows: enlace

Linux: enlace

CDC de microchip :

Me temo que no sé nada sobre su pila oficial, pero ...

En enlace han estado construyendo un nuevo pila de PIC USB de código abierto

Lo están utilizando en el nuevo Bus Pirate de un solo chip . El controlador de CDC del Bus Pirate está aquí .

O bien, puede recoger la versión de pila alternativa original aquí .

    
respondido por el Toby Jaffey

Lea otras preguntas en las etiquetas