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:
Marian Buschsieweke 2019-09-09 10:20:00 +02:00
parent 4922d6072e
commit 232aed3e18
No known key found for this signature in database
GPG Key ID: 61F64C6599B1539F
8 changed files with 0 additions and 447 deletions

View File

@ -1,5 +0,0 @@
MODULE = board
DIRS = $(RIOTBOARD)/common/atmega
include $(RIOTBASE)/Makefile.base

View File

@ -1 +0,0 @@
USEMODULE += boards_common_atmega

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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.
![jimminy-atmegarfr2](https://raw.githubusercontent.com/Josar/RIOT/jimminy-atmegarfr2/boards/jiminy-mega256rfr2/jimini-core-board.jpg)
![jimminy-plant-sensor](https://raw.githubusercontent.com/Josar/RIOT/jimminy-atmegarfr2/boards/jiminy-mega256rfr2/plant-sensor.jpg)
# Hardware
## Pinout
![jiminy-pinout](https://raw.githubusercontent.com/Josar/RIOT/master/boards/jiminy-mega256rfr2/Pinout.svg?sanitize=true)
## 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.
*/

View File

@ -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 */
/** @} */

View File

@ -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 */
/** @} */