TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: jfmateos2 en 30 de Enero de 2011, 13:58:24

Título: Low speed USB CDC
Publicado por: jfmateos2 en 30 de Enero de 2011, 13:58:24
Estaba buscando información sobre si es posible configurar una conexión USB CDC en un PIC sin cristal externo, usando el oscilador interno.

En principio parece ser que no es posible, pero aquí proponen una solución que consiste en instalar en Windows un driver tuneado: AVR-CDC
http://www.recursion.jp/avrcdc/cdc-232.html
Título: Re: Low speed USB CDC
Publicado por: Nocturno en 30 de Enero de 2011, 14:19:06
Sí que se puede, Juanfe.
Aquí tienes los fuses que usé en un 24F: http://www.todopic.com.ar/foros/index.php?topic=27689.msg262753#msg262753

Aunque si usas un 18F, nunca lo conseguí.
Título: Re: Low speed USB CDC
Publicado por: jfmateos2 en 30 de Enero de 2011, 14:45:08
Pero tú usas HID no CDC ¿no?
Título: Re: Low speed USB CDC
Publicado por: Nocturno en 30 de Enero de 2011, 14:48:35
Sí, tienes razón, ¿pero tú crees que no funcionaría en CDC?
Me has dejado en la duda, a ver si puedo probarlo.
Título: Re: Low speed USB CDC
Publicado por: migsantiago en 30 de Enero de 2011, 20:53:11
¿Low speed? ¿Para qué quieres que sea Low Speed, acaso usas USB 1.1?
Título: Re: Low speed USB CDC
Publicado por: jfmateos2 en 31 de Enero de 2011, 03:16:10
Quiero ahorrarme el cristal mig.

Parece ser que el sistema CDC usa Bulk transfer, que sólo funciona en alta velocidad.

Pero también parece ser que el oscilador interno del PIC es capaz, en la mayoría de los casos, de proporcionar suficiente estabilidad para alcanzar alta velocidad, aunque Microchip no lo garantiza. En resumen, si tu PIC está bien fabricado podría funcionar en alta velocidad con el oscilador interno.
Título: Re: Low speed USB CDC
Publicado por: jfmateos2 en 31 de Enero de 2011, 14:53:24
Bueno, pues después de volver a  CCS, acabo de probar con el cristal interno una comunicación CDC y, aparentemente, funciona bien.
Título: Re: Low speed USB CDC
Publicado por: jeremylf en 31 de Enero de 2011, 17:47:58
Que PIC?
Título: Re: Low speed USB CDC
Publicado por: jfmateos2 en 31 de Enero de 2011, 17:59:07
pic18f27j53 con estos fuses (te dejo un pequeño programa que funciona):
Código: [Seleccionar]
#include <18F27J53.h>
#use delay(clock=48000000)
#include <usb_cdc.h>
#fuses INTRC_PLL_IO, PLL2, PLLEN, NOCPUDIV, NOWDT
 

void main(){
   
setup_oscillator(OSC_8MHZ | OSC_PLL_ON);

   int c;

   //these lines do some initialization, obviously:
   usb_cdc_init();
   usb_init();
   usb_wait_for_enumeration();   

   while(true) {
       usb_task(); //handles connections to and disconnections from the computer, registering the PIC with the computer, etc. call this pretty often so that the PIC responds to being plugged in.
       
       if(usb_cdc_kbhit()) { //did we get some incoming data?
           c = usb_cdc_getc(); //get one character of input
           printf(usb_cdc_putc, "you typed: %c\r\n", c); //print out a response over usb
           output_high(PIN_A1);
            delay_ms(100);
            output_low(PIN_A1);
            delay_ms(100);
       }
   }
}
Título: Re: Low speed USB CDC
Publicado por: jeremylf en 31 de Enero de 2011, 18:43:08
Ah vaya, es q me quedado atras con el PIC18F2550  :D