Rivale probé con el .inf del generador de PalitroqueZ y con el de Microchip. Use el VID 04D8 y PID 0011. Con ambos conecto el PIC al puerto USB y la PC detecta el PIC conectado de un puerto COM. Adjunto el .INF y .CAT que estoy usando en este momento, el de Microchip. En el PID modifiqué el que venía por defecto de 000A por PID=0011. Estos archivos los puse en la carpeta del proyecto.
Con respecto al programa que estoy ejecutando en el PIC, es el que sigue:
#include <18F4550.h>
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
#use delay(clock=48000000)
#include <usb_cdc.h>
#define CODE_START 0x1000
#build(reset=CODE_START, interrupt=CODE_START+0x08)
#org 0, CODE_START-1 {}
void main(){
SET_TRIS_D(0x00);
usb_cdc_init();
usb_init_cs();
do {
usb_task();
printf(usb_cdc_putc, " 1 ");
output_high(PIN_D2);
delay_ms(5000);
output_low(PIN_D2);
delay_ms(5000);
}while (TRUE);
}
Lo que estoy buscando con este programa es mandar un "1" a la pc par recibirlo en un terminal que estoy usando (probe con el SIOW paro tampoco recibí el valor) pero no consigo recibir ningún valor. Además la idea es mantener un LED parpadeando cada 500mseg, pero tampoco parpadea el LED. Estoy usando un 18F4550 con un cristal de 20MHZ.
Si saco la parte del codigo de comunicación, el LED parpadea correctamente, por lo que el circuito estaría bien. Además estoy usando un bootloader por USB HID, por eso incluyo tres lineas de codigo para proteger el mismo.
Espero que puedas ayudarme!!!