Autor Tema: problema driver usb cdc  (Leído 3430 veces)

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

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
problema driver usb cdc
« en: 26 de Agosto de 2008, 18:48:52 »
Hola, solo queria preguntar acerca si alguiena tenido problemas con el driver mchpcdc , ya que hago mi programa, lo conecto al usb, lo detecta, instalo el driver mencionado, y no hace nada de nada, que podria ser?

pego el programa

Código: [Seleccionar]

#define __USB_PIC_PERIF__ 1

#if !defined(__PCH__)
 #error USB CDC Library requires PIC18
#endif

#if __USB_PIC_PERIF__
  #include <18F2455.h>

  //configure a 20MHz crystal to operate at 48MHz
  #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
  //#fuses   USBDIV, PLL1, CPUDIV1, PROTECT, NOCPD, noBROWNOUT,HSPLL,NOWDT,nolvp, VREGEN
  #use delay(clock=48000000)
#else //use the National USBN960x peripheral
  #include <18F452.h>
  #fuses HS,NOWDT,NOPROTECT,NOLVP
  #use delay(clock=20000000)
#endif   //endif check to see which peripheral to use


#include <usb_cdc.h>

void main() {
   BYTE i, j, address, value;
   char RcvUSB;
   #use standard_io(A)
   usb_cdc_init();
   usb_init();

   while(!usb_cdc_connected()) {
   output_bit( PIN_A0, 1);
   delay_ms(1000);
   output_bit( PIN_A0, 0);
   delay_ms(1000);
   
   }

   do {
      usb_task();
      if (usb_enumerated()) {
         printf(usb_cdc_putc, "\r\nHello World !");
         RcvUSB = usb_cdc_getc();
         if (RcvUSB=='b') {
            printf(usb_cdc_putc, "\r\nSee how I blink 20 times on Port A.0 !");
            for (i=1;i<=20;i++) {
               output_bit( PIN_A0, 1);
               delay_ms(250);
               output_bit( PIN_A0, 0);
               delay_ms(250); 
            };
         }
         else
            printf(usb_cdc_putc, "\r\nI just received : %c",RcvUSB);
         
      }
   } while (TRUE);
}




saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: problema driver usb cdc
« Respuesta #1 en: 27 de Agosto de 2008, 11:37:22 »
Hola.

El proceso es a la inversa. Debes copiar el .inf al PC, darle click derecho, escojes la opcion instalar y luego conectas el hard y listo lo instalas como CDC.

Saludos
El papel lo aguanta todo

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: problema driver usb cdc
« Respuesta #2 en: 27 de Agosto de 2008, 13:37:46 »
Muchas gracias MLO , asi lo habia hecho anteriormente guiandome del ejemplo del maestro Redpic, pero no me salia nada, lo que hiice que que a la hora de pedirme los driver mejor puse los que ya trae el CCS en su carpeta de driver, y asi me funciono, ahora mismo lo estoy probando, el driver cdc es generico no es asi? bueno, cualquier imprevisto expondre mi duda, saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: problema driver usb cdc
« Respuesta #3 en: 27 de Agosto de 2008, 17:53:51 »
Hola.

Si es generico en la clase que maneja, es decir CDC, pero depende de los VID y PID que hay en el firmware del micro y en el .inf, tienen que ser los mismos, si no no funcionara

Saludos
El papel lo aguanta todo

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: problema driver usb cdc
« Respuesta #4 en: 27 de Agosto de 2008, 20:29:11 »
Tienes mucha razon MLO, cheque los vid y pid, y efectivamente era eso, muchas gracias, saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: problema driver usb cdc
« Respuesta #5 en: 28 de Agosto de 2008, 11:10:25 »
 :mrgreen: :mrgreen:

Que bien que lo solucionaras.

Saludos
El papel lo aguanta todo

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: problema driver usb cdc
« Respuesta #6 en: 03 de Septiembre de 2008, 02:27:35 »
Hola, aprovecho para preguntar de la funcion en cdc. ya que mi pregunta se basa en si las interrupciones no funcionan dentro del ciclo while(!usb_cdc_connected())
ya que no me funciona ninguna interrupcion dentro de ese while, saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: problema driver usb cdc
« Respuesta #7 en: 03 de Septiembre de 2008, 10:39:02 »
Hola.

 :? No veo que estes usando alguna intrerrupcion!!!! no se bien a que te refieres. Si es con respecto al encendido y apagado del led mientras en el ciclo while(!usb_cdc_connected()), me parece que intervalos de 1 segundo es muucho tiempo, la verificacion de si se conecto o no, no demora mucho tiempo que digamos (o en mi caso al menos, solo lo coloco a esperar y antes de la espera enciendo el led y luego de la espera lo apago)

Saludos
El papel lo aguanta todo

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: problema driver usb cdc
« Respuesta #8 en: 03 de Septiembre de 2008, 18:19:01 »
Hola MLO, no me referia precisamente a ese ejemplo, me referia a una interrupcion por algun sistema embebido dentro del micro, por ejemplo el timer0 o la interrupcion #int_rda, lo que pasa es que quiero hacer un programa para cuando no este conectado al pc por usb, este leyendo un canal adc, y cuando detecte que se paso de un limite se comunique con un dispositivo en serial, la parte del adc, si me funciona, pero las interrupciones no,  mi pregunta es, se pueden llamar a las interrupciones, mientras ejecuto un programa en ese ciclo while, o donde es conveniente poner el programa que se va a realizar cuando no este conectado al usb, saludos, (si pueden poner un pequeño ejemplo, muchisimo mejor, se lo agradeceria bastante) por quela verdad, no se en que parte poner el programa que va a correr sin la conexio usb. saludos
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....

Desconectado scientist

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 999
Re: problema driver usb cdc
« Respuesta #9 en: 03 de Septiembre de 2008, 23:25:34 »
Hola, me respondo yo mismo, si que se puede llamar a interrupciones dentro de la funcion  while(!usb_cdc_connected()) ahora, el problema me viene cuando quiero hacer la interrupcion por serial (int_rda) ya que es la unica que no funciona, que creen que sea? ya le estuve buscando y nada, alguien a tenido el mismo problema? donde me recomiendan situar la parte del programa que va a correr cuando no este conectado al usb? alguna sugerencia. saludos

bueno, si que se pueden hacer todas las interrupciones posibles que te da pa posibilidad el 18f2550, desde externa hasta la eeprom, un error de sintaxis me estaba matando, solucionado el problema, saludos  :D
« Última modificación: 04 de Septiembre de 2008, 23:45:48 por scientist »
NO le digas a DIOS que tienes un gran problema, dile a tu problema que tienes un GRAN DIOS!!
Alma mia y castillo mio, mi Dios en quien yo confiare....