/** * @defgroup boards_microduino-corerf Microduino CoreRF * @ingroup boards * @brief Support for the Microduino CoreRF board # Hardware ## Pinout ![corerf-pinout](https://wiki.microduinoinc.com/images/d/df/RF%E5%BC%95%E8%84%9A.jpg) @warning Unlike on other ATmega MCUs, the GPIOs are not 5V tolerant. @note The 5V pin cannot be used to power the board, as the board is not equipped with an voltage regulator. The pin is therefore not connected. But it can be used to pass 5V to shields, if connected to a 5V supply voltage. ## Board The board is just a breakout for the ATmega128RFA1 MCU. ## MCU Details | MCU | ATmega128RFA1 | |:------------------------------|:----------------------------------| | Family | ATmega | | Vendor | Atmel | | Package | QFN/MLF | | SRAM | 16KiB | | Flash | 128KiB | | EEPROM | 4KiB | | Core Frequency | 8MHz (16MHz no power save mode) | | Oscillators | 32.768 kHz & 16 MHz | | Timer | 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-8266-MCU_Wireless-ATmega128RFA1_Datasheet.pdf) | | Board Manual | [Wiki Page](https://wiki.microduinoinc.com/Microduino-Module_CoreRF) | The MCU comes with a 2.4 GHz IEEE 802.15.4 radio that is compatible with the Atmel AT86RF23x line of transceivers with the only difference being that it is not being accessed over an SPI bus, but instead the radio registers are directly mapped into memory. ## Peripheral interfaces SPI and I2C According to the wiki, SPI and I2C pins are the following: | SPI | Original Pin Name | Map Pin Name | |:---- |:------------------|:-------------| | SS | PB4 | D10 | | MOSI | PB2 | D11 | | MISO | PB3 | D12 | | SCK | PB1 | D13 | | I2C | Original Pin Name | Map Pin Name | |:---- |:------------------|:-------------| | SDA | PD1 | D18 | | SCL | PD0 | D19 | # Flashing RIOT Flashing RIOT on the CoreRF is done using the SPI method. Using a cheap FT232H breakout board, connect the board as follows: | FT232H | Microduino CoreRF | |:------ |:----------------- | | D0 | D13 (SCK) | | D1 | D11 (MOSI) | | D2 | D12 (MISO) | | D3 | RST (Reset) | | 3.3V | 3.3V | | GND | GND | Now you can simply type `make flash BOARD=microduino-corerf` This should take care of everything! You will need a separate adapter for UART: | FT232R | Microduino CoreRF | |:------ |:----------------- | | TX | D0 | | RX | D1 | # Troubleshooting ## 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. */