PIC18F2450 problemas con el USB tipo CDC

Saludos expertos

Despues de un largo tiempo volvi a tratar de solucionar mi problema con el USB del PIC18F2450 que me dio tantos problemas hace unos meses atras, y al parecer tuve exito en solucionar el problema, ya que, ahora logre hacer que la PC reconosca y enumere el PIC en cualquier puerto USB, esto solo en CDC por ahora, la PC me provee con un COM x y hiperterminal muestra los caracteres que envia el PIC, pero ahora tengo un problemas mas y es que no logro enviar caracteres del PC al PIC, el usb_cdc_kbhit() responde bien pero no veo se ve el caracter enviado el codigo es el siguiente:
PHP:
#include <18F2450.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HSPLL                    //Crystal/Resonator with PLL enabled
#FUSES NOBROWNOUT               //No brownout reset
#FUSES PUT                      //Power Up Timer
#FUSES VREGEN                   //USB voltage regulator enabled
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage programing, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protecte
#FUSES MCLR                     //Master Clear pin enabled
#FUSES PLL2                     //Divide By 2(8MHz oscillator input)
#FUSES USBDIV                   //USB clock source comes from PLL divide by 2
#FUSES CPUDIV2                  //System Clock by 4

#use delay(clock= 48000000) 
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <usb_cdc.h>
#include "usb_desc_cdc.h" 

#define on output_high
#define off output_low

#define led (pin_a0)

void main (){
   char character;
   usb_cdc_init();
   usb_init();
   while(true){
   if (usb_enumerated()){
      if (usb_cdc_kbhit()){
      usb_Cdc_putc("caracter recibido\n\r");
         character = usb_cdc_getc();
         usb_cdc_putc (character);
      }
   }
   }
}

si alguien tiene alguna idea o la solucion?

NOTA: la solucion para que el PIC trabajara esta en el cristal de cuartzo, el PIC funciona en PLL con cristales de 4M, 8M, 16M o 24MHz para cualquiera que tengo un problema de comunicacion, tambien es recomentable instalar el USB sobre una placa solida que evite el movimiento del USB. Yo utilize un cristal de 8MHz con dos capacitores de 20pF en el osilador primario.
 
bueno despues de unas horas de estar buscando en la red y de estar pelenadome con este pic encontre una "posible respuesta", en otro link un ing que tenia el mismo problema posteo que el CDC de este pic no funciona con este pic asi que no va funcionar, por lo que se recomienda utilizar el HID.

Ahora el asunto que tengo con el HID es que lo configure en el pic y cuando lo conecto me lo reconoce como HID pero despues de 3 segundos exactos me tira pantallaso azul unas letras que no me da tiempo de leer y reinicia la PC alguien tiene una idea del por que de esto? codigo de error 10 en windows XP pero se supone que no deberia de requerir drivers...
 
Bueno para todos aquellos que en algun momento lleguen a leer este hilo, la razon por la cual el pic producia un pantallazo azul cuando conectaba el pic en HID es devido a que el HID tiene que estar enviando datos constantemente al PC sino el buffer del PC dara error grave y reiniciara la PC...

seguire investigando del CDC pero todo apunta a que es un problema de driver en el PC...
 
Atrás
Arriba