desktop

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

hola kuropatula
estoy revisando a diestra y siniestra el asunto de los drivers en el PC, me podrias decir si tu pic en el PC aparece en el driver usbser.sys? ademas de cuales son los VID y PID que estas usando tambien esta configurando el cdc_usb.h y cdc_desc_usb.h a mano o con el programa enumer_picusb?
gracias....
 
Hola RALD, para peor estaba sin internet....
Reinstale los drivers y ahora no me funciona el envio desde el PIC a la PC, lo que creo que confirma que el problema si esta en los drivers.
Me fije lo de usbser.sys, no se que es pero aparece en el administrador de dispositivos del com virtual. Los PID y VID los configuro manualmente, no sabia de la existencia del programa enumer_picusb.
Mi situacion acutal es que seguramente tengo problemas en los drivers y no se que hacer.
En cdc_usb.h no aparece nada para cambiar el vid y pid, si en cdc_desc_usb.h
Los VID y PID del usb_desc_cdc.h son los mismos que en administrador de dispositivos y utilizo 04d8 y 000b

Alguna idea?
gracias por ocuparte...
 
hola Moyano me puedes hacer un favor estoy realizando una maquina de CNC para taladrar mis impresos y quería saber cual seria el mejor protocolo para la comunicación bidireccional con el microcontrolador quiero que sea usb pero no se que protocolo usar el programa lo estoy haciendo en c++.
saludos
 
Última edición por un moderador:
@FRYCK como estás que buen proyecto que estás encarando me interesa mucho ..depende del control que quieras realizar pero por experiencia propia...la mayoría de las veces con HID basta para cualquier aplicación...
El uso del modo bulk es para cuando hay grandes volumenes de datos en juego...como dataloggers....sistema de adquisición de señales......sistema de toma de datos ininterrumpidos...etc...
pero si lo que vas a controlar no precisa de muy alta velocidad en los datos...con HID está bien....
Ahora justamente también estoy viendo el desarrollo de la comunicación USB HID via VC# en cuanto me funcione propongo una aplicación y la posteo como ejemplo.

PD: A todo el que tenga dudas No me molesta tratar de ayudarlos , pero por favor pido lo siguiente como un método más rápido...
1 - Poner todas las dudas lo más detallada posible...( programa de la PC + programa del PIC + Esquema del circuito + foto del montaje si es posible )
2 - Por favor revisar su versión del compilador CCS y dar informe de ello...para ver si se trata de bugs del programa.
3 - Los que usen VB 6.0 por favor digan que versión de sistema usan en su PC ....algunos de los programas corren solamente en XP.
4 - Aclaro que he probado los drivers en Vista y XP y funcionan correctamente...por lo que los programas tienen que andar.
5 - Recomiendo ampliamente que todos los programadores usen VB.net 2008 express o VC# 2008 o 2010 express ya que son los que más compatibilidad de aplicaciones tiene en windows.
6 - Pregunten de forma ordenada e inteligente asi todos entendemos sus problemas y es más facil tratar de resolverlos.


Por último mi manual está momentáneamente parado debido a que estoy con muchas cosas para hacer y hacer un manual es algo complejo y que lleva tiempo. Quiero aclarar que el mismo va a ser lo más completo e informativo posible y que necesito hacer más investigaciones para terminarlo.

Desde ya un saludo grande !
Moyano Jonathan
 
Última edición:
Hola Moyano Jonathan gracias por su respuesta Estar comentando dudas mientras tanto iré viendo el protocolo hid en c++ pues ya había utilizado el cdc y el bulk después haré mis aportes sobre esto.
saludos
 
Buenas:

Menos malque pusiste las reglas paraque nos entendamos pronto, no somos adivinos. Sobre el manual, se tarda mucho, ya que mientas investigas, no haces el manual,hay que hacer pruebas, si sale bien ya es otro cantar, hacer más pruebas para hacer poco a poco un buen manual. Por cierto, parece muy duro este manual y muy detallado. Posiblemente el mejor manual. Con el tiempo me encargaré de pasarlo a otros lenguajes si podemos.

Ánimo a tod@s.
 
hola Moyano Jonathan primero quiero q me ayudes en este inconveniente es que quiero mandar datos electromiograficos "que le cual es convertido de analogo digital por el mismo pic"por el puerto serie del 18f2550.

Osea si tenes un programa q facilite mandar informacion por el puerto serie vale te agradezco."con el 18f2550"

gracias por tu atencion

saludes
 
Hola Meta!
Una consluta... el objetivo es tener 48MHz en el CPU y 48 tambien en el modulo USB?

Esto me confunde un poco... ,me podrias ayudar?
USBDIV: signfica que el clock del usb se tomarב del PLL/2 = 96Mhz/2 = 48Mhz.
PLL5: significa que el PLL prescaler dividirב en 5 la frecuencia del cristal. para HS = 20Mhz/5 = 4Mhz.
CPUDIV1: El PLL postscaler decide la divisiףn en 2 de la frecuencia de salida del PLL de 96MHZ, si queremos 48MHZ, lo dejamos como estב.
VREGEN: habilita el regulador de 3.3 volts que usa el mףdulo USB.

