This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5659: USB Descriptor Tool does not create usable COM port

Part Number: MSP430F5659

I am using CCS V6.2 and running the MSP USB descriptor tool, V5_00_11_22, to generate a single CDC virtual COM port for a custom board, MSPF5659, with a USB port. When I install the INF file on Windows 7 (64-bit), SP1 the driver fails to start with Error Code 10. I have attempted to load the driver onto two machines, and have had the same startup failure.  If I attempt to update the driver I am told that the driver is up to date.

The Device Manager shows the FET ports as MSP Application UART1 (COM6) and MSP Debug Interface (COM5). The generated CDC port is listed as Virtual COM Port(CDC)(COM11) and has a yellow exclamation since it is not starting. 

I would expect the generated driver to load in the registery as a USB Port since it is assigned COM11. However, when I look in HKLM\System\CurrentControlSet\Enum\USB I don't find the device. I have found that the device is being put into \HKLM\System\CurrentControlSet\Enum\Root\Ports\0000. The Device Manager shows the FET ports as enumerated USB devices within the registry.

If I attempt to use the "example" PID of 0x0300 for a single interface CDC and generate an INF file with this address, I receive an error message that the driver is incompatible for x64 based systems. I am attaching the generated INF file which clearly shows a 64-bit section, renamed to .txt.

; --COPYRIGHT--,BSD                                                           
; Copyright (c) 2012, Texas Instruments Incorporated                          
; All rights reserved.                                                        
;                                                                             
; Redistribution and use in source and binary forms, with or without          
; modification, are permitted provided that the following conditions          
; are met:                                                                    
;                                                                             
; *  Redistributions of source code must retain the above copyright           
;    notice, this list of conditions and the following disclaimer.            
;                                                                             
; *  Redistributions in binary form must reproduce the above copyright        
;    notice, this list of conditions and the following disclaimer in the      
;    documentation and/or other materials provided with the distribution.     
;                                                                             
; *  Neither the name of Texas Instruments Incorporated nor the names of      
;    its contributors may be used to endorse or promote products derived      
;    from this software without specific prior written permission.            
;                                                                             
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' 
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,       
; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR      
; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR            
; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,       
; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,         
; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,    
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR     
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,              
; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          
; --/COPYRIGHT--                                                              
; MSP430 Virtual COM Port Installation file for Win2000/XP/Vista/7
;
; Port drivers setup
;
; Supported operating systems:
;   Windows 32-bit and 64-bit
[Version]

Signature="$Windows NT$" 
; CatalogFile=MSP430_CDC.cat
; For information on CatalogFile, please see 
; http://msdn.microsoft.com/en-us/library/windows/hardware/ff547502(v=vs.85).aspx
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%TI%
DriverVer=09/06/2013, 1.02

[Manufacturer]
%TI%=DeviceList, NTamd64

[DestinationDirs]
FakeModemCopyFileSection=12
DefaultDestDir=12

[SourceDisksNames]

[SourceDisksFiles]

;You can modify next string and place your VID and PID
[DeviceList]
%DESCRIPTION0%=TIUSB, USB\Vid_2047&Pid_0300

[DeviceList.NTamd64]
%DESCRIPTION0%=TIUSB.NTamd64, USB\Vid_2047&Pid_0300

 ;------------------------------------------------------------------------------
;  Windows 32-bit Sections
;------------------------------------------------------------------------------

[TIUSB.nt]
include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=TIUSB.nt.AddReg 

[TIUSB.nt.AddReg]
HKR,,NTMPDriver,,*ntkern
HKR,,NTMPDriver,,usbser.sys 
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
HKR,,PortSubClass,1,01

[TIUSB.nt.Services]
AddService=usbser, 0x00000002, DriverService

[TIUSB.nt.HW]
include=mdmcpq.inf

[DriverService]
DisplayName=%DESCRIPTION%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
LoadOrderGroup=Base

;------------------------------------------------------------------------------
;  Windows 64-bit Sections
;------------------------------------------------------------------------------

[TIUSB.NTamd64]
include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=TIUSB.NTamd64.AddReg 

