Control de dispositivos a través del módulo USB del PIC18F45/2550

gracias albermillan69 gracias por él link de la página, funciona al 100. sobre el programa de ejemplo que viene ahí en esa pagina: http://picmania.garcia-cuervo.net/us...ctransfers.php yo tenía un crystal de 12mhz con este no me funciona, y cambié a uno de 20Mhz con sus respectivos capacitores de 15pf. y FUNCIONA. voy a checarlo a que se debe. espero sirva esta experiencia.

Verifica el PLL!!!

Si mal no recuerdo
PLL1 con cristal de 4MHz
PLL5 con cristal de 20MHz

y PLL3 con cristal de 12MHz

Recuerda q en el usb siempre debe haber 4MHz (para q trabaje bien) y los PLL son divisores

Y respecto al problema de FOSO creo q esta es la respuesta!! MSComm1.Output = Chr(Valor) para enviar desde el pc!!! OJO en VB6 y valor 0-255
 
Última edición:
Hola, bueno gracias por contestar. Lo solucioné sacando el printf y queda de esta forma:

usb_cdc_putc( valor ) ; // donde valor es un int

para mandar bytes del pic a la PC.
Para el software en C# tuve que buscar una funcion para convertir byte a int. Ahora ya puedo mandar buena data por usb y recibirla :).

Saludos.
 
Hola, bueno gracias por contestar. Lo solucioné sacando el printf y queda de esta forma:

usb_cdc_putc( valor ) ; // donde valor es un int

para mandar bytes del pic a la PC.
Para el software en C# tuve que buscar una funcion para convertir byte a int. Ahora ya puedo mandar buena data por usb y recibirla :).

Saludos.

ahhhh ok!!! no sabia q tenias problemas en el envio desde el pic! sino te lo solucionaba primero!! jejejje

Y bueno!! q bueno q ya solucionaste todo!!! yo estoy gateando todavia con el VB6 pero poco a poco voy caminando para luego correr!! jejejeje
 
Moyano una consulta, en tu ejemplo ejercicio_n7_731.rar del 26-enero del 2009 lo grabe en mi pic18f2500 con el ccs version 4.104 en la mcapeta de firmware coloque tus usb_desc_cdc.c y usb_cdc y lo compile y grabe con wl winpic800 con el grabador JDM que encontre en la web. Cuando coloco y le direcciono para que busque el driver que esta en tu carpeta que colocas ahi me sale despues un mensaje "de que no puede instaalr el hardware por que no encontro el software necesario". Eh intentado mis propios programas usando el enumerador de PalitroqueZ que tal vez conoscas...pero en fin me sale siempre lo mismo ..quisiera poder poder probar el com virtual en la pc..es windows xp servipack3. Tengo que mencionar tambien que el administrador de dispositivos aparece SERIAL DEMO, de tu programa. Como que lo encuentra pero aun asi sale ese mensaje de que no se pudo instalar. Tal vez me puedas orientar si estoy haciendo algo mal.

Gracias.

perdon es el pic18f2550..saludos a todos.. tal vez alguien me pueda orientar al respecto..saludos

El cristal que uso es de 20MHz, y por el momento no implemente el esquema que colocas ahi :potensiometro,leds,etc...por que por el momento solo quiero que reconosca el pic y ya hare despeus prender puerto,etc..
 
Última edición:
Gracias Moyano por responder; estare esperando novedades..este tema me tiene cabezon...ya probe con la api del usb y sale todo Ok, pero al probar este tema de el com virtual tengo estos inconvenientes.

Saludos
 
Hola @franzrilke como estás !
Mirá anoche estuve probando las aplicaciones que había subido antes en mi entrenador USB y no tuve errores , todos los programas de emulación CDC corren perfectamente en Windows XP asi que si usas otro sistema operativo puede que te de fallas.
Otra cosa los drivers también lo podés bajar de microchip bajando la Microchip Solutions en donde viene la librería actualizada....
Hace lo siguiente :
- Conecta el PIC a la PC
- Espera que te lo reconozca.
- Anda a administrador de dispositivo - sistema
- Fijate en los puertos COM y mira si te lo detecta
- Publica una inmagen de los dispositivos conectados y del error que te presenta haber si podemos detectar de que se trata por que a mi me funciona de 10
Un saludo !
 
