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.

CC2650: CC2650 PROGRAMMING OVER UART

Part Number: CC2650
Other Parts Discussed in Thread: SYSBIOS, CC2640

Hi Team,

I am using CC2650 for my Zigbee application. To program the CC2650 it looks like we need to use TMS, TCK, RESET along with VCC and GND, Correct me if i am wrong.?

My Another Question is, Can we flash CC2650 over UART?

  • Hi YK

    I am getting below error on my Launch Pad of CC2650.
    -----------------------------------------------
    >Initiate access to target: COM28.
    >No response from device. Device may not be in bootloader mode. Reset device and try again.
    If problem persists, check connection and baud rate.
    >Connecting over serial bootloader failed: No response from device. Device may not be in bootloader mode. Reset device and try again.
    If problem persists, check connection and baud rate.
    >Failed to create device object.
    ---------------------------------------------

    I am doing following things on Launch Pad.
    1) DIO_11 connected with GND
    2) DIO_2 is connected with TX pin of FTDI chip which is connected with my PC
    3) DIO_3 is connected with RX pin of FTDI chip which is connected with my PC
    4) GND is common with Launch pad and our system along with FTDI Chip

    Let me know if i am missing here, still i am not able to to flash over UART.
  • Do you use Flash Programmer 2?

  • Yes, I am using Flash Programmer 2 and selecting CC2650 from Target.
  • If you use Virtual COM port emulated by XDS110 instead of FTDI to do serial boot loader Programming, does it work?
  • We are able to program through FTDI but when CC2650 is fully erased. When there is any image in CC2650 then we are not able to flash the code over serial port.
  • What application do you download from serial boot loader?
  • Did not get your Query, Please elaborate more.
  • You said you can program through FTDI serial to USB so what you program through it into your CC2650?
  • I am flashing any code by using Flash Programmer 2.
  • I suppose those examples don't enable serial boot loader in ccfg. You can check it first.
  • Hi,

    We are not enabling serial bootloader in appBle.cfg file.

    /* CC26xx Boot module */
    var Boot = xdc.useModule('ti.sysbios.family.arm.cc26xx.Boot');
    Boot.driverlibVersion = 2;
    Boot.customerConfig = false;
    //Boot.checkBackdoor = true;

  • Try to enable it.
  • Hi Chen,

    Thanks for your early response.

    By enabling this
    Boot.checkBackdoor = true;

    We are able to program this for first time only but unable to program this second time.
  • In reply to JXS:

    Try to edit the ccfg_appBLE.c which includes ccfg.c code. and enabled the first line of below code.

    // Bootloader failure analysis
    //**************************************************
    #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled
    //#define SET_CCFG_BL_CONFIG_BL_ENABLE 0xFF // Disabled
  • Hi Chen,


    Showing following errors in smart RF flash programmer on second time programming.

    >Initiate access to target: COM49.
    >No response from device. Device may not be in bootloader mode. Reset device and try again.
    If problem persists, check connection and baud rate.
    >Connecting over serial bootloader failed: No response from device. Device may not be in bootloader mode. Reset device and try again.
    If problem persists, check connection and baud rate.
    >Failed to create device object.
    >Initiate access to target: COM49.
    >Timed out waiting for ACK/NAK. No response from device.
    >Failed to read device ID during initial connect.
    >Connecting over serial bootloader failed: Failed to read device ID during initial connect.
    >Failed to create device object.

    Changes done by our side
    1. In cfg file we have done changes for Boot.customerConfig false to true in file cc2640.cfg(path : src/common/cc26xx/kernel/cc2640/config/cc2640.cfg)


    Boot.driverlibVersion = 2;
    Boot.customerConfig = true;


    2. In ccfg.c code. and enabled the first line of below code as suggested by you.

    // Bootloader failure analysis
    //**************************************************
    #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled
    //#define SET_CCFG_BL_CONFIG_BL_ENABLE 0xFF // Disabled


    We have tried this on multiple laptops it is showing error after adding
    Boot.checkBackdoor = true;

    Never able to build code after this change showing error in ccs:

    symbol "__ccfg" redefined: first defined in "<whole-program>"; redefined in "D:\Projects\CC2650_Zigbee\simple_peripheral_cc2650lp_app\FlashROM\configPkg\package\cfg\app_ble_pem3.oem3" symbol "__ccfg" redefined: first defined in "<whole-program>"; redefined in "D:\Projects\CC2650_Zigbee\simple_peripheral_cc2650lp_app\FlashROM\configPkg\package\cfg\app_ble_pem3.oem3" simple_peripheral_cc2650lp_app C/C++ Problem
    \
  • Hi


    UART boot loader mode is working fine now. I have one query, as per datasheet during bootloader SPI and UART both will listen for data.
    I have used SPI line (DIO_8 to DIO_11) for LCD as a GPIO line and only UART is terminated at connector to program over UART.
    So, My doubt is during Bootloader mode does LCD GPIO will create any issue for programming over UART?
  • It shouldn't.