Skip to content

Commit 6ca6b22

Browse files
yonschgalak
authored andcommitted
boards: Add support for Silicon Labs' BRD4255A Radio board
This commit adds support for Silicon Labs BRD4255A (a.k.a. SLWRB4255A) Flex Gecko Radio Board. Signed-off-by: Yonatan Schachter <[email protected]>
1 parent 1d9f0e3 commit 6ca6b22

File tree

9 files changed

+219
-1
lines changed

9 files changed

+219
-1
lines changed

boards/arm/efr32_radio/Kconfig.board

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# EFR32BG13 BRD4104A / EFR32MG21 BRD4180A board
1+
# EFR32BG13 BRD4104A / EFR32MG21 BRD4180A /
2+
# EFR32FG1P BRD4250B / EFR32FG13P BRD4255A board
23

34
# Copyright (c) 2020 Piotr Mienkowski
45
# Copyright (c) 2020 TriaGnoSys GmbH
@@ -21,3 +22,9 @@ config BOARD_EFR32_RADIO_BRD4180A
2122
depends on SOC_SERIES_EFR32MG21
2223
select BOARD_EFR32_RADIO
2324
select SOC_PART_NUMBER_EFR32MG21A020F1024IM32
25+
26+
config BOARD_EFR32_RADIO_BRD4255A
27+
bool "Silicon Labs BRD4255A (Flex Gecko Radio Board)"
28+
depends on SOC_SERIES_EFR32FG13P
29+
select BOARD_EFR32_RADIO
30+
select SOC_PART_NUMBER_EFR32FG13P233F512GM48

boards/arm/efr32_radio/Kconfig.defconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ config BOARD
1010
default "efr32_radio_brd4104a" if BOARD_EFR32_RADIO_BRD4104A
1111
default "efr32_radio_brd4250b" if BOARD_EFR32_RADIO_BRD4250B
1212
default "efr32_radio_brd4180a" if BOARD_EFR32_RADIO_BRD4180A
13+
default "efr32_radio_brd4255a" if BOARD_EFR32_RADIO_BRD4255A
1314

1415
config CMU_HFXO_FREQ
1516
default 38400000

boards/arm/efr32_radio/board.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ elseif(CONFIG_BOARD_EFR32_RADIO_BRD4250B)
88
board_runner_args(jlink "--device=EFR32FG1PxxxF256")
99
elseif(CONFIG_BOARD_EFR32_RADIO_BRD4180A)
1010
board_runner_args(jlink "--device=EFR32MG21AxxxF1024")
11+
elseif(CONFIG_BOARD_EFR32_RADIO_BRD4255A)
12+
board_runner_args(jlink "--device=EFR32FG13PxxxF512")
1113
endif()
1214

1315
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
.. _efr32_radio_brd4255a:
2+
3+
EFR32 BRD4255A (SLWRB4255A)
4+
###########################
5+
6+
Overview
7+
********
8+
9+
The EFR32FG13P Flex Gecko 2.4 GHz and 915 MHz Radio Board is delivered as a
10+
`standalone Proprietary Wireless radio board`_. It contains a EFR32FG13P Wireless
11+
SoC built on an ARM Cortex®-M4F processor with excellent low power capabilities.
12+
13+
.. figure:: ./efr32fg13-slwrb4255a.jpg
14+
:height: 262px
15+
:align: center
16+
:alt: SLWRB4255A Flex Gecko 2.4 GHz and 915 MHz Radio Board
17+
18+
SLWRB4255A (image courtesy of Silicon Labs)
19+
20+
The BRD4255A a.k.a. SLWRB4255A radio board plugs into the Wireless Starter Kit
21+
Mainboard BRD4001A and is supported as one of :ref:`efr32_radio`.
22+
23+
Hardware
24+
********
25+
26+
- EFR32FG13P233F512GM48 Flex Gecko SoC
27+
- CPU core: ARM Cortex®-M4 with FPU
28+
- Flash memory: 512 kB
29+
- RAM: 64 kB
30+
- Transmit power: up to 19 dBm
31+
- Operation frequency: 2.4 GHz, 915 MHz
32+
- Crystals for LFXO (32.768 kHz) and HFXO (38.4 MHz).
33+
34+
For more information about the EFR32FG13 SoC and BRD4255A board, refer to these
35+
documents:
36+
37+
- `EFR32FG13 Website`_
38+
- `EFR32FG13 Datasheet`_
39+
- `EFR32xG13 Reference Manual`_
40+
- `BRD4255A Reference Manual`_
41+
42+
Supported Features
43+
==================
44+
45+
Please refer to
46+
:ref:`EFR32 Radio Board Supported Features <efr32_radio_supported_features>`
47+
for details of the configuration and common features supported by the
48+
efr32_radio_brd4255a board.
49+
50+
The default configuration can be found in the defconfig file:
51+
52+
``boards/arm/efr32_radio/efr32_radio_brd4255a_defconfig``
53+
54+
System Clock
55+
============
56+
57+
The EFR32FG13P SoC is configured to use the 38.4 MHz external oscillator on the
58+
board.
59+
60+
Serial Port
61+
===========
62+
63+
The EFR32FG13P SoC has three USARTs and one Low Energy UARTs (LEUART).
64+
USART0 is connected to the board controller and is used for the console.
65+
66+
Programming and Debugging
67+
*************************
68+
69+
Please refer to
70+
:ref:`Programming and Debugging EFR32 Radio Board <efr32_radio_programming>`
71+
for details on the supported debug interfaces.
72+
73+
Flashing
74+
========
75+
76+
Connect the BRD4001A board with a mounted BRD4255A radio module to your host
77+
computer using the USB port.
78+
79+
Here is an example for the :ref:`hello_world` application.
80+
81+
.. zephyr-app-commands::
82+
:zephyr-app: samples/hello_world
83+
:board: efr32_radio_brd4255a
84+
:goals: flash
85+
86+
Open a serial terminal (minicom, putty, etc.) with the following settings:
87+
88+
- Speed: 115200
89+
- Data: 8 bits
90+
- Parity: None
91+
- Stop bits: 1
92+
93+
Reset the board and you should see the following message in the terminal:
94+
95+
.. code-block:: console
96+
97+
Hello World! efr32_radio_brd4255a
98+
99+
100+
.. _EFR32FG13 Website:
101+
https://www.silabs.com/wireless/proprietary/efr32fg13-series-1-sub-ghz-2-4-ghz-socs
102+
103+
.. _EFR32FG13 Datasheet:
104+
https://www.silabs.com/documents/public/data-sheets/efr32fg13-datasheet.pdf
105+
106+
.. _EFR32xG13 Reference Manual:
107+
https://www.silabs.com/documents/public/reference-manuals/efr32xg13-rm.pdf
108+
109+
.. _standalone Proprietary Wireless radio board:
110+
https://www.silabs.com/development-tools/wireless/proprietary/slwrb4255a-efr32fg13-915-mhz-radio-board
111+
112+
.. _BRD4255A Reference Manual:
113+
https://www.silabs.com/documents/public/reference-manuals/brd4255a-rm.pdf
15.5 KB
Loading

