# Comunicacion PIC-PC mediante USB



## dragonspirit (Jul 9, 2007)

Hola a todos

He leido mucho sobre el tema de la conexion entre PC y PIC utilizando USB, y creo que seria muy interesante añadir este tipo de conexion a mi proyecto de fin de carrera, para descargar los datos obtenido por el ADC y tratarlos en PC. 

Mi duda es la siguiente: al conectar el pic por USB a veces me detecta el nuevo hardware automaticamente, y otras lo hace cuando yo hago agregar nuevo hardware desde el panel de control, pero en ninguno de los dos casos consigo instalar los driver. Me sale como dispositivo desconocido, y al intentar instalar los drivers me dice q no se encontro el software necesario, y le estoy indicando la carpeta donde tengo el driver "mchpcdc.inf"

Espero que podais ayudarme, porque llevo ya muxo tiempo perdido con esto, y estoy deseando terminar mi proyecto y para poder matricularme para el siguiente curso

Muchas gracias


----------



## dragonspirit (Jul 9, 2007)

Por cierto, en alguna ocasion he conseguido instalar el driver, pero tras instalarlo me aparece una ventana que indica que se ha instalado el hardware, pero mas abajo dice "Este dispositivo no puede iniciar (Código 10). Alguna idea

Gracias


----------



## dragonspirit (Jul 10, 2007)

Hola de nuevo

Tras muchos intentos de instalacion, he obtenido otro caso, pero sigo sin poder comunicar. Me reconoce un nuevo hardware, pero me lo reconoce como dispositivo USB desconocido, y no como un puerto COM, que creo que es como deberia reconocermelo y no puedo comunicar con él. Ya no se me ocurren mas ideas.

Un saludo


----------



## davemaster99 (Jul 12, 2007)

Saludos...

Para poder ayudarte, indicanos qué circuito de interface pc-pic estas utilizando. Has programar un driver para tu dispositivo..... por ahi esta la solución....

Estamos en contacto


----------



## dragonspirit (Jul 18, 2007)

Al final el problema parece que era de Hardware. Le puse un condensador entre alimentacion y masa mas grande que el que tenia, y conseguí instalar el driver para el modo CDC del USB. Ya he conseguido esstablecer conexion y desconectar, y voy a ponerme en breve con el intendo de pasar datos del PIC al PC, que era mi intensión

Muchas gracias a todos, y espero que sirva de ayuda al resto de usuarios que tengan problemas con esta comunicacion

Un saludo


----------



## aldoperex (Sep 1, 2007)

hola que tal , me encuentro tambien desarrollando inicios con un pic 18f4550 usb,   que microcontrolador estás usando? ,que capacitor tenias  y cual agregaste , y en que pines de tu pic?
has empezado a desarrollar el programa que va en la pc ? en que lo estas haciendo , tienes el codigo para postear ?,,espero podamos colaborarnos,mi mail: *[URL="https://www.forosdeelectronica.com/politicas.htm#2.3"]políticas@delforo.com[/URL]*, disculpa tanta pregunta pero soy inquieto y la curiosidad por desarrollar ésto más rápido me quema...GRACIAS POR TUS RESPUESTAS


----------



## dragonspirit (Sep 21, 2007)

Uso también un 18f4550. ahora mismo no tengo mi dispositivo a mano, pero pronto lo podré mirar. En cuanto pueda le echo un vistazo  y ya te digo el valor de los condensadores. El programa para PC lo estoy haciendo con Visual Basic, pero sólo he podido probar que conecte y desconecte, pero no ha pasar datos todavia. 

Ya comentaré mis progresos.

Suerte aldoperex


----------



## dragonspirit (Sep 21, 2007)

Acabo de encontrar unos apuntes que tenia sobre el trabaja que estoy realizando. 
El condensador que tengo puesto ahora es de 100nF. El modo de funcionamiento que utilizo es CDC, creo recordar. Conseguí instalar el driver CDC, y como ya he dicho, sólo he probado a conectar.


----------



## aprkvc (Mar 28, 2008)

