Hola Waldillo!!!
En tu esquemático, bueno en todos usas un oscilador de 48MHz alimentado. Porque usas de este tipo? Cuales son las Ventajas? Ya que comparado con los tradicionales es muy grande.
Otra consulta! Ya cuando la tarjeta ha sido reconocida por el SO e instalado el driver siempre quedan parpadeando uno a la vez los LED1 y 2? Con que objetivo lo hiciste así esto?
Y la consulta mas importante... Según tu memoria para lograr la comunicación del soft de control con el hard basta con identificar bien el VID&PID en archivo usbdsc.c y editar los ID al que corresponde el driver del soft control a utilizar. Esto lo hice con el soft de control USBCNC y el SO identifico el hard como el que usa el sof de control USBCNC. Todo bien hasta ahí. Pero! Hasta ahí, es decir, el SO lo reconoce pero realmente con el soft USBCNC no se comunica ya que intente capturar la comunicación y solo me capturaba algunas lineas y solo cuando iniciaba el soft de control, después perdía la comunicación. Con tu proyecto USBdemo board no tuve problemas para capturar la comunicación, todos las palabras L_ON, L_OFF, VERS y DATA los capturaba.
Driver usbcnc_cdc.inf del programa USBCNC:
[size=10pt]; cdcacmpo.inf
;
; Installation file (.inf) for the USB Serial device driver.
;
; Copyright © 2005-2009 EdingCNC
;
; This file supports:
; Windows XP
; Windows Server 2003
; Windows Vista
; Windows 7
[Version]
Signature="$Windows NT$"
Provider=%S_Provider%
ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}
Class=Ports
CatalogFile=usbcnc_cdc.cat
DriverVer=10/08/2009,1.83.0.0
;
; Driver information
;
[Manufacturer]
%S_Mfg%=_Devices
[_Devices]
; enter your VID (VVVV) and PID (PPPP) here
%S_DeviceDesc1%=Install,USB\VID_16C0&PID_0564 ;EL PROGRAMA USBCNC USA ESTOS ID EL CUAL PUSE EN EL ARCHIVO usbdsc.c!!!
; if a multi interface driver is installed enter also the interface number (II)
; %S_DeviceDesc1%=Install,USB\VID_VVVV&PID_PPPP&MI_II
; for more information have a look at the documentation
;
; General installation section
;
[Install.ntx86]
CopyFiles=_CopyFiles_sys
AddReg=Common_AddReg
[Install.ntx86.HW]
AddReg=_AddReg_Param
;
; Service Installation
;
[Install.ntx86.Services]
AddService = %S_ServiceName%, 0x00000002 , Install_Service_Inst, Install_EventLog_Inst
AddReg = _AddRegService
[Install_Service_Inst]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\%S_DriverName%.sys
[Install_EventLog_Inst]
AddReg = Install_EventLog_AddReg
[Install_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\%S_DriverName%.sys"
HKR,,TypesSupported,0x00010001,7
[_AddRegService]
HKR,,Parameters,,,
[_AddReg_Param]
; *********************************************************************
; *** the read buffer size grater than the FIFO size requires short ***
; *** packets from the device, see documentation for details! ***
; *********************************************************************
HKR,,ReadBufferSize, %REG_DWORD%, 1024
HKR,,WriteBufferSize, %REG_DWORD%, 1024
HKR,,UseLogicBuffer, %REG_DWORD%, 0
HKR,,ReadBufferCount, %REG_DWORD%, 1
HKR,,WriteBufferCount,%REG_DWORD%, 1
HKR,,SendLineCoding, %REG_DWORD%, 1
HKR,,SendLineState, %REG_DWORD%, 1
HKR,,SendBreak, %REG_DWORD%, 1
; 0 - CDCACM, 1 - Bulk Only, 2 - Bulk special, 3 - automatic
HKR,,OperationMode,%REG_DWORD%, 3
; set this to 0 to suppress the Clear Feature Endpoint Halt during Open and Wakeup
; this does not work on Windows 2000!
HKR,,ClearFeatureOnStart,%REG_DWORD%, 0
HKR,,VendorPipeReset,%REG_DWORD%, 0
; default serial line states reported in bulk only mode or
; if the device never updates the status values
; use a or'ed value of: CTS=0x10, DSR=0x20, RI=0x40, DCD=0x80
HKR,,DefaultLineState,%REG_DWORD%, 0x10
; the next line enables the private interface, comment it, if it is not required
; create a new GUID and use the new GUID instead of this
; use the new GUID as an argument to CPortInfo::EnumeratePorts();
HKR,,DriverUserInterfaceGuid,%REG_SZ%,"{0445522E-ABE5-4c52-8882-CA3272D2B3AE}"
HKR,,StaticDeviceObject,%REG_DWORD%,0
HKR,,ClearRtsDtrOnClose,%REG_DWORD%,0
; the default prefix for the device object
HKR,,DeviceObjectName,%REG_SZ%,"thcdcacm"
[Common_AddReg]
; is a serial port
HKR,,PortSubClass,1,01
; property page, system default
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
[DestinationDirs]
DefaultDestDir = 12
_CopyFiles_sys = 12
;
; Source file information
;
[SourceDisksNames.x86]
1 = %S_DiskName%,,,""
[SourceDisksFiles.x86]
usbcnc_cdc.sys = 1,,
[_CopyFiles_sys]
usbcnc_cdc.sys,,,0x00000004
[Strings]
;
; Non-Localizable Strings
;
REG_SZ = 0x00000000
REG_MULTI_SZ = 0x00010000
REG_EXPAND_SZ = 0x00020000
REG_BINARY = 0x00000001
REG_DWORD = 0x00010001
SERVICEROOT = "System\CurrentControlSet\Services"
;
; Localizable Strings
;
S_Provider="EdingCNC"
S_Mfg="EdingCNC"
S_DeviceDesc1="USBCNC COM Port"
S_DiskName="USB CDC/ACM Class Driver for Windows disk"
S_DriverName="usbcnc_cdc"
S_ServiceName="usbcnc_cdc"[/size]
Gracias por el apoyo Waldillo!
Saludos