boards/arm/efr32_radio/doc/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ EFR32 Radio Boards
99
brd4104a.rst
1010
brd4250b.rst
1111
brd4180a.rst
12+
brd4255a.rst
1213

1314
Overview
1415
********
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* Copyright (c) 2020 Piotr Mienkowski
3+
* Copyright (c) 2021 Yonatan Schachter
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/dts-v1/;
9+
#include <silabs/efr32fg13p233f512gm48.dtsi>
10+
#include "efr32_radio.dtsi"
11+
12+
/ {
13+
model = "Silicon Labs BRD4255A (Flex Gecko Radio Board)";
14+
compatible = "silabs,efr32_radio_brd4255a", "silabs,efr32fg13p";
15+
};
16+
17+
&cpu0 {
18+
clock-frequency = <38400000>;
19+
};
20+
21+
&flash0 {
22+
partitions {
23+
compatible = "fixed-partitions";
24+
#address-cells = <1>;
25+
#size-cells = <1>;
26+
27+
/* Reserve 32 kB for the bootloader */
28+
boot_partition: partition@0 {
29+
label = "mcuboot";
30+
reg = <0x0 0x00008000>;
31+
read-only;
32+
};
33+
34+
/* Reserve 220 kB for the application in slot 0 */
35+
slot0_partition: partition@8000 {
36+
label = "image-0";
37+
reg = <0x0008000 0x00037000>;
38+
};
39+
40+
/* Reserve 220 kB for the application in slot 1 */
41+
slot1_partition: partition@3f000 {
42+
label = "image-1";
43+
reg = <0x0003f000 0x00037000>;
44+
};
45+
46+
/* Reserve 32 kB for the scratch partition */
47+
scratch_partition: partition@76000 {
48+
label = "image-scratch";
49+
reg = <0x00076000 0x00008000>;
50+
};
51+
52+
/* Set 8Kb of storage at the end of the 512KB of flash */
53+
storage_partition: partition@7e000 {
54+
label = "storage";
55+
reg = <0x0007e000 0x00002000>;
56+
};
57+
58+
};
59+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
identifier: efr32_radio_brd4255a
2+
name: BRD4255A
3+
type: mcu
4+
arch: arm
5+
ram: 64
6+
flash: 512
7+
toolchain:
8+
- zephyr
9+
- gnuarmemb
10+
- xtools
11+
supported:
12+
- counter
13+
- gpio
14+
- nvs
15+
- spi
16+
- uart
17+
- watchdog
18+
testing:
19+
ignore_tags:
20+
- net
21+
- bluetooth
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
CONFIG_SOC_SERIES_EFR32FG13P=y
4+
CONFIG_BOARD_EFR32_RADIO_BRD4255A=y
5+
CONFIG_ARM_MPU=y
6+
CONFIG_CONSOLE=y
7+
CONFIG_UART_CONSOLE=y
8+
CONFIG_SERIAL=y
9+
CONFIG_CORTEX_M_SYSTICK=y
10+
CONFIG_GPIO=y
11+
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=38400000
12+
CONFIG_CMU_HFCLK_HFXO=y
13+
CONFIG_SOC_GECKO_EMU_DCDC=y
14+
CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y

0 commit comments

Comments
 (0)