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

Hola a todos... ps los sigo desde hace rato pero ps es mi primera participación en el foro. Ante todo muchísimas gracias por sus aportes son muy ilustrativos para quienes recién empezamos.
Bueno luego de la presentación... el codigo...XD

Mi inquietud es la siguiente, resulta q necesito hacer un aplicacion en vb 2010 para manejo del puerto usb. Pero el problema radica q en el momento de realizar el llamado de las funciones de la mpusbapi.dll en visual basic me arroja el siguiente error :confused:



A mi manera de ver creo q el error radica en q VB hace un llamado a la DLL pero para ello se emplea los puntos de entrada de la DLL, los cuales no estan hechos en C++, lenguaje en el q esta hecho la mpusbapi.dll de microchip y esto hace imposible acceder a ella.

Ahora mi inquietud es la siguiente sería posible migrar la DLL de C++ a Visual C++, y ps si alguien puede ayudarme ps se muy poco de visual C++.

Salu2 y gracias de antemano!
 
karma: en estos dias estuve con visual c# haiendo lo mismo! y no compilaba dandole a la flecha de run! sino tecleando shift+F6! me iba a la carpeta realse y ejecutaba el .exe! asi funcionaba!!

Espero te sirva...
 
Ya voy a empezar con USB y visualbasic... :LOL:
me apunto en el tema...


No comprendo muy bn a q haces referencia con registrar la dll. Es q hay cosas q todavia no manejo muy bn. XD

no he leido tu problema...
pero creo que si vas al dialogo de ejecutar y pones regsvr32 filename.dll se registra la libreria...
 
Bueno, me he apuntado en el tema, esta larguito, he visto tambien otras paginas, pero me he quedado en un problema casual.

Cuando conecto el micro a la USB el pc no me detecta el micro, tengo el primer ejemplo de este post, intente con el driver que propone, el archivo que contiene .cat i .inf, y sigue diciendo device unknow.
Tengo este otro controlador que practicamente es lo mismo y aun asi al intentarlo instalar como P&P no me lo detecta

he intentado con varios, incluso instale este bueno a decir verdad casi todos los driver que he encontrado tienen este mismo archivo y con un codigo similar, pero cuando coloco actualizar controlador y coloco cualquiera de estos archivos, no me lo detecta, no se si tiene algo que ver tambien el codigo que se coloque en el pic. Interesante lo que dice @fryck pero aun asi no puedo ni llegar a la parte de hercules.

Alguno no tendra otro, o decirme como es que se hace, es que no he podido hacer nada a causa de ello. He intentado muchos otros programas pero ninguno se detecta. Mi sistema operativo es el windows 7 no se si en algo cambia.
Posiblemente puede ser hardaware, pero a mi se me hace que no porque lo tengo en una pcb y es el mismo circuito que se propone al principio de este post.
 
Última edición:
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.

Saludos.
Bueno, lo que dice franzrilke es lo mas aproximado que pude encontrar a mi problema, pero aun asi no veo los drivers que pueden llegar a involucrar al PIC, el mio es un 18f4550, tengo el primer ejemplo de este foro el de moyano y no me reconoce ese driver.

Esta fue la lista que me arrojo al ejecutar el procedimiento de franzrille, conozco la mayoria de drivers, de pronto puede llegar a ser el oem4 o oem7 o om8, aunque lo dudo, aqui dejo una imagen a ver si se familiarizan con este caso jejeje.
Ver Imagen: http://s3.subirimagenes.com:81/otros/previo/thump_5272072pnputil.jpg
de antemano muchas gracias
 
Última edición:
Cuando conecto el micro a la USB el pc no me detecta el micro, tengo el primer ejemplo de este post, intente con el driver que propone, el archivo que contiene .cat i .inf, y sigue diciendo device unknow.

pero cuando coloco actualizar controlador y coloco cualquiera de estos archivos, no me lo detecta, no se si tiene algo que ver tambien el codigo que se coloque en el pic.

Bueno espero que esto sea de ayuda para aquellos que han tenido problemas conectando el micro al pc en modo USB con simulacion de COM (CDC). :confused:

thamaphyr, ps en vista de que a ti te sucedio lo mismo que me ocurrio, indicare la forma como yo solucione ese pequeño problemita y espero que esta info te sea de ayuda a ti y a todos los del foro que tengan ese problema.

