Autor Tema: USB CDC no funciona con PIC18F4550  (Leído 2676 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Pezhetairoi

  • PIC10
  • *
  • Mensajes: 2
USB CDC no funciona con PIC18F4550
« en: 28 de Agosto de 2019, 02:13:57 »
Como primer mensaje, los saludo a todos mis estimados PICmaniacos jajaja Lamentablemente vengo con un problema que ya llevo una semana sin resolver, creo que intentando todo. Este problema ya lo habían posteado en este foro, pero ninguna de las soluciones me sirvió.

Mi problema consiste en que intento hacer un simple programa con este PIC18F4550, para que se conecte mediante USB CDC a mi pc. Todo lo estoy simulando con Proteus, aún nada en físico y resulta que al hacer la conexión, no he logrado salir del VID=0x000, PID=0x0000

Mi compilador es CCS 5.0.83, aunque ya he intentado con varios, por ejemplo con el 5.0.15. Ya he hecho de todo para intentar, incluso instalar máquinas virtuales de Win 7 de 64 y 32 bits (mi SO original es W10) y me pasa exactamente lo mismo. La única diferencia, es que en el "USB Analyzer" de Proteus, me sale más información en W7 que en W10.

Los drivers que estoy usando son los mismos del compilador CCS, pero a la hora de enumerar mi dispositivo emulado, siempre arroja esos VID Y PID.

Lo curioso es que ya había desarrollado un proyecto con esto y había funcionado perfecto hace unos dos años, pero ahora no logro establecer conexión.

Ya probé lo siguiente:
- Cambiar a otros valores de VID Y PID tanto en el usb_desc_cdc.h e INF.
- Cambié a distintas versiones del compilador CCS.
- Cambié a distintas versiones de Proteus (8.8, 8.4, 8.1)
- Probé ejemplos (como el de garcía cuervo) y lo mismo.
- Probé el ejemplo de ex_usb_serial2.c y lo mismo.
- Alternativamente, probé con los drivers de microchip del MLA 2018 y 2012.

Lo único que funciona, son los ejemplos de Proteus que ya vienen en .hex y no tienen su código.

PD: Sé que me pueden recomendar quemar el PIC, pero necesito emularlo primero en software, ya que es el inicio de un proyecto mayor y no puedo quemar a ciegas las etapas subsiguientes.

Desconectado AccioRw

  • PIC16
  • ***
  • Mensajes: 165
Re:USB CDC no funciona con PIC18F4550
« Respuesta #1 en: 28 de Agosto de 2019, 04:23:58 »
Hola Pezhetairoi, bienvenido al foro.
A simple vista la impresión que me da es que no estás compilando el fichero del descriptor con el VID/PID correctos, el que tu pongas ahí, compiles y grabes en el micro debe ser el que tenga cuando lo enchufes por USB, desconozco sobre tu compilador por lo tanto en ese tema ya no te puedo ayudar mucho mas.

Por otro lado te recomiendo que pruebes a hacerlo físicamente, quizás algo que no te funciona en proteus (como este caso) en la realidad lo pruebas y funciona a la primera por un error en el simulador (yo me he hartado hace años de cosas como estas y sinceramente para pruebas con MCU salvo en casos concretos, yo ya solo uso como simulador LTspice y en este caso solo para analógica, filtros y demás…) por lo tanto te animo a que lo montes en una protoboard,  que ya de por si es más fiable (que no es fiable tampoco…) pero desde luego más que proteus, no olvides el condensador de 220nF si no recuerdo mal sin ese condensador en el pin Vusb no te funcionará el regulador de voltaje bien por lo tanto no te lo reconocerá.

Por último desde mi punto de vista personal yo veo mejor como compilador e IDE MPLABX y XC8 (para esos pics la versión de XC8 v1.33) que al final es con lo que mejor vas a poder trabajar para programar pics, hay muchos compiladores mas, pero mi experiencia es con ellos y los recomiendo aunque pasar del CCS a esto sea algo más complicado

Desconectado Pezhetairoi

  • PIC10
  • *
  • Mensajes: 2
Re:USB CDC no funciona con PIC18F4550
« Respuesta #2 en: 28 de Agosto de 2019, 11:45:04 »
Muchas gracias por responder AccioRW. Y la verdad es que sí, estoy que me paso a otro compilador, aunque aún no me rindo del todo. Me pasa diría que exactamente lo mismo que:

https://www.todopic.com.ar/foros/index.php?topic=44549.0

Tema el cual nadie pudo resolver y no sé si el usuario que hizo el post al final pudo. Probé el ejemplo que el mismo menciona, con el .hex original y en efecto, simula bien, reconoce todo sin problemas. Así que tal como él, es un problema netamente de compilador, lo cual me extraña ya que ya probé con el compilador 5.015 y no funciona, y si funcionó cuando hice mi proyecto hace dos años (con windows 10 también).

Todo pareciera indicar que el compilador corrompe los valores de USB_CONFIG_PID y USB_CONFIG_VID. Por ejemplo, este es el resultado del "USB Analyzer" de Proteus cuando conecto el .hex de garcia-cuervo:

 

Y aquí el resultado del mismo código compilado por mi:



** La info que arroja el .hex al SO sobre el VID y PID a la derecha del panel, en el cuadro Data

Desconectado AccioRw

  • PIC16
  • ***
  • Mensajes: 165
Re:USB CDC no funciona con PIC18F4550
« Respuesta #3 en: 28 de Agosto de 2019, 13:07:08 »
Independientemente del compilador tiendo a desconfiar de proteus por las malas experiencias que he tenido en el pasado…
Insisto en lo de montarlo en protoboard si tienes la posibilidad siempre que nadie pueda resolverte la duda