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.

CC2340R5: Enable Internal Bootloader for production programming

Other Parts Discussed in Thread: CC2340R5, CC2538, UNIFLASH, SYSCONFIG

Hello Team,

We are working on hardware design using CC2340R5 for our BLE module & want to have minimum components and exposed pin count.

My main concern is regarding the production programming of the module, as per my understanding we will need the following pins 

  • SWDIO
  • SWCLK
  • nRST
  • GND
  • VCC
  • Serial Tx/Rx

But according to datasheet the CC2340R5 have internal bootloader, which enables the user to program through serial UART interface only (*Tx/Rx pins), just want to know the following things:

1. How to enable internal bootloader, Is there any GPIO which we will need to control at boot up to enter into bootloader mode?

2. which TI tools will be required to program the binary files if we connect serial UART pins through FTDI serial USB converter.

Please let me know if you need more  information.

Regards,

Harinder Singh

  • Hi Harinder,

    Thank you for reaching out. We are looking into your queries and will get back to you as soon as possible.

    Best Regards,

    Jan

  • Hi Harinder,

    First of all, allow me to provide more details on the signals required to flash the device.

    - Assuming you are using the SWD interface, only the VCC, GND, SWDIO and SWCLK signals are required. You can refer to Figure 6. on this page to find more details and test this on your own.

    - If you decide to use instead the serial bootloader (which can be SPI or UART based), you need the following signals: VCC, GND, nRST, [UART RX, UART TX] OR [SPI MOSI, SPI MISO, SPI CLK] at a minimum.

    With these elements being clarified, here are the answers to your questions :)

    1- The ROM serial bootloader is entered (among others) when the device's CCFG is blank or incorrect. In other words, when the device is powered on for the first time (and until it is flashed with a valid CCFG), it will allow to use the ROM serial bootloader.
    There is also the possibility to access again the ROM serial bootloader using the so called backdoor pin.

    2- The functioning of the ROM serial bootloader is described in the technical reference manual (https://www.ti.com/lit/pdf/swcu193), chapter 8.

    Please let us know if you need further details.

    Best regards,

  • Dear Sir,

     @Clément  Thanks for your quick & effective response response..! you are always up to the point Slight smile 

    I am clear regarding the pins that I want to use for programming using the internal bootloader (*serial UART)  

    • VCC
    • GND
    • nRST
    • UART RX - DIO22
    • UART TX - DIO20

    I want more clarity on the following things

    1. Invoke ROM serial bootloader using the so called backdoor pin
    2. TI tools required to program the binary files if we connect over UART interface

    Let's discus one by one!

    1. Invoke ROM serial bootloader using the so called backdoor pin

    Generally MCU's have BOOT pins whose status after reset invokes internal bootloader but I didn't find any specific pin for this purpose with respect to CC2340R5, can you please point which DIO or Pin no. will serve the purpose of invoking internal bootloader so that user can reflash the firmware if required. I didn't find the backdoor pin related information in the datasheet.

    Do we need to configure any pin for this or it's preconfigured by default? if yes what's the default pin?

    Acc. to CC23xx, CC27xx Technical Reference Manual (TRM) :

    Acc to CC23xx, CC27xx Technical Reference Manual (TRM) as per default settings -  (*Is it correct?)

    • DIO21 will invoke the internal bootloader
    • UART RX - DIO22 & UART TX - DIO20 

    CC2340R5 Pinout - QNF40 

    Backdoor information explained in CC2538/CC26x0/CC26x2 Serial Bootloader Interface (Rev. D):

    2. Which TI tool I will use for programming the binary or hex files ?

    Do I need to program CCFG separately?

    Kindly please specify the tool name which will operated on system/PC end operate in serial interface (* for example Uniflash works for SWD interface)

    Will CCFG will need special programming process or it will be part of firmware itself like the way it works.

    Basically, once we get the raw CHIP, do we need to anything special or just flashing the firmware binary file will be sufficient?

    Please let us know if you need further details.

    Best regards,

    Harinder Singh

  • Hi,

    1- Any PIN can be defined as backdoor pin. You can use SysConfig to configure this.

    2- Technically, there is no need for specific TI tools as you basically have to send the UART commands as defined in the user's guide. However, to ease this, we are working on a tool that should be released in the upcoming months.

    Best regards,