[TIUSB.NTamd64.AddReg]
HKR,,NTMPDriver,,*ntkern 
HKR,,NTMPDriver,,usbser.sys 
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
HKR,,PortSubClass,1,01

[TIUSB.NTamd64.Services]
AddService=usbser, 0x00000002, DriverService

[TIUSB.NTamd64.HW]
include=mdmcpq.inf

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
TI="Texas Instruments"
DESCRIPTION="MSP430-USB Test"
DESCRIPTION0="Virtual COM Port (CDC)"

Any help would be appreciated.

Thanks,
Sean

  • BTW, what is the value of XT2 and PLL divider?
  • XT2 has a 4 MHz crystal on the custom HW. The TI source code appears to find the freq and MClkFreq at 16896 KHz and PLL, fout, is 48 MHz.

  • Because, when I have this "could not start" problem, it was related to device firmware / hardware, not to OS. Wrong PLL setup, or something else. You can debug your code to see where it stops. Or why enumeration is failing. To check hardware, you can simply try to enter in USB BSL mode, and if device is enumerated as HID, than hardware is OK.

    Here is attached CDC inf file that is working on win7 just fine. It is for my custom device with Vid 2047 and Pid 099F.cdc.zip

  • Shouldn't I be able to run the TI descriptor tool and load the device driver generated by the tool correctly without attaching hardware? This is where I get the yellow exclamation and the driver fails to start.

    Once I attach the new HW I am getting a Universal Serial Bus Controllers of type Unknown with VID 0x0000 and PID 0x0000 in the Device Manager. I suspect if the device driver was functioning properly it might recognize the HW when it is attached. I am essentially debugging the TI USB code and finding that the code has ST_ENUM_IN_PROGRESS indefinitely.

    Your INF file is essentially the same as mine except for the PID address, and you also have a CAT file for your driver.
  • Windows will not ask you for driver (inf file) if hardware is not attached. For the first time, of course. This will happen at beginning of enumeration process. After driver is installed, enumeration will continue and finish. And new COM port (without any error signs) should appear on device manager.

    No, I don't have CAT file. This inf is working fine for me on Win7. You can check difference between my and your file (should be only in PID / VID). If files are the same than your problem is not related to inf file, but to firmware, as I mention before.

    Do mass erase of your device by SBW / JTAG. And plug it to PC. If everything is OK on board regarding hardware, USB BSL will start automatically and device should be enumerated as HID. Just to be 100% sure that hardware is not a problem.

  • After I create the INF file I am adding legacy hardware and attempting to install the device driver before connecting the new hardware. It appears that you are suggesting that I don't add the device driver until the plug-in asks for one.

    In the cdc.inf file you attached, your CatalogFile line is not commented out - CatalogFile=MSP430_CDC.cat. In my inf file this line is commented out.

    I erased memory as suggested and plugged in the HW. No HID enumeration. I am still seeing a Universal Serial Connector - Unknown Device.

    I am attaching a screenshot of the data being transmitted when the USB is plugged in. I have no idea what it should look like, does it seem reasonable?

  • Sean Stufflebeam said:

    I erased memory as suggested and plugged in the HW. No HID enumeration. I am still seeing a Universal Serial Connector - Unknown Device.

    Download, and install TI BSL GUI (MSP430_USB_Firmware_Upgrade_Example-1.3.1.1-Setup.exe) from here...

    http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430_USB_Developers_Package/latest/index_FDS.html

    After your device is mass erased with SBW / JTAG, disconnect it from FET, plug your board (USB) out from PC and plug in again (power off / on), or reset by RESET button.

    Device should be enumerated and recognized by GUI (found 1 device), and it should be possible to download prepared blink example.

    https://www.youtube.com/watch?v=VwEtJxWi41Y

    If device is not recognized by GUI, I am afraid that there is some USB hardware problem on board.

  • Used a better scope with USB capabilities and found that timing was properly configured. This issue turned out to be a hardware problem as DP and DM were switched several schematics before input to the MSP430.

**Attention** This is a public forum