HOla saludos a todos!.. bueno soy nuevo en esto asi que y como muchos tengo muchas dudas, y espero que nos podamos ayudar,,, bueno,,, lo que necesito realizar para un proyecto final es una conexion PIC-PClocal-internet- PCremota. con una interfaz (o programa) en java que se encontrara alojada en la PClocal y se comunicara por USB al PIC....a su vez esta interfaz se podra acceder a ella por internet desde una PC remota. 
La comunicacion PIC-PC como me ha comentado dragonspirit hay como cuatro maneras de poder realizarlo---he analizado dos de ellas la Generica(usbgen.c y usbgen.h) y la CDC, y he conseguido poder comunicarme con el PIC con programas en VB6....información proveniente de otras paginas.... y bueno,, todavia no tengo bien entendido de como puedo enviar y recibir cadenas de mas de 64 bytes porque no se como modificar lo de los end points,...,Alguein sabe como?..si sera que tengo que modificar algo ahi?. y otra pregunta es sobre  el programa en java para comunicarme rs232,, o alguien ha probado esta comunicacion con el PIC utilizando CDC.. es decir JAVA-PIC-por medio de USB con CDC--- espero puedan ayudarme.. muchas gracias


----------



## ZOH (Abr 2, 2008)

Saludos, monte el proyecto de PicUSB de la página de hobbypic pero tengo el mismo problema que dragonspirit con el driver, he provado con varios condensadores y nada, será que alguien me puede dar otra pista?


----------



## louis3x0 (Oct 3, 2008)

a mi tambien me sale error de codigo 10 al instalar el driver, ya me la esta pelando este PICUSB, asi que me voy desde abajo voy a analizar los codigos en C18 que da microchip y con la PID y VIP originales de los ejemplos y los driver originales, me imagino que tendre que modificar los ejemplos para que no hagan nada ya que no tengo el kit para el que bienen pero supongo que sera un paseo, en todo caso seguimos hablando.


----------



## Moyano Jonathan (Nov 16, 2008)

http://picmania.garcia-cuervo.com/ yo hice los ejemplos de usb de la pagina y me funcionaron con el pic18f2550 el condensador que use de vusb fue de 470nf


----------



## jenn_t (Feb 17, 2009)

normalmente ese error se debe a que no cambian el valor del pll y utilizan otros cristales distintos a los que el autor del codigo utiliza, entonces no se prodrucen los 4Mhz necesarios a la entrada del pll, y a consecuencia de eso no se produciran los 48Mhz necesarios, o que no ponen el condensador para el usb de 470n.
 la pagina que dice  jonathan explican detalladamente esto


----------



## Moyano Jonathan (Feb 17, 2009)

Ahora si tienen problemas con los driver's utilizen la clase HID, que no los necesita. Ahora si quieren en mi apartado del puerto USB muestro algunos ejemplos sencillos pero funcionales de como realizar la comunicación usando para programar C de CCS  VB 2005 para la PC


----------



## waldillo (Feb 17, 2009)

Para la comunicación usb pic no es necesario escribir un driver. Eso seria en el caso de que desarrolles un proyecto USB sin una clase USB definida y totalmente adaptada al proyecto. En la mayoria de los casos esto es innecesario debido a que el sistema operativo los lleva, no recuerdo los nombres de los drivers que se encuentran en la carpete system32 en el caso de windows. En el caso de la clase CDC es usbser.sys, y creo que el de los pen-drives es la clase mass strorage usbstor.sys o algo asi recuerdo, las impresoras usb tambien tienen etc.


----------



## Moyano Jonathan (Feb 17, 2009)

Claro el tema es el driver para el pic para que la PC lo reconosca como por ejemplo un pendrive. En las librerías de C de CCS aparecen los diferentes descriptores USB para los dispositivos más descocidos. Ahora el tema es como establecer la comunicación con la PC y poder interactuar con ella.


----------



## waldillo (Feb 18, 2009)

Yo que vosostros me decantaria por el firmware escrito en c18 que brinda microchip.Practicamente todos los descriptores están escritos ya.Me puedes pasar un link con el codigo en ccs?


----------



## vanesot (Mar 14, 2009)

como modificar un pic con la pc
mi consulta es la siguiente
tengo una maquina que fue creada con un pic e hice el circuito.
mi maquina dobla alambre a 45 grados.
ellosloh ace con un alambre de un espesor especifico(osea si utilizo otro espesor dobla con otro angulo)
mi objetivo es conectar el pic a la pc para poder predeterminar antes q doble el alambre cuantos grados quiero que lo haga.
ademas q ingresando el espesor de ese alambre lo haga a 45 sin importar el mismo.
ingresar esos datos antes de realizar el proceso.
mi pregunta es
que puedo hacer para lograr esto.en el caso de q sea posible...osea puedo manejar mediante la pc el pic?
agradezco mucho una solucion
saludos
vanesa


----------



## Moyano Jonathan (Mar 14, 2009)

Por supuesto que lo podés lograr , tenés que crear una interfaze hombre máquina en algún lenguaje de programació. Si no tenés mucha experiencia en lenguajes de programación te recomiendo que leas los manuales de programación que escribio meta (otro usuario del foro), que son muy orientativos y de ahi veas como encaras tu programa.


