TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: anibalherves en 01 de Febrero de 2017, 12:42:26

Título: Comunicación usb pic 18f4550-PC windows 10 driver no lo acepta
Publicado por: anibalherves en 01 de Febrero de 2017, 12:42:26
Estoy intentando comunicar un pic 18f4550 con mi laptop con windows 10, son mis primeros intentos con la comunicación usb-pic, estoy programando ccs version 4.104, leyendo diversos foros he realizado las modificaciones que indican como la de modificar las lineas en el  "start device descriptors" dentro de usb_desc_cdc.h cambiando el VID a 0xD8 0x04 de microchip, windows detecta el usb mas sin embargo indica que el driver no es el adecuado, por lo que no termina de conectar el dispositivo. Busque en la pagina de microchips los drivers para el 18f4550 y no logro encontrarlo.
El codigo que estoy intentado hacer funcionar es uno   que descargue de la red que a su vez venia con los drivers pero para win7 es el siguiente:

Codigo:
#include <18F4550.h> // Definición de registros internos.

#fuses HSPLL,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN

#use delay(clock=48000000) // Frecuencia máxima de trabajo.

#include "usb_cdc.h" // Descripción de funciones del USB.
#include "usb_desc_cdc.h" // Descriptores del dispositivo USB.

void main() {
   unsigned char datoIN;
   usb_cdc_init(); // Configuramos al puerto virtual.
   usb_init(); // Inicializamos el stack USB.
   output_high(PIN_C0);
   output_low(PIN_C1);
   while(!usb_cdc_connected()) {}
   // espera a detectar una transmisión de la PC (Set_Line_Coding).

   output_high(PIN_C1);
   output_low(PIN_C0);
   do{
      usb_task();
      if (usb_enumerated()){  // Espera a que el dispositivo sea enumerado por el host.
         if(usb_cdc_kbhit()){ // En espera de nuevos caracteres en el buffer de recepción.
           
         datoIN=usb_cdc_getc();

         if(datoIN=='x'){ //¿lo que llegó fué el caracter x?
            usb_cdc_putc('x');
               //printf(usb_cdc_putc, "x.\n\r");
               //si, entonces envía una cadena hacia el PC
            output_high(PIN_C0);
            output_low(PIN_C1);
             }
            else if(datoIN=='a'){ //¿lo que llegó fué el caracter a?
            usb_cdc_putc('a');
            //printf(usb_cdc_putc, "a.\n\r");
               //si, entonces envía una cadena hacia el PC       
            output_high(PIN_C1);
            output_low(PIN_C0);       
             }
             else if (datoIN=='?'){
                printf(usb_cdc_putc,"kiubo q");
                delay_ms(1000);
                usb_cdc_putc('h');
                delay_ms(1000);
                usb_cdc_putc('o');
                delay_ms(1000);
                usb_cdc_putc('l');
                delay_ms(1000);
                usb_cdc_putc('a');
             }
         else{
            //output_high(PIN_C1);
            //output_high(PIN_C0);
            output_c(3);
         }
         }
     
        }
       }while (TRUE); // bucle infinito.
}

/////////////////////////////////////////////////////////////////////////////////////////

Ademas lei en una direccion de microsoft que ya esos drivers deben venir incluidos en win10, pero nada no logro comunicacion, que debe modificar ademas de lo antes mencionado?
Agradeciendo de antemano su pronta respuesta
Título: Re:Comunicación usb pic 18f4550-PC windows 10 driver no lo acepta
Publicado por: Romulo en 27 de Octubre de 2017, 18:15:56
aun no has podido arreglar tu problema?, yo estoy igual, utilizo un cristal de 4MHZ con PLL1 y al conectar el pic en la pc me dice que existe un error en la obtención de los descriptores y no me permite utilizar otros driver dentro de la pc, me dice que ya se esta utilizando un driver mejor.