From b67de309a42ad6a3de4e71aea2ad3e24ffeaf707 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Wed, 26 Jan 2022 18:43:17 +0100 Subject: [PATCH] boards/samr34-xpro: add doc.txt --- boards/samr34-xpro/doc.txt | 40 +++++++++++++++++++++++ boards/samr34-xpro/include/board.h | 52 ++++++++++++++---------------- 2 files changed, 65 insertions(+), 27 deletions(-) create mode 100644 boards/samr34-xpro/doc.txt diff --git a/boards/samr34-xpro/doc.txt b/boards/samr34-xpro/doc.txt new file mode 100644 index 0000000000..7c92e0f2c4 --- /dev/null +++ b/boards/samr34-xpro/doc.txt @@ -0,0 +1,40 @@ +/** +@defgroup boards_samr34-xpro Microchip SAM R34 Xplained Pro +@ingroup boards +@brief Support for the Microchip SAM R34 Xplained Pro and WLR089 Xplained Pro + +## Overview + +The `SAMR34 Xplained Pro` is a compact evaluation board by Microchip featuring a +SAMR34J18 SoC. The SoC includes a SAML21 ARM Cortex-M0+ micro-controller +bundled with Semtech's SX1276, a 868/915 MHz LoRa compatible radio. +For programming the MCU comes with 40Kb of RAM and 256Kb of flash memory. + +## Hardware + +![samr34-xpro image](https://www.microchip.com/content/dam/mchp/mrt-dam/devtools/3072-180605-wpd-dm320111-2.jpg) + +An evaluation board for the radio certified WLR089 module exists as the WLR089 Xplained Pro, it is compatible with the `samr34-xpro`. + +![wlr089-xpro](https://www.microchip.com/content/dam/mchp/mrt-dam/devtools/3411-264438-1598368489-c14679-200616-wsg-ev23m25a-wlr089-explained-pro-evaluation-board.jpg) + + +### MCU +| MCU | SAMR34J18B | +|:---------- |:--------------------- | +| Family | ARM Cortex-M0+ | +| Vendor | Atmel | +| RAM | 32 kiB + 8 kiB battery RAM | +| Flash | 256 KiB | +| Frequency | up to 48MHz | +| FPU | no | +| Timers | 6 (3xTC (8,16,32 bit), 3xTCC (16 bit)) | +| ADCs | 1x 12-bit (8 channels)| +| UARTs | max 5 (shared with SPI and I2C) | +| SPIs | max 5 (see UART) | +| I2Cs | max 5 (see UART) | +| Vcc | 1.8V - 3.6V | +| Datasheet | [Datasheet](https://ww1.microchip.com/downloads/en/DeviceDoc/SAMR34-R35-Low-Power-LoRa-Sub-GHz-SiP-Data-Sheet-DS70005356B.pdf) | +| Board Manual | [SAM R34 XPro](https://www.microchip.com/en-us/development-tool/DM320111)
[WLR089 XPro](https://www.microchip.com/en-us/development-tool/EV23M25A)| + + */ diff --git a/boards/samr34-xpro/include/board.h b/boards/samr34-xpro/include/board.h index 80ada8ac1e..e2473d8fb9 100644 --- a/boards/samr34-xpro/include/board.h +++ b/boards/samr34-xpro/include/board.h @@ -7,9 +7,7 @@ */ /** - * @defgroup boards_samr34-xpro Microchip SAM R34 Xplained Pro - * @ingroup boards - * @brief Support for the Microchip SAM R34 Xplained Pro board. + * @ingroup boards_samr34-xpro * @{ * * @file @@ -32,50 +30,50 @@ extern "C" { * @name Semtech SX1276 configuration * @{ */ -#define SX127X_PARAM_SPI (SPI_DEV(0)) -#define SX127X_PARAM_SPI_NSS GPIO_PIN(1, 31) /* D10 */ -#define SX127X_PARAM_RESET GPIO_PIN(1, 15) /* A0 */ -#define SX127X_PARAM_DIO0 GPIO_PIN(1, 16) /* D2 */ -#define SX127X_PARAM_DIO1 GPIO_PIN(0, 11) /* D3 */ -#define SX127X_PARAM_DIO2 GPIO_PIN(0, 12) /* D4 */ -#define SX127X_PARAM_DIO3 GPIO_PIN(1, 17) /* D5 */ -#define SX127X_PARAM_PASELECT (SX127X_PA_RFO) +#define SX127X_PARAM_SPI SPI_DEV(0) /**< internal SPI */ +#define SX127X_PARAM_SPI_NSS GPIO_PIN(1, 31) /**< D10 */ +#define SX127X_PARAM_RESET GPIO_PIN(1, 15) /**< A0 */ +#define SX127X_PARAM_DIO0 GPIO_PIN(1, 16) /**< D2 */ +#define SX127X_PARAM_DIO1 GPIO_PIN(0, 11) /**< D3 */ +#define SX127X_PARAM_DIO2 GPIO_PIN(0, 12) /**< D4 */ +#define SX127X_PARAM_DIO3 GPIO_PIN(1, 17) /**< D5 */ +#define SX127X_PARAM_PASELECT SX127X_PA_RFO /**< no boost */ /** @}*/ /** * @name Board specific configuration * @{ */ -#define TCXO_PWR_PIN GPIO_PIN(PA, 9) -#define TX_OUTPUT_SEL_PIN GPIO_PIN(PA, 13) +#define TCXO_PWR_PIN GPIO_PIN(PA, 9) /**< 32 MHz oscillator for radio enable */ +#define TX_OUTPUT_SEL_PIN GPIO_PIN(PA, 13) /**< BAND_SEL */ /** @}*/ /** * @name LED pin definitions and handlers * @{ */ -#define LED_PORT PORT->Group[0] +#define LED_PORT PORT->Group[0] /**< GPIO port */ -#define LED0_PIN GPIO_PIN(PA, 18) -#define LED0_MASK (1 << 18) -#define LED0_ON (LED_PORT.OUTCLR.reg = LED0_MASK) -#define LED0_OFF (LED_PORT.OUTSET.reg = LED0_MASK) -#define LED0_TOGGLE (LED_PORT.OUTTGL.reg = LED0_MASK) +#define LED0_PIN GPIO_PIN(PA, 18) /**< GPIO pin */ +#define LED0_MASK (1 << 18) /**< GPIO pin mask */ +#define LED0_ON (LED_PORT.OUTCLR.reg = LED0_MASK) /**< enable LED */ +#define LED0_OFF (LED_PORT.OUTSET.reg = LED0_MASK) /**< disable LED */ +#define LED0_TOGGLE (LED_PORT.OUTTGL.reg = LED0_MASK) /**< toggle LED */ -#define LED1_PIN GPIO_PIN(PA, 19) -#define LED1_MASK (1 << 19) -#define LED1_ON (LED_PORT.OUTCLR.reg = LED1_MASK) -#define LED1_OFF (LED_PORT.OUTSET.reg = LED1_MASK) -#define LED1_TOGGLE (LED_PORT.OUTTGL.reg = LED1_MASK) +#define LED1_PIN GPIO_PIN(PA, 19) /**< GPIO pin */ +#define LED1_MASK (1 << 19) /**< GPIO pin mask */ +#define LED1_ON (LED_PORT.OUTCLR.reg = LED1_MASK) /**< enable LED */ +#define LED1_OFF (LED_PORT.OUTSET.reg = LED1_MASK) /**< disable LED */ +#define LED1_TOGGLE (LED_PORT.OUTTGL.reg = LED1_MASK) /**< toggle LED */ /** @} */ /** * @name BTN0 (SW0 Button) pin definitions * @{ */ -#define BTN0_PORT PORT->Group[0] -#define BTN0_PIN GPIO_PIN(PA, 28) -#define BTN0_MODE GPIO_IN_PU +#define BTN0_PORT PORT->Group[0] /**< GPIO port */ +#define BTN0_PIN GPIO_PIN(PA, 28) /**< GPIO pin */ +#define BTN0_MODE GPIO_IN_PU /**< Pull Up GPIO */ /** @} */ /**