TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: alejandroGC en 06 de Mayo de 2011, 22:54:35

Título: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: alejandroGC en 06 de Mayo de 2011, 22:54:35
saludos, alguien me puede ayudar, estoy haciendo una comunicacion uart y debo usar USB CDC para emular un puerto serial virtual, pero esto desde c18, he visto algunos ejemplos no miy claros pero todo en css, por favor si alguien sabe algo que me ayude, para poder implementarlo en c18, algun ejemplo o algo, por que he buscado y poco he encontrado, y ademas me has pedido todo esto en windows 7, y lo que se es que cuando meta el usb se generara un puerto serial, y me pedira los drivers para dicho puerto en windows 7, por favor si alguien sabe algo, gracias d eantemano, saludos
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: jfmateos2 en 07 de Mayo de 2011, 03:38:26
Quizás esto te ayude:

http://www.todopic.com.ar/foros/index.php?topic=33699.0
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: MetalKaiser en 08 de Mayo de 2011, 19:56:50
Saludos señores! A propósito de comunicación USB CDC, tengo un pequeño gran problema con el montaje de hardware, ya que mi PC no hace absolutamente nada cuando le conecto el montaje al puerto USB.

La simulación en Proteus funcionó tranquilamente, pero el montaje físico no hace nada, sólo enciende el LED verde conectado a RB2 mediante dos resistencias, mientras que la PC no hace ni pío! Cabe destacar que estoy usando el PIC18F4550. Les adjunto el código en CCS PICC, la imagen de la simulación en Proteus, y la fotografía del montaje físico.

El condensador conectado al pin 18 es de 47uF x 25V, el Xtal es de 20MHz.

Código: CSS
  1. #include <18F4550.h>
  2. #device adc=8
  3. #fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN
  4. #use delay(clock=48000000)    //Para Xtal de 20Mhz
  5.  
  6. #define usb_con_sense_pin pin_b2
  7. #include <usb_cdc.h>
  8. int16 q;
  9. int16 IniciarConteoEn=65459;
  10.  
  11. float p;
  12.  
  13. #int_TIMER1 //Interrupción timer1
  14. void temp1s(void) //función
  15. {
  16.    output_toggle(PIN_B1);
  17.    q=read_adc();
  18.    set_timer1(IniciarConteoEn);
  19. }
  20.  
  21.  
  22.  
  23.  
  24. void main()
  25. {
  26.    setup_timer_1 (T1_INTERNAL | T1_DIV_BY_1);   ///configuro timer 1 con reloj interno y prescaler de 1
  27.    
  28.    enable_interrupts(INT_TIMER1);               //habilita interrupción timer1
  29.    enable_interrupts(global);                   //habilita interrupción general
  30.    set_timer1(IniciarConteoEn);                 //Precarga del timer1
  31.    setup_adc_ports(AN0|VSS_VDD);
  32.    setup_adc(ADC_CLOCK_DIV_64 );//|| ADC_ACQT_2TAD ); //Indica el tiempo de reloj
  33.    #asm                                               //Inicio de sentencias en lenguaje Assembler
  34.    movlw 0b10001110 ;justificacion_derecha,2Tad,Fosc/64 //Modificando el tiempo de conversión
  35.    iorwf 0xFC0,1 ; direccion de ADCON2                  //y el tiempo de adquisición
  36.    #endasm                                            //Fin de la rutina Assembler
  37.    set_adc_channel(0);
  38.    
  39.    usb_cdc_init();
  40.    usb_init();
  41.    while(1)
  42.    {
  43.       usb_task();
  44.       if(usb_enumerated())
  45.       {
  46.          p=(5.0*q)/1024.0;
  47.  
  48.          printf(usb_cdc_putc);
  49.  
  50.  
  51.          //esperar respuesta
  52.          delay_ms(1000);
  53.       }
  54.    }
  55. }

(http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash4/227860_207911519231609_100000382860991_634675_986307_n.jpg)
(http://a3.sphotos.ak.fbcdn.net/hphotos-ak-ash4/221624_207911605898267_100000382860991_634677_4368653_n.jpg)

Se agradece la ayuda que puedan brindar...
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: MetalKaiser en 08 de Mayo de 2011, 20:00:12
A propósito del mensaje inicial, lamento no poder ayudar, ya que sólo manejo CCS, y no muy bien que digamos...

Mi proyecto está programado en esa plataforma, y tiene como propósito convertir una señal de analógico a digital, y luego enviarla a LabVIEW para que muestre el espectro de magnitud. Aún estoy trabajando en la interfaz de LabVIEW...
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: MetalKaiser en 13 de Mayo de 2011, 21:50:44
Mi problema lo he solucionado. Pretendo postear el proyecto pronto...
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: jukinch en 13 de Mayo de 2011, 23:22:10
Metalkaiser: lo solucionaste en c18 o en ccs?
             Jukinch
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: MetalKaiser en 01 de Octubre de 2011, 12:14:08
Jukinch, lo solucioné en CCS. Cuando tengo más tiempo disponible, postearé el proyecto completo.
Por ahora, necesito splucionar un último problema en LABVIEW...
Título: Re: COMUNICACION USB CDC, EN MAPLAB C18
Publicado por: beto1234 en 04 de Octubre de 2011, 07:34:30
 Solucionaste agregando un cap de 0.1uF estre VSS Y VCC  :mrgreen: