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.

CC2538 USB CDC Driver Problem

Other Parts Discussed in Thread: CC2538, CC2511, CC2531, CC2540, CC2544, REMOTI, Z-STACK

Hello,

I am making my own CC2538 board based on the CC2538EM but with only the pins I need, and I want to be able to program my board via usb. I am using

this post https://e2e.ti.com/support/wireless_connectivity/f/158/t/340861#pi239031348=1 

downloaded the CC2538 firmware1_0_1_0, but when I go to the drivers folder the only file there is ccxxx_usb_cdc that opens as a text file with code inside. 

Here's the code

;
; Texas Instruments CCxxxx USB Serial Port Setup File
;
; Based on Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation
; Copyright (c) 2013 Texas Instruments Inc

[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%PROVIDER%
DriverVer=04/05/2013,1.2.0.0
CatalogFile=ccxxxx_usb_cdc.cat

[Manufacturer]
%MFGNAME%=DeviceList,NTx86,NTamd64


[DeviceList.NTx86]
%DESC_SRFEB% = DriverInstall, USB\VID_0451&PID_16B6
%DESC_CC2511% = DriverInstall, USB\VID_0451&PID_16A4
%DESC_CC1111% = DriverInstall, USB\VID_0451&PID_16A6
%DESC_CC2531% = DriverInstall, USB\VID_0451&PID_16A8
%DESC_CC2540% = DriverInstall, USB\VID_0451&PID_16AA
%DESC_CC2544% = DriverInstall, USB\VID_0451&PID_16C5
%DESC_CC2538% = DriverInstall, USB\VID_0451&PID_16C8
%DESC_CCXXXXBL% = DriverInstall, USB\VID_0451&PID_16C7
%DESC_REMOTINP% = DriverInstall, USB\VID_0451&PID_16B1

[DeviceList.NTamd64]
%DESC_SRFEB% = DriverInstall, USB\VID_0451&PID_16B6
%DESC_CC2511% = DriverInstall, USB\VID_0451&PID_16A4
%DESC_CC1111% = DriverInstall, USB\VID_0451&PID_16A6
%DESC_CC2531% = DriverInstall, USB\VID_0451&PID_16A8
%DESC_CC2540% = DriverInstall, USB\VID_0451&PID_16AA
%DESC_CC2544% = DriverInstall, USB\VID_0451&PID_16C5
%DESC_CC2538% = DriverInstall, USB\VID_0451&PID_16C8
%DESC_CCXXXXBL% = DriverInstall, USB\VID_0451&PID_16C7
%DESC_REMOTINP% = DriverInstall, USB\VID_0451&PID_16B1


;------------------------------------------------------------------------------
; Windows 32-bit sections
;------------------------------------------------------------------------------

[DriverInstall.NTx86]
include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=DriverRegistryKeys

[DriverInstall.NTx86.Services]
AddService=usbser, 0x00000002, DriverService


;------------------------------------------------------------------------------
; Windows 64-bit sections
;------------------------------------------------------------------------------

[DriverInstall.NTamd64]
include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=DriverRegistryKeys

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


;------------------------------------------------------------------------------
;
;------------------------------------------------------------------------------

[DriverRegistryKeys]
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

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


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

[Strings]
PROVIDER = "Texas Instruments"
MFGNAME = "Texas Instruments"
SERVICE = "TI USB CDC Driver"
DESC_SRFEB = "TI SmartRFEB USB CDC Serial Port"
DESC_CC1111 = "TI CC1111 USB CDC Serial Port"
DESC_CC2511 = "TI CC2511 USB CDC Serial Port"
DESC_CC2531 = "TI CC2531 USB CDC Serial Port"
DESC_CC2538 = "TI CC2538 USB CDC Serial Port"
DESC_CC2540 = "TI CC2540 USB CDC Serial Port"
DESC_CC2544 = "TI CC2544 USB CDC Serial Port"
DESC_CCXXXXBL = "TI CCxxxx Generic USB CDC Boot Loader"
DESC_REMOTINP = "RemoTI Network Processor"

How do I go about using this code/downloading the driver?

  • Hi,

    I am guessing you are using Windows, If the device is not installing the drivers automatically when you pug it in to your PC via USB then go to Device Manager in your PC and locate the CC2538 CDC device right click and then select Install Drivers. Then select the option to install the drivers from your computer and browse to the CC2538 firmware1_0_1_0 folder then click next and wait for the drivers to be installed. if the drivers are installed successfully your device should appear like this.

  • Hi Hector,

    Thanks, that worked great! But I just have a question about how I would implement this on my new board, because I don't want to have to hook it up to the SmartRF06 board I have, but don't I need to upload the USB cdc code onto the board before the usb will work so I would need someway to program it before I can use the USB? What is the bare minimum of connections to make with the SmartRF board to be able to program the new board through it, just the four JTAG pins?
  • Yes you will have to download firmware to your board using the SmartRF06 first.

    If your end goal is to flash the board through USB then you will need a USB to UART IC and connect that to the UART pins in the CC2538 and you will need to enable the ROM bootloader you can read more about it here www.ti.com/.../swra466a.pdf .

    If what you want to do is flash the board using the integrated USB in the CC2538 then you will have to write your own custom bootloader to support USB. To do this you can modify the bootloader example provided in Z-Stack Home 1.2.2 (http://www.ti.com/tool/z-stack ) after installing Z-Stack you can find the Bootloader example in (C:\Texas Instruments\Z-Stack Home 1.2.2\Projects\zstack\Utilities\BootLoad\CC2538)


    To be able to flash your board using the SmartRF06 board you will have to expose VDD, GND, JTAG_TMS, JTAG_TCK, JTAG_TDO, JTAG_TDI, and nReset.
    The easiest thing will be to add a 2X5 1.27mm pin header in your board just like "P410" in the smartRF06 board and then you connect your custom board to the "P410" header, in the SmartRF06, using a ribbon cable.
    Note that the header in your board will have to have the same pin assignments as the SmartRF06 board (See page 4 for pin assignments for "P410" www.ti.com/.../swrr143.pdf )