1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-19 03:23:49 +01:00

147 lines
6.0 KiB
Markdown

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