----------



## RALD (May 2, 2010)

saludos a todos los de este post, veo que tiene tiempo sin ser utilizado espero que alguno pueda ayudarme con este tema. 
veran estoy utilizando el USB del pic 18F2450 el PC reconoce el dispositivo como puerto comX sin problema pero cuando habro el hyperteminal no me envia los datos del ADC que configure en el pic tambien cuando trato de enviar los datos al PIC no pasa nada el programa es relativamente sencillo solo envio datos del ADC al puerto USB y esta configurado como CDC... alguien tiene una idea de esto? gracias por la ayuda...


----------



## nietzche (Abr 13, 2011)

mi duda es una que tengo y segun Moyano Jonathan dice que las velocidades del PIC reales son de apenas 64 Kbps, un UART bien equipado alcanza mas velocidad que eso!!!!!!, para que seguir con USB????, se puede sacar la velocidad aprox. de 12 Mbps, porque se requieren aplicaciones que necesite analizar audio o señales muy rapidas, sino para pasarme del bando de atmel.


----------



## RALD (Abr 14, 2011)

saludos nietzche

la velocidad real del USB en version 2.0 es de 48Mbps en su maxima exprecion para mas informacion mira este link: 

http://es.wikipedia.org/wiki/Universal_Serial_Bus

los PICs USB de microchip alcanzan esa velocidad y la capacidad es de 5 dispositivos para administracion, el problema es que dependiendo de que configuracion se utilize consume mas memoria del PIC lo que produce un error. 

el pic USB 16f2450 que es el que yo poseo trae un error de programacion para la configuracion CDC en la libreria de PIC C por si las dudas 

espero que te sirva la info


----------



## edgarjhontrejo (Ene 31, 2012)

saludos colegas electronicos
..bueno yo he podido hacer un proyecto que comunicacion pic - pc por puerto serial....(rs232)
....transmision de datos...
....el harware lo encuentran el las paginas. .de inter..
bueno ..eso no biene al caso
...........
..............................................................
ahora yo planteo el siguiente diagrama...
------------------------------------------------------------------------------------
usando un cable de celular marcha sony ericson modelo T290 que es baratisimo.
..identifiquen +v   -v  ...tx   rx       en los cables. y esos se conectan al pic...(el mismo cable ya tiene su chip de conversionTTL usb..)
**usaremos los programas ya hechos con la transmision pic pc puerto serial (rs232)...
usando el siguiente diagrama de coneccion y listo...

DIAGRAMA:


PIC------CABLE---------PC



cualquier consulta me la hacen....
si tienes preguntas...ese es mi idea...


----------



## AbeRyu (Abr 22, 2013)

Hola, estoy realizando el trabajo final de la carrera de ingeniería electrónica y quería pedir algunos consejos. Resulta que estoy diseñando un DataLogger y quería saber si me conviene utilizar un micro que ya venga con módulo USB para la comunicación con la PC (para poder transferir los datos) o utilizar algún otro micro y desarrollar el protocolo utilizando algún otro módulo de comunicación serie sincrónica. Lo que me gustaría evitar en lo posible es usar PIC. Ustedes que me recomiendan? Conocen algún micro de 16 o 32 bits que no sea PIC y que incluya un modulo USB para no implementar el protocolo por software? 
Desde ya muchas gracias!!


----------



## vistroni (Abr 22, 2013)

diseño con USB = uso de software

a menos que quieras un arduino, pero aún así necesitas usar software.


----------



## AbeRyu (Abr 23, 2013)

hola vistroni gracias por responder, y que modulo se suele usar? yo creo que SPI pero no estoy seguro.


----------



## vistroni (Abr 23, 2013)

de nada, pero no sé, me faltan argumentos para orientarte en esto.


----------



## Sergi (Oct 1, 2013)

Tengo un dilema debido a que soy un novato en el tema, y me gustaria alguna recomendación.

Mi PIC controla 2 servos. Y entonces de momento lo unico que quiero es que me salga en LabVIEW el porcentaje de PWM de cada uno, que son 2 variables int16. Mas adelante me gustaria poder por ejemplo poder cambiarlo desde el PC, pero eso en este proyecto no tiene sentido, asi que la lectura me es suficiente.

Utilizar modo HID o modo CDC? He leído sobre que ofrece cada una, a mi modo de ver eligira HID por el tema de que no necesita drivers, pero me gustaria la opinión de alguien con más experiencia.


----------

