Skip to content

Commit

Permalink
boards: Add support for Silicon Labs' BRD4255A Radio board
Browse files Browse the repository at this point in the history
This commit adds support for Silicon Labs BRD4255A (a.k.a. SLWRB4255A)
Flex Gecko Radio Board.

Signed-off-by: Yonatan Schachter <yonatan.schachter@gmail.com>
  • Loading branch information
yonsch authored and galak committed Mar 18, 2021
1 parent 1d9f0e3 commit 6ca6b22
Show file tree
Hide file tree
Showing 9 changed files with 219 additions and 1 deletion.
9 changes: 8 additions & 1 deletion boards/arm/efr32_radio/Kconfig.board
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# EFR32BG13 BRD4104A / EFR32MG21 BRD4180A board
# EFR32BG13 BRD4104A / EFR32MG21 BRD4180A /
# EFR32FG1P BRD4250B / EFR32FG13P BRD4255A board

# Copyright (c) 2020 Piotr Mienkowski
# Copyright (c) 2020 TriaGnoSys GmbH
Expand All @@ -21,3 +22,9 @@ config BOARD_EFR32_RADIO_BRD4180A
depends on SOC_SERIES_EFR32MG21
select BOARD_EFR32_RADIO
select SOC_PART_NUMBER_EFR32MG21A020F1024IM32

config BOARD_EFR32_RADIO_BRD4255A
bool "Silicon Labs BRD4255A (Flex Gecko Radio Board)"
depends on SOC_SERIES_EFR32FG13P
select BOARD_EFR32_RADIO
select SOC_PART_NUMBER_EFR32FG13P233F512GM48
1 change: 1 addition & 0 deletions boards/arm/efr32_radio/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ config BOARD
default "efr32_radio_brd4104a" if BOARD_EFR32_RADIO_BRD4104A
default "efr32_radio_brd4250b" if BOARD_EFR32_RADIO_BRD4250B
default "efr32_radio_brd4180a" if BOARD_EFR32_RADIO_BRD4180A
default "efr32_radio_brd4255a" if BOARD_EFR32_RADIO_BRD4255A

config CMU_HFXO_FREQ
default 38400000
Expand Down
2 changes: 2 additions & 0 deletions boards/arm/efr32_radio/board.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ elseif(CONFIG_BOARD_EFR32_RADIO_BRD4250B)
board_runner_args(jlink "--device=EFR32FG1PxxxF256")
elseif(CONFIG_BOARD_EFR32_RADIO_BRD4180A)
board_runner_args(jlink "--device=EFR32MG21AxxxF1024")
elseif(CONFIG_BOARD_EFR32_RADIO_BRD4255A)
board_runner_args(jlink "--device=EFR32FG13PxxxF512")
endif()

include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
Expand Down
113 changes: 113 additions & 0 deletions boards/arm/efr32_radio/doc/brd4255a.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
.. _efr32_radio_brd4255a:

EFR32 BRD4255A (SLWRB4255A)
###########################

Overview
********

The EFR32FG13P Flex Gecko 2.4 GHz and 915 MHz Radio Board is delivered as a
`standalone Proprietary Wireless radio board`_. It contains a EFR32FG13P Wireless
SoC built on an ARM Cortex®-M4F processor with excellent low power capabilities.

.. figure:: ./efr32fg13-slwrb4255a.jpg
:height: 262px
:align: center
:alt: SLWRB4255A Flex Gecko 2.4 GHz and 915 MHz Radio Board

SLWRB4255A (image courtesy of Silicon Labs)

The BRD4255A a.k.a. SLWRB4255A radio board plugs into the Wireless Starter Kit
Mainboard BRD4001A and is supported as one of :ref:`efr32_radio`.

Hardware
********

- EFR32FG13P233F512GM48 Flex Gecko SoC
- CPU core: ARM Cortex®-M4 with FPU
- Flash memory: 512 kB
- RAM: 64 kB
- Transmit power: up to 19 dBm
- Operation frequency: 2.4 GHz, 915 MHz
- Crystals for LFXO (32.768 kHz) and HFXO (38.4 MHz).

For more information about the EFR32FG13 SoC and BRD4255A board, refer to these
documents:

- `EFR32FG13 Website`_
- `EFR32FG13 Datasheet`_
- `EFR32xG13 Reference Manual`_
- `BRD4255A Reference Manual`_

Supported Features
==================

