/**
 * @defgroup    boards_lora-e5-dev LoRa-E5 Development Board - STM32WLE5JC
 * @ingroup     boards
 * @brief       Support for the LoRa-E5 Development Board - STM32WLE5JC.
 *
 * @warning     This BOARD comes with arduino style pin headers, but the gpio
 *              mapping does not map to arduino BOARDs, even 3.3V and 5V pins
 *              are placed differently, so don't use arduino expansion-boards
 *              since these might short-circuit the mcu and/or expansion-board.
 *
 * The LoRa-E5 Dev Board is an evaluation board for the Seeed Studio LoRa-E5 STM32WLE5JC
 * module. The cpu includes a radio supporting multiple LPWAN protocols in the
 * 868/915 MHz frequency bands, including LoRa, capable of 20.8dBm output at 3.3V.
 *
 * Convenient interfaces as Grove and RS-485 are mapped out, and the many pins
 * map most of the modules GPIOs. But watch out! Although it features
 * Arduino style pin headers, they are not arduino compatible.
 *
 * The board also includes a JST battery connector as well as control over the
 * external power lines which can be enabled or disabled by software.
 *
 *  ### MCU
 *
 * | MCU        |   STM32WL5EJC                                             |
 * |:---------- |:--------------------------------------------------------- |
 * | Family     | ARM Cortex-M4                                             |
 * | Vendor     | ST Microelectronics                                       |
 * | RAM        | 64KiB                                                     |
 * | Flash      | 256KiB                                                    |
 * | Frequency  | up to 48MHz                                               |
 * | FPU        | no                                                        |
 * | Vcc        | 1.8 V - 3.6V                                              |
 * | Datasheet  | [Datasheet](https://files.seeedstudio.com/products/317990687/res/STM32WLE5JC%20Datasheet.pdf) |
 * | Reference Manual | [Reference Manual](https://www.st.com/resource/en/reference_manual/rm0461-stm32wlex-advanced-armbased-32bit-mcus-with-subghz-radio-solution-stmicroelectronics.pdf) |
 * | Board Manual   | [Board Manual](https://www.st.com/resource/en/data_brief/nucleo-wl55jc.pdf) |
 * | Board Schematic | [Board Schematic](https://files.seeedstudio.com/products/113990934/LoRa-E5%20Dev%20Board%20v1.0.pdf) |
 * | LoRa-E5 STM32WL5EJC Module wiki | https://wiki.seeedstudio.com/LoRa-E5_STM32WLE5JC_Module/#2-develop-with-stm32cube-mcu-package |
 *
 *
 * ### Pinout
 *
 * ![lora-e5-dev](https://files.seeedstudio.com/wiki/LoRa-E5_Development_Kit/hardware%20overview/4071615359366_.pic_hd.jpg)
 *
 * The default Peripheral Mapping is specified [here](https://github.com/RIOT-OS/RIOT/blob/master/boards/lora-e5-dev/include/periph_conf.h)
 *
 * ### Board Interface
 *
 * 3 Buttons:
 *
 * | NAME   | BOOT     | D0        | RESET |
 * |:------ |:---------|:--------- |:----- |
 * | Pin    | PA0 (IN) | PB13 (IN) | NRST  |
 *
 * 1 LED:
 *
 * | NAME   | D5    |
 * | -----  | ----- |
 * | Color  | red   |
 * | Pin    | PB5   |
 *
 * ### Power Lines
 *
 * All power lines are on by default, but some of them can optionally be disabled,
 * namely 3.3V and 5V. These feed all external pins as well as the internal LM75A,
 * more details are available on the schematic.
 *
 * | Name | Controlled By | Alias                       |
 * |:---- |:------------- |:--------------------------- |
 * | 3.3V | PA9           | LORA_E5_DEV_3P3V_ENABLE_PIN |
 * | 3.3V | PB10          | LORA_E5_DEV_5V_ENABLE_PIN   |
 * |      |               |                             |
 *
 * ### Flashing
 *
 * #### Disabling Read Protection
 *
 * The board comes pre-flashed with a DFU bootloader, an AT command Firmware
 * and read protection enabled and set to 1. So before being able to program anything
 * else, read protection needs to be set back to level 0.
 *
 * The easiest way of doing this is with the [STM32CubeProgramer](https://www.st.com/en/development-tools/stm32cubeprog.html)
 * GUI and setting the RDP option byte to `AA`
 *
 * ![LoRa-E5 STM32CubeProgramer1](https://files.seeedstudio.com/wiki/LoRa-E5_Development_Kit/wiki%20images/program1.png)
 * ![LoRa-E5 STM32CubeProgramer2](https://files.seeedstudio.com/wiki/LoRa-E5_Development_Kit/wiki%20images/program2.png)
 *
 * Alternatively you can use the STM32_Programer_CLI:
 *
 * ```
 *   $ STM32_Programmer_CLI --connect port=swd --readunprotect
 * ```
 *
 * #### Programming with an external ST-LINK
 *
 * Since there is no ST-LINK programmer on the board an external one
 * needs to be connected. Any Nucleo or STM32Discovery board can be used for this
 * by simply removing the ST-LINK jumpers and connecting on the CN4 headers
 * (see [UM1724 6.2.4](https://www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf)
 * for more details). An example is seen in the following image:
 *
 * ![LoRa-E5 Dev ST-LINK](https://stm32python.gitlab.io/fr-version-lora/site/assets/images/lora/seeestudio_lora_e5_dev_connection.png)
 *
 * ```
 *      CN4                                       LoRa-E5 Dev
 *                                            (Dark Blue Header)
 * Pin 1: VDD_TARGET            N/C
 * Pin 2: SWCLK      ---->  Yellow Cable ---->       CLK
 * Pin 3: GND        ---->  Black Cable  ---->       GND
 * Pin 4: SWDIO      ---->  Blue Cable   ---->       DIO
 * Pin 5: NRST                  N/C
 * Pin 6: SWO                   N/C
 * ```
 *
 * Flashing can then be performed seamlessly with OpenOCD:
 *
 * ```
 * BOARD=lora-e5-dev make flash
 * ```
 *
 * ### Serial connection
 *
 * The default serial connection is through the USB-C port mapping to PB7 (RX) and
 * PB6 (TX) UART pins (a second UART and an LPUART interface is also exposed).
 *
 * ```
 * BOARD=lora-e5-dev make term
 * ```
 *
 * ### Debugging
 *
 * For Debugging an external programmer is required, connected as depicted in
 * the above picture, then the debugger can be attached with:
 *
 * ```
 * BOARD=lora-e5-dev make debug
 * ```
 *
 * ### LoRa
 *
 * This board comes embedded with an `sx126x` based LoRa radio. The precise
 * module that needs to be selected is `USEMODULE += sx126x_stm32wl`, this
 * is also selected with `USEMODULE += netdev_default`.
 *
 * Differently from other `stm32wl` chips this module only transmits through
 * `RFO_HP`.
 *
 * ### Sensors
 *
 * This board includes a @ref drivers_lm75 temperature sensor. It can be
 * included with `USEMODULE += lm75a` or through `USEMODULE += saul_default`.
 *
 */