Se que esta cofiguracion es para el 2550 pero no se como adaptarla para el 13K...

1y3908.jpg


Muchas gracias!


Otra consulta... eso es lo que puede causar que pueda transmitir datos a la PC pero no recibir? Me parece que siempre recibo un 0 decimal. Puede ser que tenga problemas con la configuracion de los endpoints? Como se utilizan? (si no es muy complicado explicar)
 
Última edición:
Hola kuropatula estebe revisando y parece que este dispositivo no esta soportado para usb todavía por pic c ccs me lanza el Error 119 "C:\Archivos de programa\PICC\drivers\pic18_usb.h" Line 187(8,63): Unknown PIC device, USB not supported in this library. tendrías que probar con c18 para ver si ese es el verdadero problema saludos
 
Hola FRYCK, es raro porque a mi me complila, ademas puedo transmitir sin problemas al PC, el problema es que reciboun 0 siempre....
Es raro el error que te dio, yo tengo el root en Program Files en vez de archivos de p.... pero creo que eso no deberia hacer la diferencia. La version que uso es CCS V4.104
Saludos :)
 
Hola FRYCK, es raro porque a mi me complila, ademas puedo transmitir sin problemas al PC, el problema es que reciboun 0 siempre....
Es raro el error que te dio, yo tengo el root en Program Files en vez de archivos de p.... pero creo que eso no deberia hacer la diferencia. La version que uso es CCS V4.104
Saludos :)

ok yo tengo la 4.084 es por eso que no me corrió tu programa lo que si puedo es probarlo con mi microcontrolador y asegurarme que no es un problema de programación ¿que windows tiene instalado ?
saludos
 
El problema Kuropatula, no está en tus fuses sino en la programación de la aplicación que no está enviando los datos...la verdad como no he trabajado con esos micros no tengo idea de cuál puede ser el problema pero dejá que lo investigue un poco a ver que podemos sacar en claro..(y)



Lo que he visto investigando en foros de microchip:
1º - El PIC18F13K50 es que no puede implementar 100% el protocolo USB sino que lo hace de forma imcompleta y con algunos bugs por el momento.
2º - Hay personas que les ha funcionado el modo HID pero en C18 y no consigo ejemplos..pero lo que dicen entre líneas es que si rebajas el uso de endpoint al mínimo el programa puede funcionar bien ...ya que casi todos los errores se deben a su falta de RAM para contener las funciones de USB...
También te dejo un link para que veas como podrías optimizar tu programa para que funcione correctamente: http://www.todopic.com.ar/foros/index.php?topic=27379.0
 
Última edición:
Hola FRYCK, estoy usando WP SP3, creo que eso deberia ser compatible.
Moyano, estoy leyendo ahora lo que me pasaste, voy a ver como resulta.
Adjunto por si lo quieren mi proyecto.
Saludos y gracias
 

Adjuntos

  • USB to Serial.rar
    113.4 KB · Visitas: 239
Si, es raro. Voy a ver como lo resulevo, cuando lo haga lo posteo.
Sobre lo que me pasaste te ngo una duda, el post hable del pic18_usb.h, es muy raro que yo lo tengo como .c.
Otra cosa, que son los endpoints?
Saludos!
 
hola kuropatula,
ahora que leo tus post, recorde que en microchip hay un foro de pics y por ahi lei que esos pics tienen el problema de que en las librerias se debe cambiar el titulo _PIC_4550 por otro titulo ya que si no el pic no es reconocido por el compilador pero aun asi el pic es programado... me disculpas por que no copie el link, en el momento no vi tu post... pero quizas esto te pueda ayudar
 
Hola Moyano, de verdad te estoy muy agradecido ya que gracias a tus explicacones (particularmente en lo referente a HID) pude sacar adelante mi proyecto de fin de carrera, el cual consistió en una incubadora neonatal con control de temperatura ambiente, humedad relativa y lecturas de temperatura corporal, frecuencia cardíaca, frecuencia respiratoria, pulso y tensión arterial; todo ello monitoreado desde un PC con la finalidad de interfazar estos datos con una base de datos de historias médicas; el resultado fue sencillamente espectacular. Aún cuado estoy de acuerdo contigo en que la mayoría de las aplicaciones se pueden resolver mediante HID, actualmente estoy explorando CDC, ya que pienso que si me puedo comunicar con el dispositivo mediante un puerto serial virtual, es posible enviar y recibir data desde un servidor web alojado en el equipo anfitrión del dispositivo, ya que PHP es capaz de leer y escribir en puerto seriales, pero no he visto que pueda manejar los puertos USB. saludos
 
Última edición:
hola kuropatula la verdad e probado tu código y no e tenido ningún problema envía y recibe datos correctamente con el micro 18f4550 con el tuyo no simulo con mi Proteus así que no pude hacer mas pero si me sale un warning de poca RAM.
saludos
 
Atrás
Arriba