Correcto Moyano lo estare haciendo mas tarde o que dices..pero antes quiero mencionar algo. Volvi a simular mis programas con la Api de USB de microchip; es decir no usando el com virtual. Lo hice por el procedimiento con Proteus ya que permite tambien sin estar regrabando el pic simular todo el proceso y te pide el driver. Bueno lo que paso es que me pidio mi driver antiguo de mi programa pruebba..pero automaticamente lo busco y sencillamente lo encontro; no hice el direccionamiento manual de buscar el driver en la carpeta que pongo por defectos mis drivers simplemente lo encontro. Pense que no habria rastro de nada por que imagine que desinstale todo driver; hecho por medio del programa "USB View". Me surgen preguntas , como que al usar el mismo "Vendor ID y el Product ID " en mis pruebas, y como veo no se desinstaa por completo los driver...existira conflicto ro eso? pero si fuera asi no saldria en dispostivos el iconque identifica al pic "USB Demo".Tomare imagenes de todo mi proceso con algoritmo y todo del pic para colgarlo y lo puedas ver...asi tambien puedan aprender los amigos de foro de los errores que pueda cometer.
 
albermillan69 dijo:
Foso: tu lograste hacer la conversion de l byte q vienes el pic hacia en pc?? Osea de byte a una cadena de caracteres!!!

suponte q llegua al pc (65(en hexa)), en char es A, pero necesito es q me aparecezca es una cadena de caracteres 65


Solucion: asc(valor)

ejemplo: 'A' -> asc(A) -> 65 (y)

Yo pregunto y me soluciono!!! :unsure:
 
Última edición:
Hola a todos , en esta ocación les dejo las bases para desarrollar proyectos con mcHID.dll en Visual Basic.net y Visual C# 2008. Ambas carpetas tienen lo básico para poder comenzar un programa de aplicación.
Los programas ya lo pueden probar usando los firmwares anteriores del PIC18F2550 así como sus esquemáticos.
En poco tiempo voy a estar terminando la migración de mis ejemplos anteriores a estos lenguajes asi como también voy a continuar con mi libro sobre USB.

Espero que les sirva. !(y)
 

Adjuntos

  • USB VB.net HID.rar
    209.4 KB · Visitas: 518
  • USB Visual C# HID.rar
    182.6 KB · Visitas: 432
Hola, tengo el problema que tuviste estoy intentando generar un PWM enviado con dato de la pc el problema es que el modulo ccp no funciona como veo por la fercuencia de 48MHZ que necesita para andar el usb dime como solucionaste ese problema
 
Hola a todos , en esta ocación les dejo las bases para desarrollar proyectos con mcHID.dll en Visual Basic.net y Visual C# 2008. Ambas carpetas tienen lo básico para poder comenzar un programa de aplicación.
Los programas ya lo pueden probar usando los firmwares anteriores del PIC18F2550 así como sus esquemáticos.
En poco tiempo voy a estar terminando la migración de mis ejemplos anteriores a estos lenguajes asi como también voy a continuar con mi libro sobre USB.

Espero que les sirva. !(y)

Genial! Gracias, es lo que estaba buscando, pronto comento resultados...
Consulta, cuál firmware en particular usas? El genérico de HID en CCS sirve?
Esto está pensado para utilizarse creando el .inf con EasyHid?
Te seque a preguntas... :)
Saludos.-
 
Última edición:
Hola Moyano ya encontre el error de este tema de los drivers. Esto es lo que entendi en todo el roblema que tuve y lo explico para los que estan en el mismo caso.

Bueno yo estoy trabajando en el windows7 de 32 bits. En mis pruebas que hacia usando el programa de "PalitroqueZ" que es paar enumerar y configurar pic-usb , todo era Ok al principio. Instalaba y desinstalaba..pero ahi habia el error por que al desinstalar por "administrador de dispositivos" como menciona el manual de "PalitroqueZ", no colocaba el "check" de "eliminar el software del controlador de este dispositivo". En lo que investigue en la red, sucede que si bien desinstala el driver..no o hace enteramente ya que es como que queda una copia en el sistema operativo, se agrega en lista de "almacen de controladores" asi es que ocurria un conflicto, por que en mis pruebas con CDC y las USB API utilizaba el mismo "Vendor ID y el Product ID " que en mi caso eran 04D8 y 000B; por eso ocurria un conflicto en los drivers.

