Skip to content

CC2538DK

Support for the Texas Instruments CC2538DK board.

Support for the Texas Instruments CC2538DK board.

Overview

The CC2538DK is Texas Instruments’ developer kit for the CC2538 SoC MCU, which combines an ARM Cortex-M3 microcontroller with an IEEE802.15.4 radio.

Hardware

cc2538dk

MCUCC2538SF53
FamilyARM Cortex-M3
VendorTexas Instruments
RAM32KiB
Flash512KiB
Frequency32MHz
FPUno
Timers4
ADCs1x 12-bit (8 channels)
UARTs2
SPIs2
I2Cs1
Vcc2V - 3.6V
DatasheetDatasheet (pdf file)
Reference ManualReference Manual

Flashing and Debugging

By default, RIOT will attempt to flash the MCU via the USB UART using a Python script named cc2538-bsl. Hold down the SELECT pushbutton while pressing RESET to activate the MCU’s internal bootloader, then run:

Terminal window
BOARD=cc2538dk make flash

Activating this bootloader is NOT enabled if the flash content is in factory default state (e.g. after unboxing). To set the bits in the CCA accordingly you have to follow the guidelines found here. To manage this first time access you have to download the “Uniflash” tool at TI’s website.

Some Linux machines may not recognize the CC2538DK’s vendor and product ID automatically. If a /dev/ttyUSBx device does not appear, try specifying these codes to the FTDI driver manually:

echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id

If the path /sys/bus/usb-serial/drivers/ftdi_sio/ doesn’t exist, you also have to load the module ftdi_sio by hand. Alternatively, you can install a udev rule that configures this on device connection, see this post on TI’s E2E site for details.

RIOT will use /dev/ttyUSB1 by default, but if the UART is given a different device name, you can specity it to RIOT using the PORT variable:

Terminal window
BOARD=cc2538dk PORT=/dev/ttyUSB2 make flash

To flash using a Segger JLink JTAG adapter you need to install Segger’s JLinkExe tool, then specify PROGRAMMER=jlink when flashing:

Terminal window
BOARD=cc2538dk PROGRAMMER=jlink make flash