cancel
Showing results for 
Search instead for 
Did you mean: 

Issues with composite VCP+MSC: VCP not working

rumlyen
Associate II
Posted on May 01, 2016 at 17:49

Hello,

I am stuck in implementing USB composite (VCP+MSC) using FS-Device_Lib_V4.0.0 (STM32L151). Individually both works but when I try composite VCP+MSC, MSC works well but PC can't communicate via VCP (although it can recognize as COM port).

I've edited .inf file and updated device descriptions. What else I am missing to config?

I request your suggestion how to fix this issue.

Thank you in advance.

NB: I'm using ENDP1 in+out for MSC, ENDP3 in+out for VCP, ENDP2 in for VCP interrupt. End point address combined as:

#define BTABLE_ADDRESS        (0x00)

#define ENDP0_RXADDR        (0x0040)

#define ENDP0_TXADDR        (0x0080)

/* EP1 MSC  */

#define ENDP1_TXADDR        (0x0150)

#define ENDP1_RXADDR        (0x0190)

/* EP2 VCP Int*/

#define ENDP2_TXADDR        (0x0100)

/* EP3  VCP*/

#define ENDP3_TXADDR        (0x00C0)

#define ENDP3_RXADDR        (0x0110)
2 REPLIES 2
rumlyen
Associate II
Posted on May 01, 2016 at 17:52

The original post was too long to process during our migration. Please click on the provided URL to read the original post. https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I6k0&d=%2Fa%2F0X0000000buN%2FwwkqVG180MUzuyHFf8iAMNYdTI.a45Af62SZo9aubug&asPdf=false
rumlyen
Associate II
Posted on May 01, 2016 at 17:57

To include VCP interfaces (interface 0 for MSC, 1 and 2 for VCP int), I've edited stmcdc.inf file of virtual com port driver like this:

[Version]

Signature=''$Windows NT$''

Class=Ports

ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}

Provider=%PRVDR%

CatalogFile=stmcdc.cat

DriverVer=04/25/2010,1.3.1

;[SourceDisksNames]

;1=%DriversDisk%,,,

;[SourceDisksFiles]

[Manufacturer]

%MFGNAME%=DeviceList,NT,NTamd64

;[DestinationDirs]

;DefaultDestDir = 12

; ========== VID PID ===========

[DeviceList.NT]

%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5741&MI_00

%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5741&MI_01

%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5741&MI_02

[DeviceList.NTamd64]

%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5741&MI_00

%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5741&MI_01

%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5741&MI_02

; ========== Class definition ===========

[ClassInstall32]

AddReg = ClassInstall_AddReg

[ClassInstall_AddReg]

HKR,,,,%ClassName%

HKR,,NoInstallClass,,1

HKR,,IconPath,%REG_MULTI_SZ%,''%systemroot%\system32\setupapi.dll,-20''

HKR,,LowerLogoVersion,,5.2

; =================== Installation ===================

[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 = ''STMicroelectronics''

MFGNAME = ''STMicroelectronics.''

DESCRIPTION = ''STMicroelectronics Virtual COM Port''

SERVICE = ''STM Virtual COM Port''

DriversDisk = ''STM Drivers Disk''

REG_MULTI_SZ = 0x00010000

ClassName=''Universal Serial Bus devices''