Skip to content
gebart edited this page Dec 8, 2014 · 9 revisions

Mulle

The Mulle is a miniature wireless Embedded Internet System suitable for wireless sensors connected to the Internet of Things, and designed for rapid prototyping. It can be bought directly from Eistec AB.

Components

https://github.com/eistec/mulle/wiki/Datasheets contains a list of relevant documentation for the components.

MCU MK60DN512VLL10 – Cortex-M4, 512 kB flash, 64kB RAM
radio chipset AT86RF212B, sub-GHz IEEE802.15.4 transceiver, similar to the AT86RF233
external flash memory Micron M25P16 16 Mbits external NOR flash, used for storing configuration, measurements and other slow changing non-volatile data
external FRAM memory Cypress/Ramtron FM25L04B 4 Kbits external F-RAM, used for storing counters and other rapidly changing non-volatile data
accelerometer ST micro LIS3DH MEMS accelerometer,

Layout

Implementation Status

Device ID Supported Comments
MCU MK60DN512VLL10 partly See below
Low-level driver GPIO yes
PWM no not started
UART yes RX and TX works in examples/default using UART1, implemented but not tested other ports
I2C no not started, first priority
SPI in progress implemented core functionality, needs refactoring for PCS and CTAR config
USB no not started
RTT in progress untested, ported from Contiki
RNG no not started
hwtimer yes hwtimer uses LPTMR module for timer, 32.768 kHz tick rate
timer yes in progress, uses PIT for additional timers, F_BUS tick rate (48 MHz default)
LPM/LLWU no not started, will port some code from Contiki for low power modes
Radio Chip AT86RF212B no waiting for refactoring work being done for the IoT_Lab-M3
Accelerometer LIS3DH no will port from Contiki
Flash M25P16 no will port from Contiki
FRAM FM25L04B no will port from Contiki
Note on at86rf231 radio driver

The current implementation of the radio driver for the at86rf231 chip uses the basic operation modes. This gives you basic sending and receiving functionality but no hardware address filtering and no auto-ACKs etc. Due to the fact this radio device is an IEEE 802.15.4 compliant device it supports radio channels from 11 to 26. When trying to set a channel out of range the driver returns an error and prints a message with DEVELHELP enabled.

Toolchains

See ARM Family, and Eistec wiki - Installing-toolchain (GCC)

Working:

  • gcc-arm-embedded
  • Clang 3.4, Clang 3.5 - Install procedure not documented but pretty straightforward (Gentoo: USE=multitarget), Makefiles and build system is fully functional with Clang.

Not working:

  • Link time optimization (LTO) - Requires the GOLD linker, which currently fails on the K60 ldscripts. Needs refactoring of the ldscripts.

Programming and Debugging

See Eistec wiki.

Clone this wiki locally