-
Notifications
You must be signed in to change notification settings - Fork 11
8051 Based Platforms
Contiki offers limited support for two Texas Instruments System-on-Chip (SoC) solutions, the cc253x and cc243x.
All those SoCs are equipped with an enhanced Intel 8051 microcontroller core, which means that we build contiki using the Small Device C Compiler (SDCC).
Contiki platforms using this CPU code are:
- Sensinode: This is maintained externally.
- TI cc2530 Development Kit; This is maintained in the official repo.
Due to stack size limitations, it is very unlikely that you will be able to run IPv6 code from master on those devices. If you want to run IPv6 code on the CC2530DK platform, you best use the cc-ports branch (externally). This is documented extensively in the "8051 Install and Use" page.
The following hardware is supported:
- SmartRF Evaluation Board (SmartRF05EB rev. 1.7 & 1.8) with cc2530 Evaluation Module (EM)
- cc2531 USB Sticks
There is no support for the cc1110. However, similar to cc243x and cc253x, this SoC is based on the 8051 MCU. This means that the existing contiki cpu code (cpu/cc253x
) can serve as a basis for cc1110 porting efforts. Due to its RAM and Flash size, it is unlikely that a cc1110 port will support the same feature set (begging to be proven wrong here!). This thread on contiki-developers contains an exchange of ideas on how to go about porting for this SoC.
This table lists the various hardware features for the devices supported by Contiki. Unless explicitly mentioned otherwise, the features listed here have been implemented.
Texas Instruments cc2530 DK | ||
---|---|---|
cc2530EMs on SmartRF05EB | cc2531 USB Dongle | |
SoC | cc2530F256 | cc2531F256 |
SoC Features | ||
MCU | Enhanced Intel 8051 core, using the standard 8051 instruction set. | |
RAM | 8 KB with data retention in all power modes | |
Flash | 256 KB | |
RF | 2.4 GHz IEEE 802.15.4 compliant RF transceiver | |
Sensors | VDD, On-Chip Temperature | |
Crypto/RNG | ||
Hardware AES Encryption/Decryption (AES Co-Processor)4 | ||
Hardware Random Number Generator | ||
Peripherals | ||
LEDs | 42 | 2 |
Buttons | 12, 3 | 2 |
I/O Connectors | RS232 (UART0) | USB |
USB (to program) | Debug Connector | |
Serial Flash | 256 KB OnBoard SPI Flash4 | |
Other | LCD4 | Hardware USB Support |
Joystick4 |
- Only on devices with the RC2301 (cc2431F128)
- LED 4 is mapped to the same port/pin as B1. The current implementation configures the pin as input and supports the button.
- The board has two buttons but only B1 is connected to the SoC
- Driver not implemented
- Prepare your System - Requirements
- How to Install and Use Contiki for 8051 Platforms
- Understanding 8051 Memory Spaces (and how I learnt to avoid stack overflows)
- Understanding Code Banking (and how I learnt to spot banking errors before programming my node with firmware that crashes left right and centre)
- How to increase maximum available stack
- Testing and bug reporting is always welcome
- Experimentation with TCP and embedded webservers. Reports of success/failure and patches are very welcome
- RPL collect support needs work
- Missing SmartRF drivers:
- SmartRF LCD
- SmartRF Joystick
- SmartRF Serial flash
If you are willing to contribute driver code, have a good read at this page. Also, due to licensing, I can't consider code directly derived from TI software examples.
- GitHub wiki on Contiki's 8051-based ports
- Loughborough University's page on Contiki for Sensinode/cc243x devices. This page only serves as an archive, since the port has now been merged upstream.