boards: Remove support for the Jiminy-Mega256RFR2
- The Jiminy-Mega256RFR2 is seemingly unmaintained, as no one has responded
on requests to test changes on it. This lack of support has been blocking
various PRs in the last few months
- No one seems to use it
- Boards that are added to RIOT should match at least one of the following
- It is actively maintained
- It has a significant user base
- It is an off-the-shelf product, so it might be easily obtained for testing
==> The Jiminy is matching none of the above
This commit is contained in:
parent
4922d6072e
commit
232aed3e18
@ -1,5 +0,0 @@
|
||||
MODULE = board
|
||||
|
||||
DIRS = $(RIOTBOARD)/common/atmega
|
||||
|
||||
include $(RIOTBASE)/Makefile.base
|
||||
@ -1 +0,0 @@
|
||||
USEMODULE += boards_common_atmega
|
||||
@ -1,8 +0,0 @@
|
||||
CPU = atmega256rfr2
|
||||
|
||||
# This board is based on an atmega CPU, thus import the features from it
|
||||
include $(RIOTBOARD)/common/arduino-atmega/Makefile.features
|
||||
|
||||
# Put defined MCU peripherals here (in alphabetical order)
|
||||
# Peripherals are defined in common/arduino-atmega/Makefile.features
|
||||
# Add only additional Peripherals
|
||||
@ -1,26 +0,0 @@
|
||||
# configure the terminal program
|
||||
PORT_LINUX ?= /dev/ttyACM0
|
||||
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
|
||||
# refine serial port information for pyterm
|
||||
# For 8MHz F_CPU following Baudrate have good error rates
|
||||
# 76923
|
||||
# 38400
|
||||
BAUD ?= 38400
|
||||
include $(RIOTMAKE)/tools/serial.inc.mk
|
||||
|
||||
# PROGRAMMER defaults to wiring which is the internal flasher via USB
|
||||
# using avrdude. Can be overridden for debugging (which requires changes
|
||||
# that require to use an ISP)
|
||||
PROGRAMMER ?= wiring
|
||||
# Serial Baud rate for flasher is configured to 500kBaud
|
||||
# see /usr/include/asm-generic/termbits.h for availabel baudrates on your linux system
|
||||
FFLAGS_EXTRA += -b 0010005
|
||||
# avoid error if mcu signature doesn't match
|
||||
FFLAGS_EXTRA += -F
|
||||
|
||||
# From current fuse configuration
|
||||
BOOTLOADER_SIZE ?= 4K
|
||||
ROM_RESERVED ?= $(BOOTLOADER_SIZE)
|
||||
|
||||
include $(RIOTMAKE)/tools/avrdude.inc.mk
|
||||
include $(RIOTBOARD)/common/atmega/Makefile.include
|
||||
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Kaspar Schleiser <kaspar@schleiser.de>
|
||||
* 2016 RWTH Aachen, Josua Arndt
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup boards_jiminy-mega256rfr2
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Board specific LED initialization
|
||||
*
|
||||
* @author Josua Arndt <jarndt@ias.rwth-aachen.de>
|
||||
* @author Kaspar Schleiser <kaspar@schleiser.de>
|
||||
*
|
||||
* @}
|
||||
*/
|
||||
|
||||
#include "board.h"
|
||||
#include "cpu.h"
|
||||
|
||||
void led_init(void)
|
||||
{
|
||||
/* initialize the board LED (connected to pin PB7) */
|
||||
/* Ports Pins as Output */
|
||||
LED_PORT_DDR |= LED2_MASK | LED1_MASK | LED0_MASK;
|
||||
/* All Pins Low so LEDs are off */
|
||||
LED_PORT &= ~(LED2_MASK | LED1_MASK | LED0_MASK);
|
||||
}
|
||||
@ -1,181 +0,0 @@
|
||||
/**
|
||||
* @defgroup boards_jiminy-mega256rfr2 Jiminy- Mega256rfr2
|
||||
* @ingroup boards
|
||||
* @brief Support for the Jiminy Mega 256rfr2 board
|
||||
|
||||
# Overview
|
||||
The Jiminy board is a development of the
|
||||
[Chair of Integrated Analog Circuits and RF Systems](http://www.ias.rwth-aachen.de/cms/~gair/IAS/?lidx=1)
|
||||
(IAS) of the [RWTH Aachen University](https://www.rwth-aachen.de/). We started the project by porting
|
||||
RIOT OS to the [Pinoccio.io](https://github.com/Pinoccio/hardware-pinoccio) board. As there where severe
|
||||
limitations we designed the Jiminy board which has the the
|
||||
[ATmega256rfr2](http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8393-MCU_Wireless-ATmega256RFR2-ATmega128RFR2-ATmega64RFR2_Datasheet.pdf)
|
||||
MCU as common feature.
|
||||
|
||||
It is Arduino like and features USB programming. The [Bootloader](https://github.com/Josar/arduino_stk500v2)
|
||||
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.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
# Hardware
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
## Board
|
||||
The jiminy board has following ICs and features.
|
||||
|
||||
| Features | Details | Datasheet |
|
||||
|:------------- |:--------------------- |:------------- |
|
||||
| USB2Serial| ATmega16U2, High-performance, low-power AVR 8-Bit Advanced RISC Architecture | [Link](http://www.microchip.com/wwwproducts/en/ATmega16u2) |
|
||||
| MCU | ATmega256, AVR 8-Bit Advanced RISC Architecture |[Link](http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8393-MCU_Wireless-ATmega256RFR2-ATmega128RFR2-ATmega64RFR2_Datasheet.pdf) |
|
||||
| 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](http://www.ti.com/lit/ds/symlink/bq24298.pdf) |
|
||||
| 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](https://www.onsemi.com/pub/Collateral/LC709203F-D.PDF) |
|
||||
| AC Converter | TPS6274x, Output voltage selectable within a range from 1.8V to 3.3V in 100mV steps, output currents up to 300mA | [Link](http://www.ti.com/lit/ds/symlink/tps62740.pdf) |
|
||||
| RGB LED | Cree LED, hardware PWM controlled |[Link](https://www.cree.com/led-components/media/documents/ds-CLVBA-FKA.pdf) |
|
||||
|
||||
|
||||
## MCU Details
|
||||
| MCU | ATmega256RFR2 |
|
||||
|:------------- |:--------------------- |
|
||||
| Family | ATmega |
|
||||
| Vendor | Atmel |
|
||||
| Package | QFN/MLF |
|
||||
| SRAM | 32Kb |
|
||||
| Flash | 256Kb |
|
||||
| EEPROM | 8K |
|
||||
| Core Frequency | 8MHz (16MHz no power save mode) |
|
||||
| Oscillators | 32.768 kHz & 16 MHz |
|
||||
| Timers | 6 ( 2x8bit & 4x16bit ) |
|
||||
|Analog Comparator | 1 |
|
||||
| ADCs | 1x 15 channel 6 to 12-bit |
|
||||
| USARTs | 2 |
|
||||
| SPIs | 3 (1 SPI & 2 USART SPI) |
|
||||
| I2Cs | 1 (called TWI) |
|
||||
| Vcc | 1.8V - 3.6V |
|
||||
| Datasheet / Reference Manual | [Datasheet and Reference Manual](http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8393-MCU_Wireless-ATmega256RFR2-ATmega128RFR2-ATmega64RFR2_Datasheet.pdf) |
|
||||
| Board Manual | |
|
||||
| Pins | |
|
||||
|
||||
|
||||
# Implementation Status
|
||||
Is an ongoing process ...
|
||||
|
||||
## Jimini Core
|
||||
| Driver | Status | Comment |
|
||||
|:------------- |:--------------------- |:--------------------- |
|
||||
| GPIO (LED) | OK | |
|
||||
| Timers | OK | |
|
||||
| UART | OK | |
|
||||
| TWI, I2C | OK | |
|
||||
| PWM | OK | only PWM_left implemented yet |
|
||||
| Comparator | OK | |
|
||||
|
||||
|
||||
| Module | Status | Comment |
|
||||
|:------------- |:--------------------- |:--------------------- |
|
||||
| Stdio| OK | Output to USB Bridge, used as Terminal |
|
||||
| xTimer | OK | |
|
||||
| PWM LED | OK | |
|
||||
| RTC| OK | |
|
||||
| Power Path | OK | |
|
||||
| Fuel Gauge| OK | |
|
||||
| RF core | Work in progress | |
|
||||
|
||||
| CoAP | Status | Comment |
|
||||
|:------------- |:--------------------- |:--------------------- |
|
||||
|Device| | |
|
||||
|LED| | |
|
||||
| Battery | ok | only RSOC so far |
|
||||
|
||||
## Jimini Plant Sensor Shield
|
||||
|
||||
| Module | Status | Comment |
|
||||
|:------------- |:--------------------- |:--------------------- |
|
||||
| SHT21 | OK | |
|
||||
| Soil moisture | OK | |
|
||||
|
||||
|
||||
| CoAP | Status | Comment |
|
||||
|:------------- |:--------------------- |:--------------------- |
|
||||
| Temperature | ok | |
|
||||
| Humidity | ok | |
|
||||
| Soil moisture | ok | when requested the first time the returned value is wrong, after that the correct value is returned |
|
||||
|
||||
# Flashing RIOT
|
||||
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.
|
||||
|
||||
# Fuse Settings
|
||||
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.
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## Using 1.8V as board Voltage
|
||||
|
||||
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`
|
||||
|
||||
## Using the external crystal oscillator (Transceiver Crystal Oscillator) and deep sleep
|
||||
|
||||
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.
|
||||
|
||||
## Pin Change Interrupts
|
||||
|
||||
More pins can be used for hardware interrupts using the Pin Change
|
||||
Interrupt feature. See @ref boards_common_atmega for details.
|
||||
|
||||
*/
|
||||
@ -1,150 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2016 RWTH Aachen, Josua Arndt
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup boards_jiminy-mega256rfr2
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Board specific definitions for the Jiminy Mega 256rfr2 board.
|
||||
*
|
||||
* @author Josua Arndt <jarndt@ias.rwth-aachen.de>
|
||||
* @author Steffen Robertz <steffen.robertz@rwth-aachen.de>
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H
|
||||
#define BOARD_H
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @name Baudrate for STDIO terminal
|
||||
*
|
||||
* The standard configuration for STDIO in spu/atmega_comman/periph/uart.c
|
||||
* is to use double speed.
|
||||
*
|
||||
* For 8MHz F_CPU following Baudrate have good error rates
|
||||
* 76923
|
||||
* 38400
|
||||
*
|
||||
* Matches this with BAUD in Board/Makefile.include
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
#ifndef STDIO_UART_BAUDRATE
|
||||
#define STDIO_UART_BAUDRATE (38400U) /**< Sets Baudrate for e.g. Shell */
|
||||
#endif
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name LED pin definitions and handlers
|
||||
* @{
|
||||
*/
|
||||
#define LED_PORT PORTB
|
||||
#define LED_PORT_DDR DDRB
|
||||
|
||||
#define LED0_PIN GPIO_PIN(1, 5)
|
||||
#define LED1_PIN GPIO_PIN(1, 6)
|
||||
#define LED2_PIN GPIO_PIN(1, 7)
|
||||
|
||||
#define LED0_MASK (1 << DDB5)
|
||||
#define LED1_MASK (1 << DDB6)
|
||||
#define LED2_MASK (1 << DDB7)
|
||||
|
||||
#define LED0_ON (LED_PORT |= LED0_MASK)
|
||||
#define LED0_OFF (LED_PORT &= ~LED0_MASK)
|
||||
#define LED0_TOGGLE (LED_PORT ^= LED0_MASK)
|
||||
|
||||
#define LED1_ON (LED_PORT |= LED1_MASK)
|
||||
#define LED1_OFF (LED_PORT &= ~LED1_MASK)
|
||||
#define LED1_TOGGLE (LED_PORT ^= LED1_MASK)
|
||||
|
||||
#define LED2_ON (LED_PORT |= LED2_MASK)
|
||||
#define LED2_OFF (LED_PORT &= ~LED2_MASK)
|
||||
#define LED2_TOGGLE (LED_PORT ^= LED2_MASK)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name White LED light is used to signal ERROR.
|
||||
* @{
|
||||
*/
|
||||
#define LED_PANIC (LED_PORT |= LED2_MASK | LED1_MASK | LED0_MASK)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name xtimer configuration values
|
||||
* @{
|
||||
*/
|
||||
#define XTIMER_DEV TIMER_DEV(0)
|
||||
#define XTIMER_CHAN (0)
|
||||
#define XTIMER_WIDTH (16)
|
||||
#define XTIMER_HZ (125000UL)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name Indicate Watchdog cleared in bootloader an
|
||||
*
|
||||
* AVR CPUs need to reset the Watchdog as fast as possible.
|
||||
* This flag indicates that the watchdog is reseted in the bootloader
|
||||
* and that the MCUSR value is stored in register 2 (r2)
|
||||
* @{
|
||||
*/
|
||||
#define BOOTLOADER_CLEARS_WATCHDOG_AND_PASSES_MCUSR 1
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name Indicate Watchdog cleared in bootloader an
|
||||
*
|
||||
* AVR CPUs need to reset the Watchdog as fast as possible.
|
||||
* This flag indicates that the watchdog is reseted in the bootloader
|
||||
* and that the MCUSR value is stored in register 2 (r2)
|
||||
* @{
|
||||
*/
|
||||
#define BOOTLOADER_CLEARS_WATCHDOG_AND_PASSES_MCUSR 1
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name CPU clock scale for jiminy-megarfr256rfr2
|
||||
*
|
||||
* The CPU can not be used with the external xtal oscillator if the core
|
||||
* should be put in sleep while the transceiver is in rx mode.
|
||||
*
|
||||
* It seems the as teh peripheral clock divider is set to 1 and this all
|
||||
* clocks of the timer, etc run with 16MHz increasing power consumption.
|
||||
*/
|
||||
#define CPU_ATMEGA_CLK_SCALE_INIT CPU_ATMEGA_CLK_SCALE_DIV1
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name TPS6274x Stepdown config
|
||||
* @{
|
||||
*/
|
||||
#define TPS6274X_PARAMS { .vsel = { GPIO_PIN(PORT_D, 6), \
|
||||
GPIO_PIN(PORT_D, 7), \
|
||||
GPIO_PIN(PORT_G, 0), \
|
||||
GPIO_PIN(PORT_G, 2), \
|
||||
}, \
|
||||
.ctrl_pin = GPIO_PIN(PORT_G, 5) \
|
||||
}
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief Initialize board specific hardware, including clock, LEDs and std-IO
|
||||
*/
|
||||
void board_init(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BOARD_H */
|
||||
/** @} */
|
||||
@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2016 RWTH Aachen, Josua Arndt
|
||||
* 2019 Otto-von-Guericke-Universität Magdeburg
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup boards_jiminy-mega256rfr2
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Peripheral MCU configuration for the Jiminy Mega 256rfr2 board
|
||||
*
|
||||
* @author Josua Arndt <jarndt@ias.rwth-aachen.de>
|
||||
* @author Steffen Robertz <steffen.robertz@rwth-aachen.de>
|
||||
* @author Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
*/
|
||||
|
||||
#ifndef PERIPH_CONF_H
|
||||
#define PERIPH_CONF_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @name Clock configuration
|
||||
* @{
|
||||
*/
|
||||
#define CLOCK_CORECLOCK (8000000UL)
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "periph_conf_atmega_common.h"
|
||||
|
||||
#endif /* PERIPH_CONF_H */
|
||||
/** @} */
|
||||
Loading…
x
Reference in New Issue
Block a user