1.. _efr32bg22_brd4184:
2
3SiLabs EFR32BG22-BRD4184(A/B) (Thunderboard EFR32BG22)
4######################################################
5
6BRD4184 is a board based on EFR32BG22 SoC and is one of
7:ref:`efr32_thunderboard`. It comes in two revisions, which differ from each
8other slightly: BRD4184A and BRD4184B.
9
10.. image:: ./efr32bg_sltb010a.jpg
11   :align: center
12   :alt: EFR32BG-SLTB010A
13
14Hardware
15********
16
17- EFR32BG22 Blue Gecko Wireless SoC with upto 76.8 MHz operating frequency
18- ARM® Cortex® M33 core with 32 kB RAM and 512 kB Flash
19- Macronix ultra low power 8-Mbit SPI flash (MX25R8035F)
20- 2.4 GHz ceramic antenna for wireless transmission
21- Silicon Labs Si7021 relative humidity and temperature sensor
22- Silicon Labs Si1133 UV index and ambient light sensor (EFR32BG22-BRD4184A)
23- Vishay VEML6035 ambient light sensor (EFR32BG22-BRD4184B)
24- Silicon Labs Si7210 hall effect sensor
25- TDK InvenSense ICM-20648 6-axis inertial sensor
26- Two Knowles SPK0641HT4H-1 MEMS microphones with PDM output (EFR32BG22-BRD4184B)
27- One LED and one push button
28- Power enable signals and isolation switches for ultra low power operation
29- On-board SEGGER J-Link debugger for easy programming and debugging, which
30  includes a USB virtual COM port and Packet Trace Interface (PTI)
31- Mini Simplicity connector for access to energy profiling and advanced wireless
32  network debugging
33- Breakout pads for GPIO access and connection to external hardware
34- Reset button
35- Automatic switch-over between USB and battery power
36- CR2032 coin cell holder and external battery connector
37
38For more information about the EFR32BG SoC and Thunderboard EFR32BG22 board:
39
40- `EFR32BG22 Website`_
41- `EFR32BG22 Datasheet`_
42- `EFR32xG22 Reference Manual`_
43- `Thunderboard EFR32BG22 Website`_
44- `EFR32BG22-BRD4184A User Guide`_
45- `EFR32BG22-BRD4184B User Guide`_
46- `EFR32BG22-BRD4184A Schematics`_
47- `EFR32BG22-BRD4184B Schematics`_
48
49Supported Features
50==================
51
52The efr32bg22_brd4184a/b board configuration supports the following hardware features:
53
54+-----------+------------+-------------------------------------+
55| Interface | Controller | Driver/Component                    |
56+===========+============+=====================================+
57| MPU       | on-chip    | memory protection unit              |
58+-----------+------------+-------------------------------------+
59| NVIC      | on-chip    | nested vector interrupt controller  |
60+-----------+------------+-------------------------------------+
61| SYSTICK   | on-chip    | systick                             |
62+-----------+------------+-------------------------------------+
63| COUNTER   | on-chip    | stimer                              |
64+-----------+------------+-------------------------------------+
65| SPI(M/S)  | on-chip    | spi                                 |
66+-----------+------------+-------------------------------------+
67| FLASH     | on-chip    | flash memory                        |
68+-----------+------------+-------------------------------------+
69| GPIO      | on-chip    | gpio                                |
70+-----------+------------+-------------------------------------+
71| UART      | on-chip    | serial                              |
72+-----------+------------+-------------------------------------+
73| WATCHDOG  | on-chip    | watchdog                            |
74+-----------+------------+-------------------------------------+
75| TRNG      | on-chip    | true random number generator        |
76+-----------+------------+-------------------------------------+
77| I2C(M/S)  | on-chip    | i2c                                 |
78+-----------+------------+-------------------------------------+
79| RADIO     | on-chip    | bluetooth                           |
80+-----------+------------+-------------------------------------+
81
82The default configuration can be found in the defconfig files:
83- ``boards/arm/efr32_thunderboard/efr32bg22_brd4184a_defconfig``
84- ``boards/arm/efr32_thunderboard/efr32bg22_brd4184b_defconfig``
85
86Connections and IOs
87===================
88
89The EFR32BG SoC has six gpio controllers (PORTA, PORTB, PORTC, PORTD,
90PORTE and PORTF).
91
92In the following tables, the column Name contains Pin names. For example, PE2
93means Pin number 2 on PORTE and #27 represents the location bitfield, as used
94in the board's and microcontroller's datasheets and manuals.
95
96There are two variants of this board, "A" and "B". Please take a look at your PCB,
97to determine which one you have, as the GPIO pin bindings vary between those two.
98
99BRD4184A:
100
101+------+-------------+-----------------------------------+
102| Name | Function    | Usage                             |
103+======+=============+===================================+
104| PB0  | GPIO        | LED0 (YELLOW)                     |
105+------+-------------+-----------------------------------+
106| PB1  | GPIO        | SW0 Push Button PB0               |
107+------+-------------+-----------------------------------+
108| PA5  | UART_TX     | UART TX Console VCOM_TX US1_TX #1 |
109+------+-------------+-----------------------------------+
110| PA6  | UART_RX     | UART RX Console VCOM_RX US1_RX #1 |
111+------+-------------+-----------------------------------+
112
113BRD4184B:
114
115+------+-------------+-----------------------------------+
116| Name | Function    | Usage                             |
117+======+=============+===================================+
118| PA4  | GPIO        | LED0 (YELLOW)                     |
119+------+-------------+-----------------------------------+
120| PB3  | GPIO        | SW0 Push Button PB0               |
121+------+-------------+-----------------------------------+
122| PA5  | UART_TX     | UART TX Console VCOM_TX US1_TX #1 |
123+------+-------------+-----------------------------------+
124| PA6  | UART_RX     | UART RX Console VCOM_RX US1_RX #1 |
125+------+-------------+-----------------------------------+
126
127System Clock
128============
129
130The EFR32BG SoC is configured to use the 38.4 MHz external oscillator on the
131board.
132
133Programming and Debugging
134=========================
135
136Flashing an application
137-----------------------
138
139Connect your device to your host computer using the USB port.
140The sample application :ref:`hello_world` is used for this example.
141Build the Zephyr kernel and application, then flash it to the device:
142
143BRD4184A:
144
145.. zephyr-app-commands::
146   :zephyr-app: samples/hello_world
147   :board: efr32bg22_brd4184a
148   :goals: flash
149
150BRD4184B:
151
152.. zephyr-app-commands::
153   :zephyr-app: samples/hello_world
154   :board: efr32bg22_brd4184b
155   :goals: flash
156
157.. note::
158   `west flash` requires `SEGGER J-Link software`_ to be installed on you host
159   computer.
160
161Open a serial terminal (minicom, putty, etc.) with the following settings:
162
163- Speed: 115200
164- Data: 8 bits
165- Parity: None
166- Stop bits: 1
167
168Reset the board and you should be able to see on the corresponding Serial Port
169the following message:
170
171BRD4184A:
172
173.. code-block:: console
174
175   Hello World! efr32bg22_brd4184a
176
177BRD4184B:
178
179.. code-block:: console
180
181   Hello World! efr32bg22_brd4184b
182
183Bluetooth
184=========
185
186To use the BLE function, run the command below to retrieve necessary binary
187blobs from the SiLabs HAL repository.
188
189.. code-block:: console
190
191   west blobs fetch silabs
192
193Then build the Zephyr kernel and a Bluetooth sample with the following
194command. The :ref:`bluetooth-observer-sample` sample application is used in
195this example.
196
197BRD4184A:
198
199.. zephyr-app-commands::
200   :zephyr-app: samples/bluetooth/observer
201   :board: efr32bg22_brd4184a
202   :goals: build
203
204BRD4184B:
205
206.. zephyr-app-commands::
207   :zephyr-app: samples/bluetooth/observer
208   :board: efr32bg22_brd4184b
209   :goals: build
210
211
212.. _Thunderboard EFR32BG22 Website:
213   https://www.silabs.com/development-tools/thunderboard/thunderboard-bg22-kit
214
215.. _EFR32BG22-BRD4184A User Guide:
216   https://www.silabs.com/documents/public/user-guides/ug415-sltb010a-user-guide.pdf
217
218.. _EFR32BG22-BRD4184B User Guide:
219   https://www.silabs.com/documents/public/user-guides/ug464-brd4184b-user-guide.pdf
220
221.. _EFR32BG22-BRD4184A Schematics:
222   https://www.silabs.com/documents/public/schematic-files/BRD4184A-A01-schematic.pdf
223
224.. _EFR32BG22-BRD4184B Schematics:
225   https://www.silabs.com/documents/public/schematic-files/BRD4184B-A02-schematic.pdf
226
227.. _EFR32BG22 Website:
228   https://www.silabs.com/wireless/bluetooth/efr32bg22-series-2-socs
229
230.. _EFR32BG22 Datasheet:
231   https://www.silabs.com/documents/public/data-sheets/efr32bg22-datasheet.pdf
232
233.. _EFR32xG22 Reference Manual:
234   https://www.silabs.com/documents/public/reference-manuals/efr32xg22-rm.pdf
235
236.. _SEGGER J-Link software:
237   https://www.segger.com/downloads/jlink
238