SWRA466D February   2015  – August 2021 CC1310 , CC1310 , CC1352R , CC1352R , CC2538 , CC2538 , CC2620 , CC2620 , CC2630 , CC2630 , CC2640 , CC2640 , CC2640R2F , CC2640R2F , CC2640R2F-Q1 , CC2640R2F-Q1 , CC2642R , CC2642R , CC2642R-Q1 , CC2642R-Q1 , CC2650 , CC2650 , CC2650MODA , CC2650MODA , CC2652R , CC2652R , CC2652R7 , CC2652R7 , CC2652RB , CC2652RB , CC2652RSIP , CC2652RSIP

 

  1.   Trademarks
  2. 1Introduction
  3. 2ROM Bootloader
    1. 2.1 Configuring the Bootloader
      1. 2.1.1 CC2538
      2. 2.1.2 CC26x0
    2. 2.2 CC26x2
    3. 2.3 Communication Protocol
      1. 2.3.1 ACK/NACK
    4. 2.4 Interface Configuration
      1. 2.4.1 Hardware Pins
      2. 2.4.2 UART Configuration
      3. 2.4.3 Establishing Communication
      4. 2.4.4 Status Command
  4. 3Serial Bootloader Library (SBL)
    1. 3.1 SBL Return Values
    2. 3.2 SBL API
      1. 3.2.1 Device-Specific Functions
  5. 4Example Project
    1. 4.1 Hardware Setup
      1. 4.1.1 SmartRF06EB Virtual COM Port
        1. 4.1.1.1 External Serial Interface
      2. 4.1.2 LaunchPad Virtual COM Port
      3. 4.1.3 Bootloader Backdoor
    2. 4.2 Software Setup
      1. 4.2.1 Device Type
      2. 4.2.2 Baud Rate
    3. 4.3 Program Flow
      1. 4.3.1 Enumerate COM Ports
      2. 4.3.2 Create Device
      3. 4.3.3 Connect
      4. 4.3.4 Erase Flash Range
      5. 4.3.5 Write Flash Range
      6. 4.3.6 Calculate CRC32
      7. 4.3.7 Reset
  6. 5References
  7. 6Revision History

Establishing Communication

The bare minimum needed to establish communication with the bootloader over UART is shown in Figure 2-3, which includes sending two bytes with the value 0x55 to let the device detect the baud rate, followed by reading the device response, expecting an ACK if the auto baud rate routine was successful. If the device does not respond to the auto baud bytes, it may not be in bootloader mode, or the baud rate is not supported.

After a connection has been made, any command can be sent to the bootloader. The complete list of bootloader commands can be found in [1], [2], and [3] for CC2538, CC26x0, and CC26x2 respectively.

GUID-FFC11A10-3A0D-4179-9933-53928BD4FF2C-low.gifFigure 2-3 Sequence Chart for Connection Initialization