Para comenzar efectivamente lo que dices de que al darle actualizar no realiza nada es cierto.
Asi q en el administrador de dispositivo te debe salir asi

http://img199.imageshack.us/img199/1135/sincontrolador.jpg

Cuando me solicita el controlador simplemente selecciono preguntarme mas tarde luego le das click derecho en la parte donde sale CCS RS232 DEmo

propiedades -> controlador -> actualizar controlador

http://img64.imageshack.us/img64/5096/actualizarcontrolador.jpg

ahi seleccionas Buscar software de controlador en el equipo y luego Elegir en una lista de controladores de dispositivo en el equipo click en usar disco y selecciona el archivo mchpcdc.inf y click en siguiente. Saldra una ventana de advertencia donde se indica que el controlador no se encuentra firmado digitalmente.

http://img827.imageshack.us/img827/6421/seguridade.jpg

y ahora si esperar que lo configure....:cabezon:

http://img291.imageshack.us/img291/4569/controladorcargado.jpg

y lo esperado...



Y listo ya esta nuestro dispositivo conectado correctamente al PC.!! :aplauso:

Como dato adicional ps hay cierta info del .inf que se puede modificar para personalizar nuestro dispositivo.

http://img443.imageshack.us/img443/5926/modificandoelinf.jpg

Ahora si me ire a dormir, espero poder haber contribuido en algo. ...Salu2... God Bless!!!
 
Muchas gracias karma por dedicarle tiempo a ese inconveniente. Pero mi caso sigue siendo diferente. Creo que el error lo tengo mas atras. Voy a explicarlo mas detalladamento como lo estoy haciendo. Lo hice de dos maneras. La primera que indique al principio que fue al actualizar el driver y la segunda tal y como lo explicaste tu:
en cuentro dos diferencias de lo que te salio y lo que me salio.

Cuando conecto el dispositivo, el pc me indica el controlador como un dispositivo desconocido "unknow device", y no me lo coloca en la seccion de otros dispositivos, sino en la seccion de "controladores de bus serie universal".

http://img163.imageshack.us/i/administradork.jpg/


No me aparece cuando dices que la ventana pregunta solicitando un controlador, bueno pero eso no creo que influya mucho.

Hago exactamente los pasos que tu indicaste a continuacion:

1) boton derecho al dispositivo desconocido > Propiedades > controlador

http://img20.imageshack.us/i/controladoractu.jpg/

tal y como esta en la imagen coloco actualizar controlador, despues me aparece otra ventana emergente donde me da dos opciones: buscar automaticamente el software o buscar software de controlador en el equipo. Hago click en el segundo (buscar software en el equipo), luego me aparecen dos opciones
http://img834.imageshack.us/i/dosopciones.jpg/

Aqui es donde hice las dos cosas, o primero por examinar buscando el archivo .inf, o por donde dice buscar controlador por dispositivo del equipo que es la que propones tu karma.

al entrar me aparece la ventana emergente donde ahi hay un boton que dice usar disco.

http://img8.imageshack.us/i/usardisco.jpg/

hago click en el y luego otra ventana emergente aparece de nuevo.

y en examinar ubico el driver donde se encuentran el archivo .inf

Voy a colocar digamos el ejemplo 1 de moyano. Ahi lo guarde en mi archivo de direccion
D:\LCD program\targeta1_USB\intento10
donde se encuentran las 4 carpetas del archivo comprimido.

Despues de quemar en el micro (utilice un 18f4550, cambie en el programa la libreria include 18f4550 en vez de 18f2550, pero utilizo el mismo oscilador de 20mhz), ahora busco en examninar de la imagen anterior en la direccion D:\LCD program\targeta1_USB\intento10\DRIVER_WINXP y señalo el archivo .inf que es el driver que moyano nos facilito para ese ejemplo

http://img412.imageshack.us/i/direccionamiento.jpg/

pongo abrir en la ventana emergente y luego aceptar en la otra ventana. y en teoria deberia de salir lo que te salio a ti karma. Pero a mi me sale es esto:

http://img189.imageshack.us/i/nosepudo.jpg/


La carpeta DRIVER_WINXP tiene estos archivos, esa no la toque para nada
http://img695.imageshack.us/i/drivero.jpg/


