diff --git a/LOSTANDFOUND.md b/LOSTANDFOUND.md index 3e3b5d291e79..891790346642 100644 --- a/LOSTANDFOUND.md +++ b/LOSTANDFOUND.md @@ -40,6 +40,18 @@ This way, their names are never removed from the RIOT repository. # Removed Features +### boards/jiminy-mega256rfr2 [232aed3e18118624b862d36bfec7cd1c21ca2d26] +Author: +- Josua Arndt +- Steffen Robertz + +Reasons for removal: +- The board is a custom design at the RWTH Aachen, so only two persons have + access to the hardware +- It was unmaintained for several month now +- Various refactoring PRs affected the ATmega CPU family have not been tested, + it is unclear if the board is actually usable with RIOT + ### cpu/mips32r2_generic [a2bcd7539ce1931b7aec0077ea71dadd62c96edd] Author: - Neil Jones diff --git a/boards/jiminy-mega256rfr2/Makefile b/boards/jiminy-mega256rfr2/Makefile deleted file mode 100644 index 3134740b39ff..000000000000 --- a/boards/jiminy-mega256rfr2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -MODULE = board - -DIRS = $(RIOTBOARD)/common/atmega - -include $(RIOTBASE)/Makefile.base diff --git a/boards/jiminy-mega256rfr2/Makefile.dep b/boards/jiminy-mega256rfr2/Makefile.dep deleted file mode 100644 index 3d1c295b9b21..000000000000 --- a/boards/jiminy-mega256rfr2/Makefile.dep +++ /dev/null @@ -1 +0,0 @@ -USEMODULE += boards_common_atmega diff --git a/boards/jiminy-mega256rfr2/Makefile.features b/boards/jiminy-mega256rfr2/Makefile.features deleted file mode 100644 index fd8b2bd2e936..000000000000 --- a/boards/jiminy-mega256rfr2/Makefile.features +++ /dev/null @@ -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 diff --git a/boards/jiminy-mega256rfr2/Makefile.include b/boards/jiminy-mega256rfr2/Makefile.include deleted file mode 100644 index 82db943e5e33..000000000000 --- a/boards/jiminy-mega256rfr2/Makefile.include +++ /dev/null @@ -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 diff --git a/boards/jiminy-mega256rfr2/board.c b/boards/jiminy-mega256rfr2/board.c deleted file mode 100644 index 9890a7fec746..000000000000 --- a/boards/jiminy-mega256rfr2/board.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2018 Kaspar Schleiser - * 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 - * @author Kaspar Schleiser - * - * @} - */ - -#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); -} diff --git a/boards/jiminy-mega256rfr2/doc.txt b/boards/jiminy-mega256rfr2/doc.txt deleted file mode 100644 index 6b0d0f332354..000000000000 --- a/boards/jiminy-mega256rfr2/doc.txt +++ /dev/null @@ -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. - - */ diff --git a/boards/jiminy-mega256rfr2/include/board.h b/boards/jiminy-mega256rfr2/include/board.h deleted file mode 100644 index b14930f95f50..000000000000 --- a/boards/jiminy-mega256rfr2/include/board.h +++ /dev/null @@ -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 - * @author Steffen Robertz - */ - -#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 */ -/** @} */ diff --git a/boards/jiminy-mega256rfr2/include/periph_conf.h b/boards/jiminy-mega256rfr2/include/periph_conf.h deleted file mode 100644 index f7a1216baa9e..000000000000 --- a/boards/jiminy-mega256rfr2/include/periph_conf.h +++ /dev/null @@ -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 - * @author Steffen Robertz - * @author Marian Buschsieweke - */ - -#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 */ -/** @} */