blob: a6f1c281d3c8e8a8793b80f752d657aee55cdb34 [file] [log] [blame]
.. _efr32bg22_brd4184:
SiLabs EFR32BG22-BRD4184(A/B) (Thunderboard EFR32BG22)
######################################################
BRD4184 is a board based on EFR32BG22 SoC and is one of
:ref:`efr32_thunderboard`. It comes in two revisions, which differ from each
other slightly: BRD4184A and BRD4184B.
.. image:: ./efr32bg_sltb010a.jpg
:align: center
:alt: EFR32BG-SLTB010A
Hardware
********
- EFR32BG22 Blue Gecko Wireless SoC with upto 76.8 MHz operating frequency
- ARM® Cortex® M33 core with 32 kB RAM and 512 kB Flash
- Macronix ultra low power 8-Mbit SPI flash (MX25R8035F)
- 2.4 GHz ceramic antenna for wireless transmission
- Silicon Labs Si7021 relative humidity and temperature sensor
- Silicon Labs Si1133 UV index and ambient light sensor (EFR32BG22-BRD4184A)
- Vishay VEML6035 ambient light sensor (EFR32BG22-BRD4184B)
- Silicon Labs Si7210 hall effect sensor
- TDK InvenSense ICM-20648 6-axis inertial sensor
- Two Knowles SPK0641HT4H-1 MEMS microphones with PDM output (EFR32BG22-BRD4184B)
- One LED and one push button
- Power enable signals and isolation switches for ultra low power operation
- On-board SEGGER J-Link debugger for easy programming and debugging, which
includes a USB virtual COM port and Packet Trace Interface (PTI)
- Mini Simplicity connector for access to energy profiling and advanced wireless
network debugging
- Breakout pads for GPIO access and connection to external hardware
- Reset button
- Automatic switch-over between USB and battery power
- CR2032 coin cell holder and external battery connector
For more information about the EFR32BG SoC and Thunderboard EFR32BG22 board:
- `EFR32BG22 Website`_
- `EFR32BG22 Datasheet`_
- `EFR32xG22 Reference Manual`_
- `Thunderboard EFR32BG22 Website`_
- `EFR32BG22-BRD4184A User Guide`_
- `EFR32BG22-BRD4184B User Guide`_
- `EFR32BG22-BRD4184A Schematics`_
- `EFR32BG22-BRD4184B Schematics`_
Supported Features
==================
The efr32bg22_brd4184a/b board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component |
+===========+============+=====================================+
| MPU | on-chip | memory protection unit |
+-----------+------------+-------------------------------------+
| NVIC | on-chip | nested vector interrupt controller |
+-----------+------------+-------------------------------------+
| SYSTICK | on-chip | systick |
+-----------+------------+-------------------------------------+
| COUNTER | on-chip | stimer |
+-----------+------------+-------------------------------------+
| SPI(M/S) | on-chip | spi |
+-----------+------------+-------------------------------------+
| FLASH | on-chip | flash memory |
+-----------+------------+-------------------------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
| WATCHDOG | on-chip | watchdog |
+-----------+------------+-------------------------------------+
| TRNG | on-chip | true random number generator |
+-----------+------------+-------------------------------------+
| I2C(M/S) | on-chip | i2c |
+-----------+------------+-------------------------------------+
| RADIO | on-chip | bluetooth |
+-----------+------------+-------------------------------------+
The default configuration can be found in
:zephyr_file:`boards/silabs/efr32_thunderboard/efr32bg22_brd4184a_defconfig`
and
:zephyr_file:`boards/silabs/efr32_thunderboard/efr32bg22_brd4184b_defconfig`
Connections and IOs
===================
The EFR32BG SoC has six gpio controllers (PORTA, PORTB, PORTC, PORTD,
PORTE and PORTF).
In the following tables, the column Name contains Pin names. For example, PE2
means Pin number 2 on PORTE and #27 represents the location bitfield, as used
in the board's and microcontroller's datasheets and manuals.
There are two variants of this board, "A" and "B". Please take a look at your PCB,
to determine which one you have, as the GPIO pin bindings vary between those two.
BRD4184A:
+------+-------------+-----------------------------------+
| Name | Function | Usage |
+======+=============+===================================+
| PB0 | GPIO | LED0 (YELLOW) |
+------+-------------+-----------------------------------+
| PB1 | GPIO | SW0 Push Button PB0 |
+------+-------------+-----------------------------------+
| PA5 | UART_TX | UART TX Console VCOM_TX US1_TX #1 |
+------+-------------+-----------------------------------+
| PA6 | UART_RX | UART RX Console VCOM_RX US1_RX #1 |
+------+-------------+-----------------------------------+
BRD4184B:
+------+-------------+-----------------------------------+
| Name | Function | Usage |
+======+=============+===================================+
| PA4 | GPIO | LED0 (YELLOW) |
+------+-------------+-----------------------------------+
| PB3 | GPIO | SW0 Push Button PB0 |
+------+-------------+-----------------------------------+
| PA5 | UART_TX | UART TX Console VCOM_TX US1_TX #1 |
+------+-------------+-----------------------------------+
| PA6 | UART_RX | UART RX Console VCOM_RX US1_RX #1 |
+------+-------------+-----------------------------------+
System Clock
============
The EFR32BG SoC is configured to use the 38.4 MHz external oscillator on the
board.
Programming and Debugging
=========================
Flashing an application
-----------------------
Connect your device to your host computer using the USB port.
The sample application :ref:`hello_world` is used for this example.
Build the Zephyr kernel and application, then flash it to the device:
BRD4184A:
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: efr32bg22_brd4184a
:goals: flash
BRD4184B:
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: efr32bg22_brd4184b
:goals: flash
.. note::
`west flash` requires `SEGGER J-Link software`_ to be installed on you host
computer.
Open a serial terminal (minicom, putty, etc.) with the following settings:
- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1
Reset the board and you should be able to see on the corresponding Serial Port
the following message:
.. code-block:: console
Hello World! efr32bg22_brd4184
Bluetooth
=========
To use the BLE function, run the command below to retrieve necessary binary
blobs from the SiLabs HAL repository.
.. code-block:: console
west blobs fetch silabs
Then build the Zephyr kernel and a Bluetooth sample with the following
command. The :ref:`bluetooth-observer-sample` sample application is used in
this example.
BRD4184A:
.. zephyr-app-commands::
:zephyr-app: samples/bluetooth/observer
:board: efr32bg22_brd4184a
:goals: build
BRD4184B:
.. zephyr-app-commands::
:zephyr-app: samples/bluetooth/observer
:board: efr32bg22_brd4184b
:goals: build
.. _Thunderboard EFR32BG22 Website:
https://www.silabs.com/development-tools/thunderboard/thunderboard-bg22-kit
.. _EFR32BG22-BRD4184A User Guide:
https://www.silabs.com/documents/public/user-guides/ug415-sltb010a-user-guide.pdf
.. _EFR32BG22-BRD4184B User Guide:
https://www.silabs.com/documents/public/user-guides/ug464-brd4184b-user-guide.pdf
.. _EFR32BG22-BRD4184A Schematics:
https://www.silabs.com/documents/public/schematic-files/BRD4184A-A01-schematic.pdf
.. _EFR32BG22-BRD4184B Schematics:
https://www.silabs.com/documents/public/schematic-files/BRD4184B-A02-schematic.pdf
.. _EFR32BG22 Website:
https://www.silabs.com/wireless/bluetooth/efr32bg22-series-2-socs
.. _EFR32BG22 Datasheet:
https://www.silabs.com/documents/public/data-sheets/efr32bg22-datasheet.pdf
.. _EFR32xG22 Reference Manual:
https://www.silabs.com/documents/public/reference-manuals/efr32xg22-rm.pdf
.. _SEGGER J-Link software:
https://www.segger.com/downloads/jlink