y pues la modificacion que hice de micro de cambio de libreria no creo que sea porque de lo contrario no estaria ni reconociendo el pc como un dispositivo sin controlador.

No se entonces, no se me ocurre mas, todos los demas foros no dicen mas, estoy seguro que debe ser una bobada pero ni idea, si alguien la capta, agradeceria mucho que me lo informaran, muchas gracias karma por responderme, lo que tu posteaste y lo q yo estoy mostrandote es casi el mismo procedimiento, pero aun sigo con el inconveniente, no tengo idea tampoco de porque te aparece como en otros dispositivos el driver desconocido al principio, y a mi me aparece en otro lado, quiza sea eso no se.

Un saludo y nuevamente gracias.
 
Última edición:
Al parecer el problema radica en vista y en 7... ASi q me di a la tarea de buscar en la red e incontre un foro de microchip donde chinzei hablan del inconveniente, de sus causas y de como dar una solución provicional mientras se da una solución definitiva.

http://www.microchip.com/forums/tm.aspx?m=488342

Adicional a esto hay q hacer una pequeña modificación al .INF

Código:
mchpcdc.inf (y derivados)
 
 [DestinationDirs]
FakeModemCopyFileSection=12            ; <------ adicionar esta 
 DefaultDestDir=12
 
 [DriverInstall.nt]
 include=mdmcpq.inf
 ;; CopyFiles = DriverCopyFiles.nt      ; <------ incorrecta: referencia al INF file
 CopyFiles = FakeModemCopyFileSection   ; <------ Correcta: referencia a una sección en mdmcpq.inf
 AddReg=DriverInstall.nt.AddReg
 
 ;; [DriverCopyFiles.nt]                ; <------ Borrar estas lineas
 ;; usbser.sys,,,0x20                   ; <------

Espero q te sirva la info y puedas solucionar tu problema. De todas formas revisa tu PID&VID tanto del descriptor como los del .INF sean iguales.

La otra es q subas los descriptores q estas usando, porq es muy raro q te lo detecte asi y no como COM.
 
Última edición:
bueno, intente hacer eso que me dijiste, tengo una pregunta?, por que tantos .inf hay que cambiarlos, imagino que hay q reformar en este caso el de la carpeta de DRIVER_WINXP del archivo comprimido, los reforme todos y cargue ese y nada, ahh obviamente colocando el .sys en drivers de system32.

Por otro lado tengo aqui un pc que trabaja en xp, y realizo el mismo procedimiento posteado, y me ocurre exactamente lo mismo. yo te pregunto algo karma. Como haces para que el dispositivo te salga en la seccion de "otros dispositivos" y no en "controladoras de bus serie universal", y como haces para que el te detecte directamente con el nombre de "CCS RS232 demo" y no como un "unknow device" como me aparece. Posiblemente ahi esta mi respuesta

un saludo
 
Última edición:
Hola que tal tengo los siguentes problemas al querer simular los ejemplos de las primeras paginas tanto el puerto virtual como HID en el primer caso me detecta el dispositivo e instalo el driver pero a la hora de ejecutar el programa para enviar algun dato me causo un error 8000 o 8002 y esto sucede cuando selecciono conectar escogo el puerto que aparece en administracion de dispositivos y sigue el error, en el segundo caso me pide driver pero he leido en el mismo foro que no debe pedir y estoy deseperado ocupo win xp alguien tuvo ese problema y cual es la solucion espero alguien me aclare el camino
 
Por otro lado tengo aqui un pc que trabaja en xp, y realizo el mismo procedimiento posteado, y me ocurre exactamente lo mismo. yo te pregunto algo karma. Como haces para que el dispositivo te salga en la seccion de "otros dispositivos" y no en "controladoras de bus serie universal", y como haces para que el te detecte directamente con el nombre de "CCS RS232 demo" y no como un "unknow device" como me aparece. Posiblemente ahi esta mi respuesta

un saludo

La verdad me parece muy curioso esto, asi q te propongo una cosa, porq no me pasas lo q estas haciendo osea, el codigo en ccs, los descriptores y la simulacion (si la hiciste), para q entre los dos analicemos el caso y ps tratar de encontrar la solución. O no se por otro medio como correo o messenger, tu diras y sino por aki por el foro! SAlu2
 