Si cometieron el error de no poner ese check, por lo que no se desinstalo completamente, hay un procedimiento para elimarlo el cual esta en esta pagina. http://technet.microsoft.com/es-es/library/cc730875(WS.10).aspx ; por este metodo pude ver mis suuestos drivers deinstalados...ahora esta todo limpio y listo para practicar con e cdc.

Moyano en ese ejemplo que colocaste, del que te mencione, veo que el vendor id es (0x0925) y product id es (0x1231). Ya antes habia hecho una consulta en otro lugar sobre ese pnto me mencionaron que el V.I era por defecto 04D8 pr ser de Microchip y el P.I.D era uno de los 9 muesras que esta el mchpusb.inf original que viene en el de microchip. Pero en el ejemplo veo que colocaste dos valores que no creia posble. Me podrias decir si es que los V.I yP.I.D son ag especifico o podemos poner cualquier valor.

Saludos.
 
Hola chon como estás:
Genial! Gracias, es lo que estaba buscando, pronto comento resultados...
Consulta, cuál firmware en particular usas? El genérico de HID en CCS sirve?
Esto está pensado para utilizarse creando el .inf con EasyHid?
Te seque a preguntas... :)
Saludos.-
Exacto esto está pensado para usar con el fimware de CCS pero con mi librería para easyHID que a fin de cuentas es la librería de descriptores base de HID de CCS pero con descriptores, VID,PID,y valores de polling cambiandos entre otras cosas. La librería está en uso en mis primeros ejemplos de USB con HID asi que podés usar esa librería para tus proyectos.

Para mis pruebas preliminares yo usé el firmware del primer ejemplo de HID que postée.

Si alguien sabe de programación más avanzada podrían portar estos ejemplos básicos a VC++ para los que programan en este lenguaje puedan desarrollar sus ejemplos.

´Moyano en ese ejemplo que colocaste, del que te mencione, veo que el vendor id es (0x0925) y product id es (0x1231). Ya antes habia hecho una consulta en otro lugar sobre ese pnto me mencionaron que el V.I era por defecto 04D8 pr ser de Microchip y el P.I.D era uno de los 9 muesras que esta el mchpusb.inf original que viene en el de microchip. Pero en el ejemplo veo que colocaste dos valores que no creia posble. Me podrias decir si es que los V.I yP.I.D son ag especifico o podemos poner cualquier valor.

Tanto VID y PID son identificadores únicos que deben ser usados de acorde a las normas de los que los proveen. Para usos educacionales podés llegar a usar cualquier valor que se adapte siempre y cuando no entre en conflicto con los demás controladores.
Para desarrollar ejemplos lo mejor es usar el que provee microchip.
 
Ok,gracias Moyano,excelente.Una pregunta estoy viendo crear un aplicativo para el cdc; como es simplemente programar el puerto "com" es sencillo pero el problema es que cuando cambie de maquina para probar en una pc aparece como com3 y en otro com5. Hay alguna manera de conocer de antemano o elegir con que com aparecera...asi mi aplicativo sabria cual com es el que debe abrir y realizar su labor.

saludos
gracias.
 
Si te paso un aplicativo que hace eso justamente estudiá su código y fijate que podés usar:
Este proyecto es parte de la colección de actualizaciones de mis ejemplos a VB.net y VC# 2008.
Espero te sirva !(y)
 

Adjuntos

  • EJERCICIO Nº1 CDC.rar
    218.6 KB · Visitas: 382
Última edición:
Gracias moyano lo rpobare...por el momento tengo un problema en la transmision de mis datos....quiero ver si lo soluciono en todo caso lo colgare despues para ver si me dan un mano viendo en que fallo...saludos a todos..gracias
 
Atrás
Arriba