http://www.mediafire.com/file/a3d703gpy7ulwd3/v3.1-INF_Enumeration_uC_PIC-USB.zip
http://www.4shared.com/file/250702123/af0227ce/v31-INF_Enumeration_uC_PIC-USB.html
MD5: 3D4EC240D2E92B44E16CBAA5821B830E... Supongo que en este intento has hecho lo que te dije, usease, coger un icono de windows que ya tenga algún programa para ir sobre seguro... Suerte con ello!! ;)
Has probado a utilizar un icono por defecto, es decir, utilizar el driver 'sin modificar' de microchip y modificar posteriormente el registro??? en ese caso, se cambia también el icono??? Si respondes afirmativamente a las dos. El problema de la DLL se resuelve instalando el .inf 'sin modificar' y ejecutando un .reg que modifique la clave del registro correspondiente al icono 'por defecto' para poner un .ico propio.
saludos!
Hola Pedro,
Si, el panel de control accede al registro para 'tomar o saber donde tomar' el icono. La clave esa que modificas es creada por la DLL... o bueno, mejor dicho, mediante el .INF, el problema a priori es el mismo. Quizá una forma de solventarlo y de una vez por todas librarnos de la DLL sería incluir algo en el .inf ó crear un .reg que añada esa misma información al registro y sea tomado en cuenta por el panel de control.
Tengo una duda con el mchpusb.inf que usa el win para enumerar el nuevo dispositivo (llamese pic con módulo usb)
en la entrada Version siempre es el mismo GUID, independientemente del PID que se use
ClassGuid={4D36E97E-E325-11CE-BFC1-08002BE10318}
en cambio veo que el instalador que usa J1M (picusb.inf) es:
ClassGuid={4D36E911-E325-11CE-BFC1-08002BE10318}
¿existe algún patrón o fórmula para calcular el GUID a usar en estos drivers?, porque al fin y al cabo lo que se instala es mchpusb.sys que es el que usa el Win para acceder al usb
Este programa trabaja sobre la versión anterior v1.00.005 y ha sido probado bajo Win2K y WinXPLo has probado en la ultima version? Es la que tengo ahora. Espero no haya errores.
...CitarEste programa trabaja sobre la versión anterior v1.00.005 y ha sido probado bajo Win2K y WinXPLo has probado en la ultima version? Es la que tengo ahora. Espero no haya errores.
...
...
porcierto, en el .inf que se crea, en String Definitions... INSTDISK="Microchip Technology, Inc. Installation Disc". Este dato no es modificable, porque? que hace?
...
Forma parte de la sección [SourceDisksNames] o paquete de instalación por discos, cuando se usaban diskettes o si los archivos de instalación son tan grandes que hay que dividirlo en pedazos para grabarlo en los medios de almacenamiento (cd/dvd, etc)Si, gracias por la info. Pero en Automatizacion de Datos Enumeracion USB no es posible modificar este valor a menos que sea "a mano" verdad? Solo quiero aclararme eso :lol:
Buenas!!
Pedro, ya no está tu enlace...
Quería tu programa para ver si podia hacer los drivers para que windows me reconozca una cnc como impresora.
Las especificaciones están aqui (http://www.usb.org/developers/devclass_docs/usbprint11.pdf)
Y como no tengo ni idea de hacer divers....
Intente bajarme unos de una impresora y compiar la clase, subclase, ect y na...
Mira si ya tienes unos drivers instalado con una misma configuración, al instalar otro con la misma configuración, no se, no creo que sea buena idea. Las veces que lo he hecho, era borrando el driver anterior.
Con el deepfreeze activado podía instalar un nuevo driver (VID, PID distinto) en cada reinicio del ordenador.
Mi hipótesis: debería funcionar así, pero recuerda que si estas usando la misma rama y la misma clave para 2 configuraciones, podría haber un malentendido en el S.O. a la hora de asignar claves en el registro.
pd: Recuerda también que en el programa hay que elegir las dos formas del usb: BULK y CDC
...
Con el deepfreeze activado podía instalar un nuevo driver (VID, PID distinto) en cada reinicio del ordenador.
...
Estuve leyendo el foro y no copie el icono a system 32 yo creo por eso no lo instala.
...
... Lei el manual del programa y en ningun lugar dice eso, por lo que seria bueno que estuviera esa informacion en el manual. Solo es una recomendacion que espero no tomes a mal ya que solo es para mejorar el manual.
...
...Tambien queria preguntar como hacer para que no me instale automaticamente el driver cada vez que conecto un dispositivo ya que primero lo instale con el .inf que proporciona microchip, entonces lo desinstale desde el adminsitrador de dispositivos para probar con el .inf generado con el programa pero en cuanto conecto el micro instala el driver y pone el icono que trae por default el .inf de microchip.
...
;------------------------------------------------------------------------------
; Windows XP/Vista 64 Section
;------------------------------------------------------------------------------
[DriverInstall64]
CopyFiles=DriverCopyFiles64
;------------------------------------------------------------------------------
; Windows XP/Vista 64 Section
;------------------------------------------------------------------------------
[DriverInstall64]
CopyFiles=DriverCopyFiles64,icono_device ;;
; Installation file for Microchip's Custom USB Driver
; Copyright (C) 2007 by Microchip Technology, Inc.
; All rights reserved
[Version]
Signature=$Windows NT$
Class=CustomUSBDevices
ClassGuid={a503e2d4-a032-49dc-b684-c99085dbfe92} ;;
;ClassGuid={a503e2d3-a031-49dc-b684-c99085dbfe92}
Provider=%MFGNAME%
CatalogFile=%MFGFILENAME%.cat
DriverVer=01/21/2009,2.0.0.0
[Manufacturer]
%MFGNAME%=DeviceList,ntamd64
[DestinationDirs]
DefaultDestDir=12
icono_device=11 ; system32 ;;
[SourceDisksNames]
1=%INSTDISK%,,,
[ClassInstall32]
AddReg=ClassInstall_AddReg
[ClassInstall_AddReg]
HKR,,,,%DEVICEMANAGERCATEGORY%
;HKR,,Icon,,"-20" ;
HKR,,EnumPropPages32,,"perro7.ico,0" ;;
;------------------------------------------------------------------------------
; Windows 2000/XP/Vista 32 Section
;------------------------------------------------------------------------------
[DriverInstall]
CopyFiles=DriverCopyFiles,icono_device ;;
[DriverCopyFiles]
%MFGFILENAME%.sys,,,2
[icono_device] ;;
perro7.ico,,,2 ;;
[DriverInstall.Services]
AddService=MCHPUSB,2,DriverService
[DriverService]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%MFGFILENAME%.sys
;------------------------------------------------------------------------------
; Windows XP/Vista 64 Section
;------------------------------------------------------------------------------
[DriverInstall64]
CopyFiles=DriverCopyFiles64,icono_device ;;
[DriverCopyFiles64]
%MFGFILENAME%64.sys,,,2
;[icono_device] ;;
;perro7.ico,,,2 ;;
[DriverInstall64.Services]
AddService=MCHPUSB,2,DriverService64
[DriverService64]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\%MFGFILENAME%64.sys
;------------------------------------------------------------------------------
; Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your custom USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below line to use your VID and PID. Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
;------------------------------------------------------------------------------
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_04D8&PID_0008
[DeviceList.ntamd64]
%DESCRIPTION%=DriverInstall64, USB\VID_04D8&PID_0008
;[DeviceList]
;%DESCRIPTION%=DriverInstall, USB\VID_04D8&PID_000B, USB\VID_04D8&PID_000C, USB\VID_04D8&PID_01F0 USB\VID_04D8&PID_01F1, ;USB\VID_04D8&PID_01F2, USB\VID_04D8&PID_01F3, USB\VID_04D8&PID_01F4, USB\VID_04D8&PID_01F5, USB\VID_04D8&PID_01F6
;[DeviceList.ntamd64]
;%DESCRIPTION%=DriverInstall64, USB\VID_04D8&PID_000B, USB\VID_04D8&PID_000C, USB\VID_04D8&PID_01F0 USB\VID_04D8&PID_01F1, ;USB\VID_04D8&PID_01F2, USB\VID_04D8&PID_01F3, USB\VID_04D8&PID_01F4, USB\VID_04D8&PID_01F5, USB\VID_04D8&PID_01F6
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
;Modify these strings to customize your device
;------------------------------------------------------------------------------
[Strings]
DEVICEMANAGERCATEGORY="Custom USB Devices"
MFGFILENAME="mchpusb"
MFGNAME="Microchip Technology, Inc."
INSTDISK="Microchip Technology, Inc. Installation Disc"
DESCRIPTION="Microchip Custom USB Device"
;------------------------------------------------------------------------------
; Source Files
;------------------------------------------------------------------------------
;The source file name prefixes need to be the same name as the string MFGFILENAME
;above
;------------------------------------------------------------------------------
[SourceDisksFiles]
mchpusb.sys=1
mchpusb64.sys=1
perro7.ico=1 ;;
...y todo en vista 32 bits funciono correcto pero el problema fue el icono, no se muestra en el administrador asique podria decirse que falta "algo mas" para que, almenos el icono, con tu programa, aparesca en Vista. Es el unico problema, pero todo el funcionamiento y reconocimiento del driver y todo me funciona bien, el problema es el icono :(
...
...
PD: En esta version detu programa ya no sale el boton de OPCIONES AVANZADAS para cambiar el GUID y el icono verdad? porq? xP
Hola de nuevo
Pedro, tengo un problema. La primera vez que usé el pic18f2450 lo programé con un VID 04D8 y un PID 0011 y utilicé el ejemplo de J1M. Funcionó OK.
...
Pues yo creo que mejor creo un nuevo PID VID, ya le metí mano al registro, pero no a la parte que mencionas... pero mejor evito posibles daños a winxp y uso el pid nuevo :mrgreen:
...
...
Por cierto, quisiera reportarte un bug del programa Enumerador. Cuando se guarda por segunda vez el archivo .inf o el archivo .h hay ocasiones que el archivo nuevo no sobreescribe al viejito y se crea como mchpusb.inf.inf o como usb_desc_scope.h.h.
Ni cuenta me había dado que el driver con el que estaba haciendo las pruebas era el viejito, porque el nuevo tenía otro nombre :D
Bueno, gracias de nuevo por el programa Pedro. :)
...
Mientras que yo creo que te olvidaste de poner el copiado de icono, o sea yo lo tengo asi:
Código:
;------------------------------------------------------------------------------
; Windows XP/Vista 64 Section
;------------------------------------------------------------------------------
[DriverInstall64]
CopyFiles=DriverCopyFiles64,icono_device ;;
...
...
Cualquier otro problema que surja te aviso. 8)
...
...el programa tambien manipula las librerias del ccs o solo el inf,
...
...
y este inf sirve para cualquier lenguaje o solo con visual, disculpa si estoy desubicado pero apenas me estoy desayunando en lo de USB 8)
Hola Amig@s
Por fin, terminé después de tantos meses dandole un ratico cada vez que podía jeje
Aquí está la versión 3 del programilla, entre otras cosas paso a continuación de las buenas nuevas:
- Lo escribí en Basic de AutoIT para aprender sobre ese entorno (además que no requiere de runtime alguno)
- Está basado en la última actualización hasta esta fecha del Microchip General Purpose USB Windows Driver. v1.1.0.0 June 23, 2008
Ojo me basé en la versión que dice la MCHPUSB Driver Release Notes.htm que viene en Microchip MCHPFSUSB v2.3 Installer.zip; es mas actual que la que viene en MCHPFSUSB_Setup_v1.3.exe
- Añadida multitud de mejoras entre ellas, validaciones en los campos de textos, se puede intercambiar la interfaz del idioma Español <-> Inglés
- Hay un manual donde explica de manera visual, los pasos para realizar una instalación exitosa de los drivers.
Solamente lo he probado en windows XP (32Bits), faltan personas que lo prueben en xp/vista 64Bits
- Cualquier novedad que le encuentren, fallo, bugs, horrores, etc les ruego que me notifiquen para corregirlo en la brevedad posible.
Bueno espero que les sirva de utilidad. ¡Ahh! y como siempre siguiendo el espiritu de software libre, ahí les pongo el código fuente para el que quiera hacer modificacion o conocer un poco el autoIT.
xxxxxxx
Hhola no se ven las ligas del proyecto
EL ARTÍCULO COMPLETO CON EL PROGRAMA ACTUALIZADO, LO PUEDES VER EN MI PÁGINA WEB
ver articulo completo (http://www.unpocodelectronica.netau.net/generador-de-inf-para-los-drivers-usb-de-microchip)
Descripción:
Automatización de datos Enumeración USB es un programita que pemite introducir datos como Nombre, VID, PID, Fabricante, Descripción para configurar el instalador que necesita el windows cuando conectamos a la primera vez
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=20047.0;attach=5889)
dichos datos se muestran al momento de instalación y cuando accedemos al administrador de dispositivos.
he aquí un video (http://www.4shared.com/file/35015377/5490ce8e/auto_enum_pic_usb.html) que explica en detalle (bajar este (http://download.techsmith.com/tscc/tscc.exe) codec para observarlo)
El adjunto con el Código Fuente para el quiera añadirle mejoras:
la actualización mas reciente la puedes bajar en este post:
http://www.todopic.com.ar/foros/index.php?topic=20047.msg189418#msg189418
...
el problema que tengo es que cuando conecto el usb al pc me responde diciendome que el hardware esta instalado y listo para usarse, pero al momento aparece otro mensaje que dice "dispositivo desconocido". ...
Estimado Sr. Master Pedro Palitroquez
PRESENTE
:D
Te platico que tu aplicación es 100% compatible con Windows 7, incluso el dichoso iconito funciona a la perfección en el administrador de dispositivos de Win7. Es el mismo archivo .inf que he usado con WinXP y no dio problemas.
Mejor ya no te pelees con WinVista, ya tienes solucionado el problema con el 7. :mrgreen:
Acá unas fotos de cómo se ejecuta...
http://www.migsantiago.com/index.php?option=com_content&view=article&id=9&Itemid=10
Gracias Pedro
yo probé este tutorial en mi laptop con windows7 de 64 bits y a la hora de conectar el pic no pasa nada, windows no reconoceningun dispositivo :S alguna idea?
#include <18F4550.h>
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
#use delay(clock=48000000)
#include <usb_cdc.h>
#include "usb_desc_cdc.h"
void main(){
usb_cdc_init();
usb_init();
while(!usb_cdc_connected()) {}
do{
usb_task();
if (usb_enumerated())
{
output_high(pin_e2);
}
}while (TRUE);
}Buenas, muy interesante el hilo..
pero tengo un problema, ya que si quiero compilar mi programa con el archivo usb_desc_cdc.h generado, no me compila....
y si lo hago con el usb_desc_cdc.h que viene en C:...../PICC/Drivers me anda en proteus pero no me funciona en el hardware :(
Esto es muy raro, le agradezco alguien me pueda ayudar
usb.h
18f4550.h
pic18_usb.h
usb_cdc.h
usb_cdc_desc.h
ctype.h
usb_hw_layer.h....
Tengo una duda, voy a conectar un segundo PIC18F4550 ¿Como puedo hacer q la PC los diferencie si tienen el mismo PID y VID?
...