La verdad que a mi me tiene atónito el problema con Windows XP por que los códigos los probé mil veces antes de subirlos y no tienen ningún error. Ahora si se les puede llegar a presentar problemas (POR PARTE DE LA PC) en caso de usar Windows 7 o Linux ya que los correspondientes INF no están desarrollados para este SO ...pero si en vista funcionan tienen que funcionar en 7...de esto ultimo no estoy del todo seguro.

Por favor pido que antes de probar cualquier ejemplo revisen 100 veces el hardware que es la causa de la mayoría de los problemas.
 
El amigo moyano tiene razon.
Al comienzo, a mi tambiem me tomaron del pelo los ejemplos
pero despues de cacharrear con los drivers y el proteus; ma andaron bien...(y)
 
hola a todos vengo con noticias buenas tiene razon amigos en simulacion proteus no funciona solo con circuito fisico solo probe el segundo ejemplo con el com virtual y funciona en win xp y para los que tiene problema con win 7 al conectar sale que el dispositivo no funciona correctamente bueno en administracion de dispositivos aparece el icono del com virtual pero con un icono de advertencia le dan un click y se abre la ventanita hay tres pestañas en la de controlador buscan la opcion de actualizar controlador y luego buscar controlador en el equipo y buscan la carpeta donde esta el driver_xp le dan siguinte y se instala bueno ahora sigue la ejecucion del programa .exe bueno como en vista o en mismo xp cuando un programa es viejo siempres esta la opcion de compatibilada
y esta no es la exepcion solo con click derecho y en opcion "solucion de compatibilda " y la la ejecutan como xp y despues sigue el clasica pregunta de que si quiere ejecutar blah blah y damos ok o si saldra el error de que mscomm32 no valido en el siguiente link http://www.martin2k.co.uk/vb6/ocxs/mscomm32.zip se descarga la carpeta y ahi esta la dll y la descomprimen y copian el archivo en la c/ windows/ system y vuelve a ejecutar el programa en modo compatibilidad y listo tendran el segundo ejemplo de la paguina 2 en win 7

espero que les sirva
probare con los demas ejemplos y dare resultados
 
La verdad me parece muy curioso esto, asi q te propongo una cosa, porq no me pasas lo q estas haciendo osea, el codigo en ccs, los descriptores y la simulacion (si la hiciste), para q entre los dos analicemos el caso y ps tratar de encontrar la solución. O no se por otro medio como correo o messenger, tu diras y sino por aki por el foro! SAlu2

Tranquilo karma muchas gracias por tu ayuda, ya encontre el problema. Era de Hardware. En primera instancia era porque no habia buena conexion en el condensador de 47uf para el pin de VUSB y en otra era que tenia invertidas las conexiones de D+ y D-.
Me di cuenta fue montandolo en un protoboard con un 18f4550 PDIP, debi tener confusion cuando fui a conectarlo porque estoy trabajando con un 18f4550 pero con configuracion TQFP

Ya ahora si me esta funcionando, siento tanta molestia, pero bueno ahora si saben que es lo que sale en software cuando esta mal conectado el hardware (y tanto tiempo que me tomo para darme cuenta del error , asi es la vida de la electronica)

Un saludo y de ante brazo muchas gracias
 
Última edición:
buenas amigos,

estuve leyendo sus 62 paginas de post que llevan y guao, eh aprendido como no se imaginan, gran conversacion e ivnestigacion que han hecho los felicito grandemente, llegue aqui por recomendacion de lubeck, ya que estoy trabajando con mi tesis que es una tarjeta electronica multipuerto para la comunicacion de hardware externo con un computador personal, pero me eh dado cuenta de muchas cosas y eh visto que estaba mal encaminado, me podrian dar una mano, aun me queda harto tiempo y quiero hacer este proyecto.

si me podrian encaminar decirme por donde inicio estaria agradecido, mi meta es crear una tarjeta electronica que al conectarla por paralelo o usb y usando una interfaz grafica amigable pueda controlar un hardware externo.

espero que me puedan ayudar un millon y estare ya suscrito aprendiendo de sus ejemplo hasta que pueda ayudar en problemas que tengan debo aprender lo que ustedes aprendieron en años en poco tiempo je.

un saludo y nos leemos
 
Última edición:
Atrás
Arriba