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.

Connect custom board through USB interface problem

Other Parts Discussed in Thread: CC2540

Hi,

I made 2 custom CC2540 boards following exactly the reference design from the CC2540 TI Keyfog. CC debugger detected my board and I could program it successfully.

With the requirement to test the RF block, I connected a board with PC through USB interface (running as master like USB dongle) & another board was programmed SimpleBLEPeripheral  project (running as slave like Keyfog). The USB connection (includes GND, D+, D-) I made is similar to USB dongle reference design.

After programming file CC2540_USBdongle_HostTestRelease_All.hex for the master board, I linked my board to the computer through USB port but nothing happened. The computer didn't recognize CC2540 USB interface so I couldn't use Btool to test.... 

Did I do anything wrong?

If anybody has the similar problem like me, please give me some solutions or suggests. I would appreciate any help from you. 

Thanks so much.

  • Hi,

    Try to flush your board with packet sniffer for cc2540 dongle FW, unplug debug interface and plug your board

    to USB port in your PC.

    Meanwhile you can post schematics of USB part on your board (the whole schema from USB connector to cc2540

    pins connection). I can take a look, may be something wrong there after all.

  • Thanks for your reply !

    I designed my board following TI Keyfob. However, the USB block was added from USB dongle reference and I intended to use Btool for testing. Here is my schematic : 

    http://www.mediafire.com/view/?606a5vj4x4j76jd

    Please give me some suggests.  

  • Hi,

    In your schematics, there should be a 1K pull-up resistor connected to D+ line

    between the USB connector and 33R resistor.

    Try the following, solder one side of 1K resistor to 33R resistor (on D+ side),

    connect the other side of 1K resistor to your 3/3.3V rail.

  • Hi Igor,

    I did exactly like you said but the computer still notified "USB not recognized". I also couldn't setup driver for my board too.

    Did I encounter another mistakes? 

    Thanks for your help. 

  • Hi,

    What about DVDD_USB pin, is it connected to a 3.3V voltage?

    If not, USB won't work.

  • Yes, of course I connected DVDD_USB to VCC.

    I thought that my mistakes could appear in firmware step (or programming code step). After having an USB interface, I programmed the file cc2540_ble1.1_USBdongle_HostTestRelease_Master.hex in TI BLE folder to the chip, before connecting my board to PC. 

    I expected my computer would automatically realize the board, but nothing happened. I measured the voltage in D+, D- and surprisingly they were all zero.

    I'm really confused now.

  • Several suggestions:

    • Connect your dongle with different USB cable, while applying 3.3V to your board.
    • check whether all parts are well soldered, sometimes QFN pins are cold soldered.
    • If you have another custom board, try to test it in the same conditions
  • If you are powering the board using a supply other than the VBUS line, you mayy need another interrupt I/O to notify the software when connected to USB so that the USB init / pull up switch can be run on each connection

  • debug your harware, use a oscilloscope to measure the crystal frequency, is it really 32MHz?

  • Igor Sherer said:

    Hi,

    In your schematics, there should be a 1K pull-up resistor connected to D+ line

    between the USB connector and 33R resistor.

    Try the following, solder one side of 1K resistor to 33R resistor (on D+ side),

    connect the other side of 1K resistor to your 3/3.3V rail.

    Further to this, the pull up should be 1K5 as per USB spec (1K will probably work fine). The pull up is used to signal the presence and readiness (and speed) of a connected USB device.

     If your board is powered from the USB port, the pull up should be I/O switched so that the CC2540 can signal the host that it is ready once the USB PLL has stabilized and has been initialized ready to accept data.

    If the pull up is taken high as soon as the CC2540 is powered up, the PC will send enumeration packets and will get no response. It will then show a USB error.

  • Hi Eng,

    Thanks for the Info.