SWRA466E February   2015  – August 2024 CC1310 , CC1310 , CC1311P3 , CC1311P3 , CC1311R3 , CC1311R3 , CC1312PSIP , CC1312PSIP , CC1312R7 , CC1312R7 , CC1314R10 , CC1314R10 , CC1352P , CC1352P , CC1352P7 , CC1352P7 , CC1352R , CC1352R , CC1354P10 , CC1354P10 , CC1354R10 , CC1354R10 , CC2538 , CC2538 , CC2620 , CC2620 , CC2630 , CC2630 , CC2640 , CC2640 , CC2640R2F , CC2640R2F , CC2640R2F-Q1 , CC2640R2F-Q1 , CC2642R , CC2642R , CC2642R-Q1 , CC2642R-Q1 , CC2650 , CC2650 , CC2650MODA , CC2650MODA , CC2651P3 , CC2651P3 , CC2651R3 , CC2651R3 , CC2651R3SIPA , CC2651R3SIPA , CC2652P , CC2652P , CC2652P7 , CC2652P7 , CC2652PSIP , CC2652PSIP , CC2652R , CC2652R , CC2652R7 , CC2652R7 , CC2652RB , CC2652RB , CC2652RSIP , CC2652RSIP , CC2674R10 , CC2674R10

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2ROM Bootloader
    1. 2.1 Configuring the Bootloader
      1. 2.1.1 CC2538
      2. 2.1.2 CC13x0, CC26x0
      3. 2.1.3 CC13x1x3, CC26x1x3
      4. 2.1.4 CC13x2, CC26x2
      5. 2.1.5 CC13x4, CC26x4
    2. 2.2 Communication Protocol
      1. 2.2.1 ACK or NACK
    3. 2.3 Interface Configuration
      1. 2.3.1 Hardware Pins
      2. 2.3.2 UART Configuration
      3. 2.3.3 Establishing Communication
      4. 2.3.4 Status Command
  6. 3Serial Bootloader Library (SBL)
    1. 3.1 SBL Return Values
    2. 3.2 SBL API
  7. 4Example Project
    1. 4.1 Hardware Setup
      1. 4.1.1 LaunchPad™ Development Kit Virtual COM Port
      2. 4.1.2 SmartRF06EB Virtual COM Port
        1. 4.1.2.1 External Serial Interface
      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
  8. 5References
  9. 6Revision History

Connect

The connect function takes two parameters: the COM port number (see Section 4.3.1) and the baud rate (see Section 2.3.2).

The CC2538 ROM bootloader supports switching from the internal oscillator of the device to an external oscillator (if available). Switching to an external oscillator increases the maximum baud rate supported by the CC2538 ROM bootloader. If an external oscillator is to be used, a third argument (Boolean TRUE) can be passed to the connect function, this third parameter is optional and FALSE by default.

To check whether the connection already is initialized, the initCommunication function in the SBL sends a dummy command and waits for the bootloader to respond with an ACK. If no connection already exists, the initCommunication function sends the auto baud rate routine (described in Section 2.3.2), expecting an ACK from the ROM bootloader. Figure 4-5 shows an example of this sequence.

 Sequence
                    Chart for initCommunication Function With Uninitialized
                    Bootloader Figure 4-5 Sequence Chart for initCommunication Function With Uninitialized Bootloader

When the connection is established, the connect function retrieves the device ID by using the serial bootloader command CMD_GET_CHIP_ID and FLASH size and RAM size by using the command CMD_MEMORY_READ to read from a location storing these values.