Autor Tema: Comunicacion USB con cdc en windows 7  (Leído 37835 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Slalen

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1079
    • Página web personal de Guillermo Herrero González
Re: Comunicacion USB con cdc en windows 7
« Respuesta #15 en: 19 de Enero de 2010, 13:42:17 »
Ok, gracias por la aclaración XD

Lo probaré cuando me llegue ordenador nuevo  :mrgreen:

Desconectado nachogb85

  • PIC10
  • *
  • Mensajes: 9
Re: Comunicacion USB con cdc en windows 7
« Respuesta #16 en: 19 de Enero de 2010, 13:59:52 »
Hola Jaime,

primero darte las gracias por lo que he aprendido con PICUSB.
Lo que quiero es aprender a conectar por comunicacion CDC un pic18F2550 con vista 32, pero el problema lo tengo al instalar los driver, como trabajo con vista32, uso el programa de Palitroquez, introduzco los archivos correspondientes: usb_desc_scope.h, usb_desc_cdc.h(generado con el programa), usb_cdc.h en la carpeta del ejemplo ex_usb_serial2, con sus "includes" correspondientes.
Y tambien introduzco los archivos mchpcdc.cat y mchpcdc.inf(generado con el programa).
Compilo con CCS version 4.093, que incluye el driver cdc_NTXPVista.inf en C:\Program Files\PICC\Drivers, y programo el PIC.
Pero al conectar el PIC al PC salta una instalacion directa del driver que instala uno que no corresponde, entonces actualizo el driver manualmente.

Pruebo con ambos drivers, pero nada, con el generado por el programita de Palitroquez me reponde directamente que en la carpeta determinada no existe ningun controlador compatible con dicho dispositivo.
Y con el cdc_NTXPVista.inf me deja llegar a instalarlo, pero al final me dice que windows encontro un problema al instalar el software de controlador de dispositivo al intentar instalar el "USB to RS232".

He leido en el foro de CCS, que existe conflicto entre cdc_NTXP.inf y cdc_NTXPVista.inf y que mueva este ultimo a otra ubicacion a donde apuntar durante la instalacion del driver, pero entonces tambien directamente me dice que que en la carpeta determinada no existe ningun controlador compatible con dicho dispositivo.

Puede que la primera vez que aparecio el instalador automatico no seleccione bien la instalacion y se haya instalado ese driver por defecto (un tal C:\Windows\System32\Drivers\klfltdev.sys  del antivirus Karpesky) ahora soy incapaza de desinstalardo ni con el USBdeview se como hacerlo, asi que no se por donde seguir.

Asi que estoy un poco perdido, y no se que mas cosas puedo probar, si tiene alguna idea me seria de gran ayuda.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Comunicacion USB con cdc en windows 7
« Respuesta #17 en: 19 de Enero de 2010, 15:19:01 »
Hola Nacho,

Te pego íntegro el contenido del .inf que utilizo para mis proyectos:
Código: [Seleccionar]
[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%PRVDR%
LayoutFile=layout.inf
DriverVer=01/01/2010,6.0.2600.1

[Manufacturer]
%MFGNAME%=VirComDevice,NT,NTamd64

[DestinationDirs]
DefaultDestDir = 12

[VirComDevice.NT]
%DESCRIPTION%=DriverInstall,USB\VID_0461&PID_0001
;%DESCRIPTION%=DriverInstall,USB\VID_04D8&PID_0001

[VirComDevice.NTamd64]
%DESCRIPTION%=DriverInstall,USB\VID_0461&PID_0001
;%DESCRIPTION%=DriverInstall,USB\VID_04D8&PID_0001

[DriverInstall.NT]
Include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=DriverInstall.NT.AddReg

[DriverInstall.NT.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.NT.Services]
AddService=usbser, 0x00000002, DriverServiceInst

[DriverServiceInst]
DisplayName=%SERVICE%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary= %12%\usbser.sys
LoadOrderGroup = Base

[Strings]
PRVDR       = "www.microingenia.com"
MFGNAME     = "Microingenia Electronics"
DESCRIPTION = "MiEUSBCDC"
SERVICE     = "MiEUSBCDC driver"

Posiblemente no te deja desinstalar pq se te ha quedado en el registro la clase (classguid) un poco tonta, búscala y eliminala a mano. Puedes probar también a simplemente actualizar tu driver con este, o a cambiar el último número de la clase del driver que te pongo para que sea distinta a la que tú utilizas. Fíjate en que el VID y el PID sean los que tú utilizas.

Un saludo.

Desconectado nachogb85

  • PIC10
  • *
  • Mensajes: 9
Re: Comunicacion USB con cdc en windows 7
« Respuesta #18 en: 19 de Enero de 2010, 19:50:37 »
Muchas gracias, probare mejor actualizar el driver porque tocar el registro me da demasiao miedo, jeje.

Y otra cosilla, cuando dices "...Fíjate en que el VID y el PID sean los que tú utilizas...."  te refieres a los que tengo definidos en usb_cdc.h, no?


un saludo

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Comunicacion USB con cdc en windows 7
« Respuesta #19 en: 19 de Enero de 2010, 19:54:31 »
Exacto! :)

Desconectado nachogb85

  • PIC10
  • *
  • Mensajes: 9
Re: Comunicacion USB con cdc en windows 7
« Respuesta #20 en: 19 de Enero de 2010, 21:48:59 »

Mil gracias otra vez Jaime, me ha costado, pero ya me va con un portatil que tengo con XP, el vista me ha gritado un par de veces, asi que mejor lo intento mañana que ya es tarde,

un saludo

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Comunicacion USB con cdc en windows 7
« Respuesta #21 en: 19 de Enero de 2010, 23:18:44 »
vaya, me perdí éste hilo :D

Citar
primero darte las gracias por lo que he aprendido con PICUSB.
Lo que quiero es aprender a conectar por comunicacion CDC un pic18F2550 con vista 32, pero el problema lo tengo al instalar los driver, como trabajo con vista32, uso el programa de Palitroquez, introduzco los archivos correspondientes: usb_desc_scope.h, usb_desc_cdc.h(generado con el programa), usb_cdc.h en la carpeta del ejemplo ex_usb_serial2, con sus "includes" correspondientes.
Y tambien introduzco los archivos mchpcdc.cat y mchpcdc.inf(generado con el programa).
Compilo con CCS version 4.093, que incluye el driver cdc_NTXPVista.inf en C:\Program Files\PICC\Drivers, y programo el PIC.
Pero al conectar el PIC al PC salta una instalacion directa del driver que instala uno que no corresponde, entonces actualizo el driver manualmente.

Pruebo con ambos drivers, pero nada, con el generado por el programita de Palitroquez me reponde directamente que en la carpeta determinada no existe ningun controlador compatible con dicho dispositivo.
Y con el cdc_NTXPVista.inf me deja llegar a instalarlo, pero al final me dice que windows encontro un problema al instalar el software de controlador de dispositivo al intentar instalar el "USB to RS232".

He leido en el foro de CCS, que existe conflicto entre cdc_NTXP.inf y cdc_NTXPVista.inf y que mueva este ultimo a otra ubicacion a donde apuntar durante la instalacion del driver, pero entonces tambien directamente me dice que que en la carpeta determinada no existe ningun controlador compatible con dicho dispositivo.

Puede que la primera vez que aparecio el instalador automatico no seleccione bien la instalacion y se haya instalado ese driver por defecto (un tal C:\Windows\System32\Drivers\klfltdev.sys  del antivirus Karpesky) ahora soy incapaza de desinstalardo ni con el USBdeview se como hacerlo, asi que no se por donde seguir.

un comentario del programita generador inf, yo me baso en los inf que proporciona microchip, no he probado con los inf del ccs.

nacho del resto de lo que comentas, puede ser debido a lo que dice Jaime, que al instalar un driver (asi sea una instalación incompleta) quedan rastros en el registro, por lo que al volver a intentar con otro driver, se "mezclan" y puede ocurrir un error de reconocimiento, el S.O. no sabe que inf leer, porque ya tiene uno copiado y registrado en sus sistema con las mismas características.

en mi caso, (que me ha sucedido) yo utilizo un programita llamado USBDeview que hace la remoción del inf de forma muy fácil (comprobado).



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Comunicacion USB con cdc en windows 7
« Respuesta #22 en: 20 de Enero de 2010, 02:40:24 »
Ahora mismo estoy teniendo problemas con CDC + Windows 7, usando CCS 4.069. Al enviar los caracteres al PIC éste no me los reconoce correctamente, he probado varios ejemplos, incluyendo el de lectura/escritura de la EEPROM, recibo correctamente lo que el PIC me envía, pero nunca consigo que el PIC me reconozca correctamente el caracter que estoy enviando, de hecho, al parecer siempre recibe lo mismo no importa lo que yo teclee. Por ahora estoy probando con este código:

Código: C
  1. // Ciclo principal
  2.    do {
  3.       // operaciones de la biblioteca USB
  4.       usb_task();
  5.    
  6.       // Si el dispositivo se encuentra enumerado por
  7.       // el sistema operativo
  8.       if ( usb_enumerated() ) {
  9.          // Si hay datos en el búfer
  10.          if ( usb_cdc_kbhit() ) {
  11.             // Lee el dato en el búfer
  12.             c = usb_cdc_getc();
  13.            
  14.             // Ejecuta acción de acuerdo
  15.             // al valor leído
  16.             switch( c ) {
  17.                // Apaga los LEDs
  18.                case '1':
  19.                   printf( usb_cdc_putc, "Apagando leds...\n" );
  20.                   activa_leds( 0, 0 );
  21.                   break;
  22.                // Enciende el led 0
  23.                case '2':
  24.                   printf( usb_cdc_putc, "Prendiendo LED_0...\n" );
  25.                   activa_leds( 1, 0 );
  26.                   break;
  27.                // Enciende el led 1
  28.                case '3':
  29.                   printf( usb_cdc_putc, "Prendiendo LED_1...\n" );
  30.                   activa_leds( 0, 1 );
  31.                   break;
  32.                // Código desconocido, envía el mensaje
  33.                // y parpadea los leds un par de ocasiones.
  34.                default:
  35.                   printf( usb_cdc_putc, "Codigo desconocido\n" );
  36.             }
  37.          }
  38.       }
  39.    } while (TRUE);
  40. }
