Hola. He estado tratando de hacer que funcione el USB de un pic 18f2550 en modo de dispositivo de comunicaciones (CDC) con CCS.
Primero probé usando/modificado el ejemplo que viene de CDC con CCS con resultados no buenos, luego probe a compilar el ejemplo del USB desencadenado, CDC USB de Red Pic con similares resultados.
Finalmente acabe por ponerle directamente el HEX de CDC de RedPic (para descartar que fuese algo del compilador) y sigo en la mismas. Se que el HEX es para el 18f4550, pero según entiendo debería de funcionar en el 18F2550 ya que técnicamente el 4550 es el mismo pero con más patas y algún dispositivo más pero que el ejemplo de RedPic no usa.
Lo que ocurre es que el S.O. lo reconoce pero no termina de configurarse adecuadamente. En windows aparece el puerto COM con un símbolo de admiración indicando que no pita y en Linux, el dmesg, me informa que se trata de un dispositivo CDC pero falla al tratar de obtener la configuración de baudrate, etc... Ademas para más inri, en windows solo lo reconoce bien cuando lo enchufo la primera vez, luego ya nada.
Ya he probado en ordenadores distintos y hace lo mismo. En windows uso los drivers de microchip del USB Framework (
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784), y si, con el ejemplo que viene el CCS ya probe a cambiar el PID y el VID para que fuesen el del microchip y no el del CCS ya que el Windows me chilla que el driver que viene con el CCS es de 32 bits y yo tengo el Windows 7 de 64 bits.
También comprobé la continuidad de las conexiones entre el conector USB B y el micro. La placa que tengo montada es la del proyecto Pinguino, pero sin las resistencias de protección en cada pata y con un resistencia de protección entre RA4 y el jumper/switch a masa (
http://www.hackinglab.org/pinguino/image/pinguino_sans_bridge.jpg). Hasta donde yo se, creo que no esta invertido D+ y D- (Si, ya he estado mirando en el foro casos similares).
Yo a lo que concluyo es que o algo pasa con el circuito o algo le pasa al micro, pq si no va ni con el HEX de Red Pic como debería de ir....
Esquema real:
http://imageshack.us/photo/my-images/256/20120614165248.jpg/Fotos de la placa:
http://imageshack.us/photo/my-images/194/20120614165103.jpg/http://imageshack.us/photo/my-images/854/20120614165047.jpg/http://imageshack.us/photo/my-images/827/20120614165144.jpg/http://imageshack.us/photo/my-images/841/20120614165128.jpg/PD: El grabador con que meto los hex al micro es el WinPic800 usando un GTP-USB
PPD: Si, el cuarzo es de 20Mhz y los fuses que uso para configurarlo son :
#FUSES HSPLL
#FUSES NOWDT
#FUSES NOLVP
#FUSES USBDIV
#FUSES PLL5
#FUSES CPUDIV1
#FUSES VREGEN
#FUSES MCLR