043e8cc88e
- Rename all `arduino_pinmap.h` to `arduino_iomap.h` - An empty `arduino_pinmap.h` that just includes `arduino_iomap.h` is provided for backward compatibility - Move all info from `arduino_board.h` into the new file as trivial macros, so that they can also be used outside of sketches - The new name reflects the fact not just pin mappings, but also other I/O features such as PWMs are mapped - Drop all `arduino_board.h` - `arduino_board.h` and `arduino_iomap.h` now provide the exact same information, just in a different format - a generic `arduino_board.h` is provided instead that just uses the info in `arduinio_iomap.h` and provides them in the format the code in `sys/arduino` expects it - Add fine grained features to indicate for mappings - availability of mappings for analog pins, DAC pins, PWM pins, UART devices, SPI/I2C buses to the corresponding RIOT identification can now be expressed: - `arduino_pins`: `ARDUINO_PIN_0` etc. are available - `arduino_analog`: `ARDUINO_A0` etc. are available - `arduino_pwm`: `ARDUINO_PIN_13_PWM_DEV` etc. are available - `arduino_dac`: `ARDUINO_DAC0` etc. are available - `arduino_uart`: `ARDUINO_UART_D0D1` or similar are available - `arduino_spi`: `ARDUINO_SPI_ISP` or similar are available - `arduino_i2c`: `ARDUINO_I2C_UNO` or similar are available - mechanical/electrical compatibility with specific form factors can now be expressed as features: - `aruino_shield_nano`: Arduino NANO compatible headers - `aruino_shield_uno`: Arduino UNO compatible headers - `aruino_shield_mega`: Arduino MEGA compatible headers - `aruino_shield_isp`: ISP header is available This provides the groundwork to implement shield support as modules that can rely on the I/O mappings, rather than having to provide a configuration per board. |
||
---|---|---|
.. | ||
include | ||
board.c | ||
doc.txt | ||
Kconfig | ||
Makefile | ||
Makefile.dep | ||
Makefile.features | ||
Makefile.include | ||
README.md |
Zolertia RE-Mote platform
The RE-Mote platform (Revision B) is a IoT Hardware development platform based on TI's CC2538 system on chip (SoC), featuring an ARM Cortex-M3 with 512KB flash, 32Kb RAM, double RF interface (Sub-1GHz CC1200 RF transceiver), and the following goodies:
- ISM 2.4-GHz IEEE 802.15.4 & Zigbee compliant.
- ISM 868-, 915-, 920-, 950-MHz ISM/SRD Band.
- AES-128/256, SHA2 Hardware Encryption Engine.
- ECC-128/256, RSA Hardware Acceleration Engine for Secure Key Exchange.
- Power consumption down to 150nA using our shutdown mode.
- Flashing over BSL without requiring to press any button to enter bootloader mode.
- Built-in battery charger (500mA), Energy Harvesting and Solar Panels to be connected to standards LiPo batteries.
- Power input with wide range 3.7-16VDC.
Changes from Revision A
The list of changes are summarized in the Wiki
Port Features
In terms of hardware support, the following drivers have been implemented:
- CC2538 System-on-Chip:
- UART
- Random number generator
- Low Power Modes
- General-Purpose Timers
- I2C/SPI library
- LEDs
- Buttons
- RF switch to programmatically drive either 2.4GHz or sub-1GHz to a single RP-SMA
- RF 2.4GHz built-in in CC2538
And under work or pending at cc2538 base cpu:
* Built-in core temperature and battery sensor.
* CC1200 sub-1GHz radio interface.
* Micro-SD external storage.
* ADC
* USB (in CDC-ACM).
* uDMA Controller.
Requirements
- Toolchain to compile RIOT for the CC2538
- Drivers to enable your host to communicate with the platform
- Built-in BSL programming over USB using cc2538-bsl (included)
Install a Toolchain
The toolchain used to build is arm-gcc, to check if it is currently installed run:
$ arm-none-eabi-gcc -v
Using built-in specs.
Target: arm-none-eabi
Configured with: /scratch/julian/lite-respin/eabi/src/gcc-4.3/configure
...
(skip)
...
Thread model: single
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-66)
Else install from https://launchpad.net/gcc-arm-embedded
Drivers
The RE-Mote features a CP2104 serial-to-USB module, the driver is commonly found in most OS, but if required it can be downloaded from https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
For the CC2538EM (USB CDC-ACM)
The RE-Mote has built-in support for USB 2.0 USB, Vendor and Product IDs are the following:
- VID 0x0451
- PID 0x16C8
On Linux and macOS this is straightforward, on windows you need to install the following driver:
https://github.com/alignan/lufa/blob/remote-zongle/LUFA/CodeTemplates/WindowsINF/LUFA%20CDC-ACM.inf
And replace the IDs accordingly.
Device Enumerations
For the UART, serial line settings are 115200 8N1, no flow control.
Once all drivers have been installed correctly:
On windows, devices will appear as a virtual COM
port.
On Linux, devices will appear under /dev/
.
On macOS, /dev/tty.SLAB_USBtoUARTx
.
On Linux:
- RE-Mote over CP2104:
ttyUSB0
- RE-Mote over USB driver (in CDC-ACM):
ttyACMn
(n=0, 1, ....)