mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
120 lines
4.0 KiB
Plaintext
120 lines
4.0 KiB
Plaintext
/**
|
|
@defgroup boards_spark-core Spark-Core
|
|
@ingroup boards
|
|
@brief Support for the spark-core board
|
|
|
|
## Overview
|
|
|
|
Spark's hardware dev kit, the Spark Core, provides everything you need to
|
|
build a connected product. We combine a powerful ARM Cortex M3 micro-controller
|
|
with a Wi-Fi module to get you started quickly. The design is open source, so
|
|
when you're ready to integrate the Core into your product, you can.
|
|
|
|
## Hardware
|
|
|
|
![Spark-Core image](https://raw.githubusercontent.com/wiki/RIOT-OS/RIOT/images/spark-core.jpg)
|
|
|
|
Link to [product website](http://docs.spark.io/hardware/).
|
|
|
|
### MCU
|
|
| MCU | STM32F103CB |
|
|
|:------------- |:--------------------- |
|
|
| Family | ARM Cortex-M3 |
|
|
| Vendor | ST Microelectronics |
|
|
| RAM | 20Kb |
|
|
| Flash | 128Kb |
|
|
| Frequency | up to 72MHz (using the on-board 8MHz Oszillator of the ST- Link) |
|
|
| FPU | no |
|
|
| Timers | 10 (9x 16-bit, 1x 32-bit [TIM2]) |
|
|
| ADCs | 4x 12-bit |
|
|
| UARTs | 5 |
|
|
| SPIs | 3 |
|
|
| I2Cs | 2 |
|
|
| Vcc | 2.0V - 3.6V |
|
|
| Datasheet | [Datasheet](https://github.com/spark/core/blob/master/Datasheets/ST_STM32F103CB.pdf) |
|
|
| Reference Manual | [Reference Manual](xxx) |
|
|
| Programming Manual | [Programming Manual](xxx) |
|
|
| Board Manual | [Board Manual](http://docs.spark.io/hardware/)|
|
|
|
|
# Hardware connection
|
|
|
|
First of all make sure the your spark core device is detected and can be
|
|
accessed properly. In Linux you might have to adept your udev rules accordingly:
|
|
|
|
```
|
|
$ cat 50-openmoko.rules
|
|
#Bus 001 Device 022: ID 1d50:607f OpenMoko, Inc.
|
|
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="607f", \
|
|
MODE:="0666", \
|
|
SYMLINK+="openmoko_%n"
|
|
|
|
# If you share your linux system with other users, or just don't like the
|
|
# idea of write permission for everybody, you can replace MODE:="0666" with
|
|
# OWNER:="yourusername" to create the device owned by you, or with
|
|
# GROUP:="somegroupname" and manage access using standard unix groups.
|
|
|
|
sudo cp 50-openmoko.rules /etc/udev/rules.d/
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger
|
|
```
|
|
|
|
now replug the usb cable and flash.
|
|
|
|
# Flashing
|
|
|
|
To flash RIOT to the spark core you need to install `dfu-util` (tested with
|
|
0.7 and 0.8).
|
|
|
|
Power the device and press the the `mode` button until the LED flashes
|
|
yellow/orange: now the device is ready to get flashed.
|
|
|
|
# Firmware upgrade
|
|
|
|
To run RIOT it is required that you run the newest spark bootloader on your
|
|
core:
|
|
from https://community.spark.io/t/replace-core-firmware-with-riot-os/7007/7
|
|
|
|
```
|
|
Here is the core-firmware branch for this:
|
|
https://github.com/spark/core-firmware/tree/bootloader-patch-update1
|
|
However care should be taken not to disturb the patch update process by
|
|
accidentally removing usb power or through reset.
|
|
Following is the procedure to update the bootloader-patch
|
|
1)cd core-firmware
|
|
2)git pull
|
|
3)git checkout bootloader-patch-update
|
|
4)cd build [No need to run make]
|
|
5)Enter usb dfu/bootloader mode => Yellow flashes
|
|
6) dfu-util -d 1d50:607f -a 0 -s 0x08005000:leave -D core-firmware.bin
|
|
7)Upon execution, the bootloader should be updated within a second or two and
|
|
normal core-firmware should start executing.
|
|
8)Congrats! your core is loaded with latest bootloader without the hassle of
|
|
going through ST-Link JTAG programming
|
|
```
|
|
|
|
Build and flash
|
|
===============
|
|
|
|
1. clone RIOT-OS
|
|
2. cd to e.g. `examples/hello_world`
|
|
3. enter `BOARD=spark-core make clean all flash`
|
|
|
|
Use the UART
|
|
============
|
|
|
|
1. RIOT is using the UART PINs on the board, they are labeled as `RT` and
|
|
`TX`.
|
|
2. Connect your TTY to them and `BOARD=spark-core make term`.
|
|
3. In a different terminal enter `BOARD=spark-core make reset`
|
|
|
|
Pin mapping in RIOT
|
|
===================
|
|
|
|
The following image shows RIOT's static pin mapping chosen for this board.
|
|
This mapping is completely arbitrary, it can be adjusted in
|
|
`boards/spark-core/include/periph_conf.h`
|
|
![Pin Mapping](http://docs.spark.io/assets/images/spark-pinout.png)
|
|
|
|
*/
|