206 lines
5.8 KiB
ReStructuredText
206 lines
5.8 KiB
ReStructuredText
.. _96b_wistrio:
|
|
|
|
96Boards WisTrio
|
|
#################
|
|
|
|
Overview
|
|
********
|
|
|
|
96Boards WisTrio LoRa Tracker board is based on the RAK Wireless RAK5205
|
|
chipset integrating SX1276 LoRaWAN Modem, STM32L151CB-A MCU and GPS module.
|
|
Zephyr applications use the 96b_wistrio configuration to run on these
|
|
boards.
|
|
|
|
.. figure:: img/96b-wistrio.jpg
|
|
:align: center
|
|
:alt: 96Boards WisTrio
|
|
|
|
96Boards WisTrio
|
|
|
|
This board is one of the `96Boards IoT Edition`_ platforms providing LoRa
|
|
connectivity.
|
|
|
|
Hardware
|
|
********
|
|
|
|
96Boards WisTrio provides the following hardware components:
|
|
|
|
- RAK5205 Chipset
|
|
- 3.3V work voltage
|
|
- 128 KB Flash
|
|
- 16 KB SRAM
|
|
- On board sensors:
|
|
|
|
- Accelerometer: STMicro LIS3DH
|
|
- Integrated Environmental sensor: Bosch BME680
|
|
|
|
- 2 User LEDs
|
|
- GPIO with external interrupt capability
|
|
- UART (2)
|
|
- I2C (1)
|
|
- GPS Module
|
|
- GPS Antenna
|
|
- LoRa Antenna
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
The Zephyr 96b_wistrio board configuration supports the following hardware
|
|
features:
|
|
|
|
+-----------+------------+-------------------------------------+
|
|
| Interface | Controller | Driver/Component |
|
|
+===========+============+=====================================+
|
|
| NVIC | on-chip | nested vector interrupt controller |
|
|
+-----------+------------+-------------------------------------+
|
|
| SYSTICK | on-chip | system clock |
|
|
+-----------+------------+-------------------------------------+
|
|
| UART | on-chip | serial port |
|
|
+-----------+------------+-------------------------------------+
|
|
| GPIO | on-chip | gpio |
|
|
+-----------+------------+-------------------------------------+
|
|
| PINMUX | on-chip | pinmux |
|
|
+-----------+------------+-------------------------------------+
|
|
| I2C | on-chip | i2c |
|
|
+-----------+------------+-------------------------------------+
|
|
| SPI | on-chip | spi |
|
|
+-----------+------------+-------------------------------------+
|
|
| RTC | on-chip | rtc |
|
|
+-----------+------------+-------------------------------------+
|
|
| EEPROM | on-chip | eeprom |
|
|
+-----------+------------+-------------------------------------+
|
|
|
|
The default board configuration can be found in
|
|
:zephyr_file:`boards/96boards/wistrio/96b_wistrio_defconfig`
|
|
|
|
Connections and IOs
|
|
===================
|
|
|
|
LED
|
|
---
|
|
|
|
- LED1 / User1 LED = PA12
|
|
- LED2 / User2 LED = PB4
|
|
|
|
Push buttons
|
|
------------
|
|
|
|
- BUTTON = RST (BT1)
|
|
|
|
Serial Port
|
|
===========
|
|
|
|
96Boards WisTrio board has 2 UARTs. Zephyr console output is assigned
|
|
to USART1 with 115200 8N1 as the default setting and USART3 is used for
|
|
GPS module.
|
|
|
|
I2C
|
|
---
|
|
|
|
96Boards WisTrio board has 1 I2C connected to on-board sensors.
|
|
The default I2C mapping is:
|
|
|
|
- I2C1_SCL : PB8
|
|
- I2C1_SDA : PB9
|
|
|
|
I2C1 also goes to the J22 connector and can be used to attach external
|
|
sensors.
|
|
|
|
SPI
|
|
---
|
|
|
|
96Boards WisTrio board has 1 SPI connected to on-chip LoRa Radio.
|
|
The default SPI mapping is:
|
|
|
|
- SPI1_SCLK : PA5
|
|
- SPI1_MISO : PA6
|
|
- SPI1_MOSI : PA7
|
|
- SPI1_NSS : PB0
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
Flashing
|
|
========
|
|
|
|
96Boards WisTrio can be flashed by two methods, one using the ROM
|
|
bootloader and another using the SWD debug port (which requires additional
|
|
hardware).
|
|
|
|
Flashing using the ROM bootloader requires a special activation pattern,
|
|
which can be triggered by using the BOOT0 pin. The ROM bootloader supports
|
|
flashing via UART, and I2C but this document describes the UART case only.
|
|
You can read more about how to enable and use the ROM bootloader by
|
|
checking the application note `AN2606`_ .
|
|
|
|
Using ROM bootloader:
|
|
---------------------
|
|
|
|
1. Connect 96Boards WisTrio to your Linux PC using, USB-Micro to USB-A
|
|
cable.
|
|
|
|
2. ROM bootloader can be triggered by the following pattern:
|
|
|
|
- Connect BOOT0 to VDD (link pin 1 and 2 on J12)
|
|
- Press and release the RST button
|
|
|
|
More detailed information on activating the ROM bootloader can be found in
|
|
Chapter 29 of Application note `AN2606`_. The ROM bootloader supports flashing
|
|
via UART, and I2C protocols.
|
|
|
|
Here is an example for building and flashing the :ref:`hello_world` application using `stm32flash`_ command line utility:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/hello_world
|
|
:board: 96b_wistrio
|
|
:goals: build flash
|
|
|
|
Using SWD debugger:
|
|
-------------------
|
|
|
|
Use the `Black Magic Debug Probe`_ as an SWD programmer, which can
|
|
be connected to the SWD pins exposed on the J22 header using its flying
|
|
leads and its 20 Pin JTAG Adapter Board Kit. When plugged into your host
|
|
PC, the Black Magic Debug Probe enumerates as a USB serial device as
|
|
documented on its `Getting started page`_.
|
|
|
|
It also uses the GDB binary provided with the Zephyr SDK,
|
|
``arm-zephyr-eabi-gdb``. Other GDB binaries, such as the GDB from GCC
|
|
ARM Embedded, can be used as well.
|
|
|
|
.. code-block:: console
|
|
|
|
$ arm-zephyr-eabi-gdb -q zephyr.elf
|
|
(gdb) target extended-remote /dev/ttyACM0
|
|
Remote debugging using /dev/ttyACM0
|
|
(gdb) monitor swdp_scan
|
|
Target voltage: 3.3V
|
|
Available Targets:
|
|
No. Att Driver
|
|
|
|
Debugging
|
|
=========
|
|
|
|
After flashing 96Boards WisTrio, it can be debugged using the same
|
|
GDB instance. To reattach, just follow the same steps above, till
|
|
"attach 1". You can then debug as usual with GDB. In particular, type
|
|
"run" at the GDB prompt to restart the program you've flashed.
|
|
|
|
References
|
|
**********
|
|
|
|
.. _AN2606:
|
|
https://www.st.com/resource/en/application_note/cd00167594.pdf
|
|
|
|
.. _stm32flash:
|
|
https://sourceforge.net/p/stm32flash/wiki/Home/
|
|
|
|
.. _Black Magic Debug Probe:
|
|
https://github.com/blacksphere/blackmagic/wiki
|
|
|
|
.. _Getting started page:
|
|
https://github.com/blacksphere/blackmagic/wiki/Getting-Started
|
|
|
|
.. _96Boards IoT Edition:
|
|
https://linaro.co/ie-specification
|