# Codigos para USB en PIC para un 18F4550



## IngAlbertoMembrillo (Dic 9, 2010)

Saludos a la comunidad, bueno pues como bien lo dice el titulo tengo que mandar los datos de mi PIC a la computadora por medio del puerto usb y de regreso, si alguien me pudiera ayudar con algun pdf donde traiga todos los comandos para USB en este software se lo agradeceria mucho. El PIC es un 18F4550, a y otra cosa que debo hacer tambien es conectar a mi PIC16F887 por su puerto serial a mi lap top haciendola pasar por un USB, en serio estare infinitamente agradecido por su informacion


----------



## ByAxel (Dic 9, 2010)

> bueno pues como bien lo dice el titulo tengo que mandar los datos de mi PIC a la computadora por medio del puerto usb y de regreso, si alguien me pudiera ayudar con algun pdf donde traiga todos los comandos para USB en este *software*


¿Que software?



> El PIC es un 18F4550, a y otra cosa que debo hacer tambien es conectar a mi PIC16F887 por su puerto serial a mi lap top haciendola pasar por un USB


Te sirve el tema Control de dispositivos a través del módulo USB del PIC18F2550; ambos PIC son familia así que no hay problema y respecto al 16F887 no es posible si no tiene una interfaz USB que simule un puerto serie... en el mismo tema hablan de comunicación CDC que es justamente eso (puerto serie simulado por usb) o usa un convertidor USB-RS232 que los venden en casas de electrónica o cómputo.


----------



## IngAlbertoMembrillo (Dic 9, 2010)

ByAxel dijo:


> ¿Que software?
> 
> 
> Te sirve el tema Control de dispositivos a través del módulo USB del PIC18F2550; ambos PIC son familia así que no hay problema y respecto al 16F887 no es posible si no tiene una interfaz USB que simule un puerto serie... en el mismo tema hablan de comunicación CDC que es justamente eso (puerto serie simulado por usb) o usa un convertidor USB-RS232 que los venden en casas de electrónica o cómputo.



Muchas gracias por el link al otro Tema, empezare a hacer pruebas el dia de hoy, quisiera saber si tu tienes algun link de donde bajar el *api microchip mpusbapi.dll* a y el programa es PICC Compiler


----------



## ByAxel (Dic 9, 2010)

El dll no está por si solo, lo encuentras en un grupo de librerías que la descargas de aquí Microchip Application Libraries, también tiene ejemplos incluidos los de USB con el dll (compilador C18), pero puedes usar solo el dll.

Sobre el PICC Compiler no podemos dar el link por las reglas del foro.

saludos


----------



## IngAlbertoMembrillo (Dic 9, 2010)

ByAxel dijo:


> El dll no está por si solo, lo encuentras en un grupo de librerías que la descargas de aquí Microchip Application Libraries, también tiene ejemplos incluidos los de USB con el dll (compilador C18), pero puedes usar solo el dll.
> 
> Sobre el PICC Compiler no podemos dar el link por las reglas del foro.
> 
> saludos



Saludos de nuevo, mira este es mi codigo para hacer un sensor de temperatura con la simulacion PICC Compiler, el problema que tengo ahora es que quiero instalar el mchpcdc.inf para que lo reconozca y funcione y no lo hace me marca error y otra cosa que tiene es que no espera a que cierre el conector en el PICC, solo con darle play empieza a intentar instalarlo


----------



## Moyano Jonathan (Dic 9, 2010)

IngAlbertoMembrillo hola como estás. Fijate si te has equivocado al subir tu código por que no se ve. 
Otra cosa , lo que vos buscás está en el tema que desarrollé sobre la comunicación USB en el link que mencionó ByAxel.


----------



## IngAlbertoMembrillo (Dic 10, 2010)

Moyano Jonathan dijo:


> IngAlbertoMembrillo hola como estás. Fijate si te has equivocado al subir tu código por que no se ve.
> Otra cosa , lo que vos buscás está en el tema que desarrollé sobre la comunicación USB en el link que mencionó ByAxel.



Aqui el codigo:

#INCLUDE <18F2550.H>
#DEVICE ADC=10
#FUSES HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#USE DELAY(CLOCK=48000000)
#DEFINE USB_CON_SNESE PINB2
#INCLUDE <USB_CDC.H>
#INCLUDE <PIC18_USB.H>
#INCLUDE <USB_DESC_CDC.H>
#INCLUDE <USB.C>

char USB_STRING_DESC_OFFSET[]={0,4,12};
char const USB_STRING_DESC[]={4,USB_DESC_STRING_TYPE,0X09,0X04,8,USB_DES-STRING-TYPE,'C',0,'C',0,'S',0,30,USB_DESC_STRING_TYPE,'C',0,'C',0,'S',0,'',0,'R',0,'S',0,'2',0,'3',0,'2',0,'',0,'D',0,'E',0,'M',0,'O',0};

VOID MAIN()
{
BYTE i, j, address, value;
int16 q,q1;
float p;
q1=0;
setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
usb_cdc_init();
usb_init();

do{
usb_task();
if(usb_enumerated())
{
q=read_adc();
   if(q!=q)
   {
   p=5.0*q/1024.0;
   printf(usb_cdc_putc,"\n\r Voltaje= %01.2fv",p);
   }
 q1=q;
 delay_ms(500);
}
}
while(true);
}

Aqui esta el error que me viene marcando desde ayer =S
http://s699.photobucket.com/albums/vv354/RomanoMeridio/?action=view&current=ERRORINSTALACION.jpg


----------



## ByAxel (Dic 10, 2010)

Como es con la imagen ya que es muy pequeña, no veo nada.
- Has instalado el Virtual USB que está en una carpeta del Proteus?.
- No recuerdo bien pero creo a la mitad del tema Control de dispositivos a través del módulo USB del PIC18F2550 hay más información al respecto.


----------



## IngAlbertoMembrillo (Dic 10, 2010)

ByAxel dijo:


> Como es con la imagen ya que es muy pequeña, no veo nada.
> - Has instalado el Virtual USB que está en una carpeta del Proteus?.
> - No recuerdo bien pero creo a la mitad del tema Control de dispositivos a través del módulo USB del PIC18F2550 hay más información al respecto.



Ya he instalado el Virtual USB que viene con el Proteus, lo unico que no da es el problema con el driver, dice que no es y que no se puede instalar =S


----------



## Moyano Jonathan (Dic 10, 2010)

Están mal los descriptores, en el archivo USB_DESC_CDC.H tenés que definirlos no el programa principal. Además no has definido el tamaño del descriptor por lo tanto el host no puede calcular el parametro para enumerarlo al dispositivo.

Mostrame tu fichero USB_DESC_CDC.h para poder ayudarte.


----------

