Support for the Jiminy Mega 256rfr2 board. More...
Support for the Jiminy Mega 256rfr2 board.
The Jiminy board is a development of the Chair of Integrated Analog Circuits and RF Systems (IAS) of the RWTH Aachen University. We started the project by porting RIOT OS to the Pinoccio.io board. As there where severe limitations we designed the Jiminy board which has the the ATmega256rfr2 MCU as common feature.
It is Arduino like and features USB programming. The Bootloader is a fork of the Arduino Bootloader with added functionality for internal clock calibration and automatic baud rate detection.
The Jiminy is design as a core board featuring a MCU, RF-transceiver, battery charger and power path management IC, a fuel gauge, an adjustable power supply between 1.8V to 3.3V (100mV Steps) and an RGB LED. All unused Pins are connected to pin headers.
An USB C connector is used to connect to the computer or the charger. As USB C supports up to 3 ampere the board was designed in regard of fast charging and when connected to the grid or usage of big batteries high current supply capability for the shield.
The shields can be powered either directly from the Charger/battery or from the adjustable converter, the converter supply pin can be enabled or disabled by the application. By connecting shields to the core Jiminy board, a multitude of wireless applications can be created.
A first shield for temperature, humidity and soil moisture measurement is also developed at the IAS.
If there is demand for devices please contact the author of this page for more details.
The jiminy board has following ICs and features.
|USB2Serial||ATmega16U2, High-performance, low-power AVR 8-Bit Advanced RISC Architecture||Link|
|MCU||ATmega256, AVR 8-Bit Advanced RISC Architecture||Link|
|Transceiver||High performance RF-CMOS 2.4 GHz radio transceiver targeted for IEEE802.15.4, ZigBee, IPv6 / 6LoWPAN, RF4CE, SP100, WirelessHART and ISM applications||above|
|Li-ion Charger and Power Path||bq24298 , 3A Single Cell USB Charger With Power Path Management||Link|
|Fuel Gauge||LC709203F, Fuel Gauge for a single lithium ion battery which provides accurate RSOC information even under unstable conditions (e.g. changes of battery temperature, loading, aging and self-discharge)||Link|
|AC Converter||TPS6274x, Output voltage selectable within a range from 1.8V to 3.3V in 100mV steps, output currents up to 300mA||Link|
|RGB LED||Cree LED, hardware PWM controlled||Link|
|Core Frequency||8MHz (16MHz no power save mode)|
|Oscillators||32.768 kHz & 16 MHz|
|Timers||6 ( 2x8bit & 4x16bit )|
|ADCs||1x 15 channel 6 to 12-bit|
|SPIs||3 (1 SPI & 2 USART SPI)|
|I2Cs||1 (called TWI)|
|Vcc||1.8V - 3.6V|
|Datasheet / Reference Manual||Datasheet and Reference Manual|
Is an ongoing process ...
|PWM||OK||only PWM_left implemented yet|
|Stdio||OK||Output to USB Bridge, used as Terminal|
|RF core||Work in progress|
|Battery||ok||only RSOC so far|
|Soil moisture||ok||when requested the first time the returned value is wrong, after that the correct value is returned|
Flashing RIOT on the Jiminy is quite straight forward, just connect your Jiminy using the USB port to your host computer and type:
make flash BOARD=jiminy-mega256rfr2
This should take care of everything!
RIOT's Makefile are configured to flash the jiminy using AVRDUDE. The bootloader automatically matches to the configured baud rate which is set for AVRDUDE. Rates of up to 500kBaud can be used.
Reading out the fuses can be done with
avrdude -c wiring -p m256rfr2 -P /dev/ttyACM0 -b 0010005 -v
The last line should read
avrdude: safemode: Fuses OK (E:FE, H:D0, L:E2)
Which describes the fuses as follows: E: extended fuse = FE H: high fuse = D0 L: low fuse = E2
To program the fuses an JTAG programer (Atmel-ICE, Dragon) is needed, they can not be set with the bootloader. Connect the programmer JTAG pins with the board pins F4 JTAG TCK, F5 JTAG TMS, F6 JTAG TDO, F7 JTAG TDI, GND and VDD with V+ m256rfr2. Alternatively use a pogo pin connector ( e.g. SparkFun ISP Pogo Adapter) on the backside of the board.
To program the fuses default setting execute following line
avrdude -c atmelice -p m256rfr2 -U lfuse:w:0xe2:m -U hfuse:w:0xd0:m -U efuse:w:0xfe:m
Attention: the default setting above has brown-out detection enabled, see troubleshooting when using the board with 1.8V supply.
Setting the TPS6274x output voltage to 1.8V may lead to an undervoltage and thus triggers the brown-out reset. Disabling the brown-out detection by setting the extended fuse bit is recommended when a 1.8V supply is used.
avrdude -c atmelice -p m256rfr2 -U efuse:w:0xff:m
When the external crystal oscillator is used as system clock and the device is put into deep sleep mode it seems that the clocks for all peripherals are enabled and set to the smallest divider (highest frequency). This leads to a higher power consumption. When the device should be put into deep sleep it is recommended to use the internal RC oscillator as system clock source.
More pins can be used for hardware interrupts using the Pin Change Interrupt feature. See ATmega common for details.
|Board specific definitions for the Jiminy Mega 256rfr2 board. |
|Peripheral MCU configuration for the Jiminy Mega 256rfr2 board. |