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.

SIMPLELINK-CC2640R2-SDK: May be unable to re-enter bootloader mode which cause burn the ble5_simple_peripheral_cc2640r2lp_app.hex fail

Part Number: SIMPLELINK-CC2640R2-SDK
Other Parts Discussed in Thread: SEGGER

Hello, The first burn of ble5_simple_peripheral_cc2640r2lp_app.hex to the CC2640R2 board was successful, but the subsequent burns failed. I have tried some methods priovided in the TI websites(Forced Mass Erase, config the SET_CCFG_BL_CONFIG_BL_ENABLE is 0xC5 in ccfg.c, and so on), but the problem still exists. The log is show:

>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.

  • Hello Fangli,

    Based on your screenshot, it is evident that you are using a USB to UART bridge which can only access the device through the bootloader (i.e. no JTAG connection).  This will mean that you are not able to perform Forced Mass Erases and that the Bootloader configuration is fixed/determined from project used to build the the ble5_simple_peripheral_cc2640r2lp_app.hex image the first time the programming was successful.  These are the default bootloader CCFG settings for the CC2640R2 BLE5-Stack simple peripheral project:

    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0x00 // Disable ROM boot loader
    #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x1 // Active high to open boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0xFF // DIO number for boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xFF // Disabled boot loader backdoor 

    This would indicate that the Bootloader is disabled.  Even if you have pre-emptively changed the Bootloader settings, you should ensure that the backdoor bootloader pin is active on device start-up.  Please review SWRA466 for more information concerning the backdoor bootloader, and start considering how you could access the JTAG pins so that you may be able to recover the device

    Regards,
    Ryan

  • 1、I modified C:\ti\simplelink_cc2640r2_sdk_5_30_00_03\source\ti\devices\cc26x0r2\startup_files\ccfg.c:

    #define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE 0xC5 // Enable ROM boot loader
    #define SET_CCFG_BL_CONFIG_BL_LEVEL 0x1 // Active high to open boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0x0F // DIO15 number for boot loader backdoor
    #define SET_CCFG_BL_CONFIG_BL_ENABLE 0xC5 // Enabled boot loader backdoor

    2、Then I rebuild the project and regenerate ble5_simple_peripheral_cc2640r2lp_app.bin, rename it to blinky_backdoor_select_btn2640r2.bin, and copy it to swra466d\sblAppEx_1_03_00_00\bin to recover the bin file.

    3、Then I execute sblAppEx.exe and burn it fail again, the log was shown as follows:

    a. The results show the ccfg invalid? Need to modify the default bandRate from 230400 to 115200? 

    /* UART baud rate. Default: 230400 */
    // uint32_t baudRate = 230400;
    uint32_t baudRate = 115200;


    b. Whether need to use IAR Embedded Workbench to burn it?

    c. If not use a USB to UART bridge, directly use the SEGGER J-Flash, whether need to modify ccfg.c?


  • Hi:

    1. I tried to modify the baud rate from 230400 to 115200 in sblAppEx.cpp to generate the new sblAppEx.exe. I execute the new sblAppEx.exe and burn the bin fail again. The log is the same: ...Device may not be in bootloader mode...

    2. I read all flash is invalid too when using the tool of SmartRF Flash Programmer 2 ver.1.8.2(first burn is ok, current ble adv and connect is ok for CC2640R2). It can not burn multiple times.

    3. I tried to use the SEGGER J-Flash, it shows no probes connected via usb:

    4. The wiring of the board is shown in the following figure. Whether the wiring is not right?

  • Either you have not activated the bootloader pin during the device reset or the device CCFG is not programmed with valid bootloader values, hence bootloader mode is not being accessed after reset.  The first device program attempt could have been successful if the device was blank and thus the bootloader was entered automatically.  Please see chapter 8 of the TRM for more information.  Since you only have UART connections as far as I am aware, no JTAG, you will not be able to use non-bootload services to access the device.  You can contact the board developers to determine whether the wirings/connections are valid.

    Regards,
    Ryan

  • Hi,Ryan Brown1,

    Thanks for your reply.

    I tried to click the button of 'Download and Debug' in the tool of IAR Embedded Workbech IDE - Arm 8.40.1 by using XDS110 USB connect between PC and CC2640R2, the result is ok. It doesn't need to take care of in or not in bootloader mode. It can burn many times.