-
Notifications
You must be signed in to change notification settings - Fork 1
Board: CC2538DK
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.
MCU | CC2538SF53 |
---|---|
Family | ARM Cortex-M3 |
Vendor | Texas Instruments |
RAM | 32Kb |
Flash | 512Kb |
Frequency | 32MHz |
FPU | no |
Timers | 4 |
ADCs | 1x 12-bit (8 channels) |
UARTs | 2 |
SPIs | 2 |
I2Cs | 1 |
Vcc | 2V - 3.6V |
Datasheet | Datasheet (pdf file) |
Reference Manual | Reference Manual |
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:
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.
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:
make PORT=/dev/ttyUSB2 flash
To flash using a Segger JLink JTAG adapter you need to install Segger's JLinkExe tool, then specify PROGRAMMER=jlink
when flashing:
make PROGRAMMER=jlink flash
Be prevented that you'll need to disable Apple's System Integrity Protection to allow FTDI unsigned drivers to be loaded on your Mac.
To do this, reboot in recovery mode, by pressing simultaneously cmd + R
while booting.
Then, on the recovery mode go to Utilities/Terminal and type:
# csrutil status
If you see something like:
System Integrity Protection status: enabled.
You should disable it by typing:
# csrutil disable
then reboot
# reboot
and be sure that your System Integrity Protection is disabled
$ csrutil status
System Integrity Protection status: disabled.
Afterwards you'll be able to install this driver.
If everything goes OK reboot your Mac and then edit /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist
with a text editor.
Add the following block somewhere under IOKitPersonalities
:
<key>TI_XDS100v3</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.FTDI.driver.FTDIUSBSerialDriver</string>
<key>IOClass</key>
<string>FTDIUSBSerialDriver</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>1</integer>
<key>idProduct</key>
<integer>42705</integer>
<key>idVendor</key>
<integer>1027</integer>
</dict>
Reboot again and then type:
$ sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext
If everything worked, the XDS will be enumerated as /dev/tty.usbserial-<serial-number>
RIOT - The friendly Operating System for the Internet of Things
Homepage | [GitHub] (https://github.com/RIOT-OS/) | Developers Mailing List | Users Mailing List | Twitter @RIOT_OS
- Family: ARM
- Board: Airfy Beacon
- Board: Arduino Due
- Board: CC2538DK
- Board: CC2650STK
- Board: HikoB Fox
- Board: IoT LAB M3
- Board: LimiFrog-v1
- Board: mbed_lpc1768
- Board: MSB-IoT
- Board: MSBA2
- Board: Nucleo-L1
- Board: Nucleo-F334
- Board: Nucleo-F303
- Board: Nucleo-F091
- Board: Mulle
- Board: OpenMote
- Board: PCA1000x (nRF51822 Development Kit)
- Board: Phytec phyWAVE-KW22
- Board: RFduino
- Board: SAMR21-xpro
- Board: SAML21-xpro
- Board: Seeeduino Arch-Pro
- Board: Spark Core
- Board: STM32F0discovery
- Board: STM32F3discovery
- Board: STM32F4discovery
- Board: UDOO
- Board: yunjia-nrf51822
- Board: Zolertia remote
- Family: ATmega
- Board: Arduino Mega2560
- Board: Arduino Uno
- Board: Arduino Duemilanove
- Family: MSP430
- Board: MSB-430H
- Board: TelosB
- Board: WSN430
- Board: Zolertia Z1
- Board: eZ430-Chronos
- Family: native
- Board: native
- Family: x86
- Board: Intel Galileo