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

Communication Protocol

The CC2538, CC26x0, and CC26x2 bootloader uses the same format for receiving and sending packets. The actual signaling on SPI and UART transportation layers is different, but the packet format remains the same. The packet format is shown in Table 2-5 and each field is described in Table 2-6.

Table 2-5 ROM Bootloader Packet Format
Size (1 Byte)Checksum (1 Byte)Data byte 1Data byte N
Table 2-6 Packet Format Field Description
Packet FieldSize (bytes)Description
Size1The number of bytes in the packet, including the size byte.
Checksum1The checksum of the data. The checksum algorithm is the sum of the data bytes truncated to 8 bit.
Checksum = (∑data) mod 256
Data0-253The actual data bytes. The first data byte is typically the bootloader’s command byte.

Packet send and packet receive must adhere to the simple protocol shown in Figure 2-2. Both the host device and the CC2538/CC26x0/CC26x2 bootloader can act as sender and receiver. The host device becomes the receiver when it waits for a data response from the bootloader.

For more details about the communication protocol, see [1], [2], and [3].

GUID-FD3D6EF5-638C-4E59-907D-26CF2F5516D4-low.gifFigure 2-2 Sequence Chart for Send and Receive Protocol