Autor Tema: Low speed USB CDC  (Leído 2767 veces)

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

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Low speed USB CDC
« 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

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Low speed USB CDC
« Respuesta #1 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í.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Low speed USB CDC
« Respuesta #2 en: 30 de Enero de 2011, 14:45:08 »
Pero tú usas HID no CDC ¿no?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Low speed USB CDC
« Respuesta #3 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.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Low speed USB CDC
« Respuesta #4 en: 30 de Enero de 2011, 20:53:11 »
¿Low speed? ¿Para qué quieres que sea Low Speed, acaso usas USB 1.1?

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Low speed USB CDC
« Respuesta #5 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.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Low speed USB CDC
« Respuesta #6 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.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Low speed USB CDC
« Respuesta #7 en: 31 de Enero de 2011, 17:47:58 »
Que PIC?

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Low speed USB CDC
« Respuesta #8 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);
       }
   }
}

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Low speed USB CDC
« Respuesta #9 en: 31 de Enero de 2011, 18:43:08 »
Ah vaya, es q me quedado atras con el PIC18F2550  :D


 

anything