Please refer to
:ref:`EFR32 Radio Board Supported Features <efr32_radio_supported_features>`
for details of the configuration and common features supported by the
efr32_radio_brd4255a board.

The default configuration can be found in the defconfig file:

``boards/arm/efr32_radio/efr32_radio_brd4255a_defconfig``

System Clock
============

The EFR32FG13P SoC is configured to use the 38.4 MHz external oscillator on the
board.

Serial Port
===========

The EFR32FG13P SoC has three USARTs and one Low Energy UARTs (LEUART).
USART0 is connected to the board controller and is used for the console.

Programming and Debugging
*************************

Please refer to
:ref:`Programming and Debugging EFR32 Radio Board <efr32_radio_programming>`
for details on the supported debug interfaces.

Flashing
========

Connect the BRD4001A board with a mounted BRD4255A radio module to your host
computer using the USB port.

Here is an example for the :ref:`hello_world` application.

.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: efr32_radio_brd4255a
:goals: flash

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 see the following message in the terminal:

.. code-block:: console
Hello World! efr32_radio_brd4255a
.. _EFR32FG13 Website:
https://www.silabs.com/wireless/proprietary/efr32fg13-series-1-sub-ghz-2-4-ghz-socs

.. _EFR32FG13 Datasheet:
https://www.silabs.com/documents/public/data-sheets/efr32fg13-datasheet.pdf

.. _EFR32xG13 Reference Manual:
https://www.silabs.com/documents/public/reference-manuals/efr32xg13-rm.pdf

.. _standalone Proprietary Wireless radio board:
https://www.silabs.com/development-tools/wireless/proprietary/slwrb4255a-efr32fg13-915-mhz-radio-board

.. _BRD4255A Reference Manual:
https://www.silabs.com/documents/public/reference-manuals/brd4255a-rm.pdf
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions boards/arm/efr32_radio/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ EFR32 Radio Boards
brd4104a.rst
brd4250b.rst
brd4180a.rst
brd4255a.rst

Overview
********
Expand Down
59 changes: 59 additions & 0 deletions boards/arm/efr32_radio/efr32_radio_brd4255a.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright (c) 2020 Piotr Mienkowski
* Copyright (c) 2021 Yonatan Schachter
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <silabs/efr32fg13p233f512gm48.dtsi>
#include "efr32_radio.dtsi"

/ {
model = "Silicon Labs BRD4255A (Flex Gecko Radio Board)";
compatible = "silabs,efr32_radio_brd4255a", "silabs,efr32fg13p";
};

&cpu0 {
clock-frequency = <38400000>;
};

&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

/* Reserve 32 kB for the bootloader */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x0 0x00008000>;
read-only;
};

/* Reserve 220 kB for the application in slot 0 */
slot0_partition: partition@8000 {
label = "image-0";
reg = <0x0008000 0x00037000>;
};

/* Reserve 220 kB for the application in slot 1 */
slot1_partition: partition@3f000 {
label = "image-1";
reg = <0x0003f000 0x00037000>;
};

/* Reserve 32 kB for the scratch partition */
scratch_partition: partition@76000 {
label = "image-scratch";
reg = <0x00076000 0x00008000>;
};

/* Set 8Kb of storage at the end of the 512KB of flash */
storage_partition: partition@7e000 {
label = "storage";
reg = <0x0007e000 0x00002000>;
};

};
};
21 changes: 21 additions & 0 deletions boards/arm/efr32_radio/efr32_radio_brd4255a.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
identifier: efr32_radio_brd4255a
name: BRD4255A
type: mcu
arch: arm
ram: 64
flash: 512
toolchain:
- zephyr
- gnuarmemb
- xtools
supported:
- counter
- gpio
- nvs
- spi
- uart
- watchdog
testing:
ignore_tags:
- net
- bluetooth
14 changes: 14 additions & 0 deletions boards/arm/efr32_radio/efr32_radio_brd4255a_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_EFR32FG13P=y
CONFIG_BOARD_EFR32_RADIO_BRD4255A=y
CONFIG_ARM_MPU=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_CORTEX_M_SYSTICK=y
CONFIG_GPIO=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=38400000
CONFIG_CMU_HFCLK_HFXO=y
CONFIG_SOC_GECKO_EMU_DCDC=y
CONFIG_SOC_GECKO_EMU_DCDC_MODE_ON=y

0 comments on commit 6ca6b22

Please sign in to comment.