No importa lo que teclee, siempre recibo el mensaje "Codigo desconocido". Como terminal, estoy usando PuTTY, MATLAB y minicom (linux), todos con los mismos resultados.

Cualquier comentario, bienvenido :).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Comunicacion USB con cdc en windows 7
« Respuesta #23 en: 20 de Enero de 2010, 04:29:22 »
Hice pruebas con la versión 4.104, tampoco funcionaba hasta que actualicé el archivo de descriptores con el que se incluye en esta versión (no recuerdo a qué versión corresponde el que estaba utilizando), ya funciona :).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Comunicacion USB con cdc en windows 7
« Respuesta #24 en: 20 de Enero de 2010, 18:23:59 »
Qué bien que ya funcionó Geo.

Como comentario extra yo usé la hyperterminal de winxp copiada en win7. Estaba probando unas conexiones con puertos virtuales seriales y con sockets y me daba muchos problemas, no comunicaba y se trababa.

Ahora veo porqué no agregaron la hyperterminal a win7  :(

Desconectado nachogb85

  • PIC10
  • *
  • Mensajes: 9
Re: Comunicacion USB con cdc en windows 7
« Respuesta #25 en: 21 de Enero de 2010, 13:44:32 »

Gracias Jaime y Palitroquez, parece que funciona en Vista32, yo de verdad que hay veces que pienso que no se que haria con el proyecto fin de carrera sin gente como vosotros,

Un saludo

Desconectado skylogic

  • PIC10
  • *
  • Mensajes: 2
Re: Comunicacion USB con cdc en windows 7
« Respuesta #26 en: 11 de Febrero de 2010, 01:37:09 »

 Bueno para comentarles que he estado realizando varias pruebas con el USB CDC del CCS PICC,  y efectivamente en la version  4.104 ya esta superado el error "10" que andaba molestando en windows vista, mas no he podido hechar a andar el CDC con el Windows 7 a 64 bits.. pues al instalar el .inf  (98XPVista) al final me arroja que no es un driver apropiado para Windows 7 x64. :(

  Alguien que me puede dar alguna pista de como superar este problema, alguien tiene un driver actualizado para x64 bits ? , al principio pense que era un problema de firma digital, o el de aislar al *.INF en una carpeta e inclusive revise los parametros del vendedor.

 Saludos, amigos.. :)

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Comunicacion USB con cdc en windows 7
« Respuesta #27 en: 11 de Febrero de 2010, 05:19:56 »

Desconectado skylogic

  • PIC10
  • *
  • Mensajes: 2
Re: Comunicacion USB con cdc en windows 7
« Respuesta #28 en: 11 de Febrero de 2010, 12:12:52 »
Gracias, ya encontre la solución:
(OLI)  modifications to USB CDC driver for 64 bit compatibility
http://www.ccsinfo.com/forum/viewtopic.php?t=41272

Esta especificada para una AMDx64, mas la probe con una CORE 2 DUO x64 Windows 7 y funciona muy bien,  ahora el *.inf quedo de la sgte forma:
"cdc_NTXPVista.inf"
Código: DOS
  1. ; Windows 2000, XP and Vista setup File for CCS CDC demo
  2. ; see examples ex_usb_serial.c and ex_usb_serial2.c
  3.  
  4. [Version]
  5. Signature="$Windows NT$"
  6. Class=Ports
  7. ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
  8. Provider=%CCS%
  9. LayoutFile=layout.inf
  10.  
  11. [Manufacturer]
  12. %ProviderName%=DeviceList, NTx86, NTamd64
  13.  
  14. [CCS]
  15. %CCS_CDC%=Reader, USB\VID_0461&PID_0033
  16.  
  17. [Reader_Install.NTx86]
  18. ;Windows2000
  19.  
  20. [DeviceList.NTamd64]
  21. %CCS_CDC%=Reader, USB\VID_0461&PID_0033
  22.  
  23.  
  24. [DestinationDirs]
  25. DefaultDestDir=12
  26. Reader.NT.Copy=12
  27.  
  28. [Reader.NT]
  29. Include=mdmcpq.inf
  30. CopyFiles=Reader.NT.Copy
  31. AddReg=Reader.NT.AddReg
  32.  
  33. [Reader.NT.Copy]
  34. usbser.sys
  35.  
  36. [Reader.NT.AddReg]
  37. HKR,,DevLoader,,*ntkern
  38. HKR,,NTMPDriver,,usbser.sys
  39. HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
  40.  
  41. [Reader.NT.Services]
  42. AddService = usbser, 0x00000002, Service_Inst
  43.  
  44. [Service_Inst]
  45. DisplayName = %Serial.SvcDesc%
  46. ServiceType = 1 ; SERVICE_KERNEL_DRIVER
  47. StartType = 3 ; SERVICE_DEMAND_START
  48. ErrorControl = 1 ; SERVICE_ERROR_NORMAL
  49. ServiceBinary = %12%\usbser.sys
  50. LoadOrderGroup = Base
  51.  
  52. [Strings]
  53. CCS = "Custom Computer Services, Inc."
  54. CCS_CDC = "USB to UART"
  55. CCS_CDCBOOT = "CCS CDC Bootloader"
  56. Serial.SvcDesc = "USB Serial emulation driver"

Desconectado rofa

  • PIC10
  • *
  • Mensajes: 1
Re: Comunicacion USB con cdc en windows 7
« Respuesta #29 en: 07 de Marzo de 2010, 17:28:05 »
Hola, me parece que ustedes me van a poder ayudar. Les comento yo tengo una interfase USB-DMX la cual ya tiene los drivers y firmeware y todo. y anda perfectamente en xp, pero no anda en vista ni en seven, yo quisiera saber si se pueden modificar los drivers para que funcione en 7, si alguien sabe algo le agradeceria mucho a ver si me puede ayudar ya que no se mucho de programacion. Muchas gracias.