.. _efr32_slwstk6061a:

EFR32-SLWSTK6061A
#################

Overview
********

The EFR32 Flex Gecko Wireless Starter Kit SLWSTK6061A contains a Wireless
System-On-Chip from the EFR32FG family built on an ARM® Cortex®-M4F processor
with excellent low power capabilities.

.. figure:: ./efr32_slwstk6061a.jpg
   :width: 375px
   :align: center
   :alt: EFR32-SLWSTK6061A

   EFR32-SLWSTK6061A (image courtesy of Silicon Labs)

Hardware
********

The SLWRB4250B radio board plugs into the Wireless Starter Kit Mainboard BRD4001A.

Wireless Starter Kit Mainboard:

- Advanced Energy Monitoring provides real-time information about the energy
  consumption of an application or prototype design.
- Ultra-low power 128x128 pixel memory LCD
- 2 user buttons and 2 LEDs
- Si7021 Humidity and Temperature Sensor
- On-board Segger J-Link USB and Ethernet debugger

Radio Board:

- EFR32FG1P133F256GM48 Flex Gecko SoC
- 8Mbit SPI NOR Flash

For more information about the EFR32FG1 SoC and EFR32-SLWSTK6061A board, refer
to these documents:

- `EFR32FG Website`_
- `EFR32FG1 Datasheet`_
- `EFR32xG1 Reference Manual`_
- `EFR32-SLWSTK6061A Website`_
- `EFR32-SLWSTK6061A User Guide`_
- `WSTK Main Board BRD4001A Schematics`_
- `EFR32FG1-BRD4250B Schematics`_


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

The efr32_slwstk6061a board configuration supports the following hardware features:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| SYSTICK   | on-chip    | systick                             |
+-----------+------------+-------------------------------------+
| COUNTER   | on-chip    | rtcc                                |
+-----------+------------+-------------------------------------+
| FLASH     | on-chip    | flash memory                        |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port-polling;                |
|           |            | serial port-interrupt               |
+-----------+------------+-------------------------------------+
| SPI(M)    | on-chip    | spi port-polling                    |
+-----------+------------+-------------------------------------+
| WATCHDOG  | on-chip    | watchdog                            |
+-----------+------------+-------------------------------------+

The default configuration can be found in the defconfig file:

	``boards/arm/efr32_slwstk6061a/efr32_slwstk6061a_defconfig``

Other hardware features are currently not supported by the port.

Connections and IOs
===================

The EFR32FG1P SoC has five GPIO controllers (PORTA to PORTD and PORTF). All of
them are enabled for the EFR32-SLWSTK6061A board.

In the following table, the column **Name** contains Pin names. For example, PA2
means Pin number 2 on PORTA, as used in the board's datasheets and manuals.

+-------+-------------+-------------------------------------+
| Name  | Function    | Usage                               |
+=======+=============+=====================================+
| PF4   | GPIO        | LED0                                |
+-------+-------------+-------------------------------------+
| PF5   | GPIO        | LED1                                |
+-------+-------------+-------------------------------------+
| PF6   | GPIO        | Push Button PB0                     |
+-------+-------------+-------------------------------------+
| PF7   | GPIO        | Push Button PB1                     |
+-------+-------------+-------------------------------------+
| PA5   | GPIO        | Board Controller Enable             |
|       |             | EFM_BC_EN                           |
+-------+-------------+-------------------------------------+
| PA0   | USART0_TX   | UART Console EFM_BC_TX US0_TX #0    |
+-------+-------------+-------------------------------------+
| PA1   | USART0_RX   | UART Console EFM_BC_RX US0_RX #0    |
+-------+-------------+-------------------------------------+
| PC6   | SPI_MOSI    | Flash MOSI US1_TX #11               |
+-------+-------------+-------------------------------------+
| PC7   | SPI_MISO    | Flash MISO US1_RX #11               |
+-------+-------------+-------------------------------------+
| PC8   | SPI_SCLK    | Flash SCLK US1_CLK #11              |
+-------+-------------+-------------------------------------+
| PA4   | SPI_CS      | Flash Chip Select (GPIO)            |
+-------+-------------+-------------------------------------+

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

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

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

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

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

.. note::
   Before using the kit the first time, you should update the J-Link firmware
   from `J-Link-Downloads`_

The EFR32-SLWSTK6061A includes an `J-Link`_ serial and debug adaptor built into the
board. The adaptor provides:

- A USB connection to the host computer, which exposes a debug interface and a
  USB Serial Port.
- A physical UART connection which is relayed over interface USB Serial port.
- An Ethernet connection to support remote debugging.

It is compatible with the following host debug tools:

- :ref:`openocd-debug-host-tools`
- :ref:`jlink-debug-host-tools`

OpenOCD is included in the Zephyr SDK. Refer to the links above for information
on how to install required host debug tools if you are not using the Zephyr SDK.

Flashing
========

Connect the EFR32-SLWSTK6061A board 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_slwstk6061a
   :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_slwstk6061a


.. _EFR32-SLWSTK6061A Website:
   https://www.silabs.com/products/development-tools/wireless/proprietary/slwstk6061a-efr32-flex-gecko-868-mhz-2-4-ghz-and-sub-ghz-starter-kit

.. _EFR32-SLWSTK6061A User Guide:
   https://www.silabs.com/documents/public/user-guides/UG182-WSTK6061-User-Guide.pdf

.. _WSTK Main Board BRD4001A Schematics:
   https://www.silabs.com/documents/public/schematic-files/WSTK-Main-BRD4001A-A01-schematic.pdf

.. _EFR32FG1-BRD4250B Schematics:
   https://www.silabs.com/documents/public/schematic-files/EFR32FG1-BRD4250B-B02-schematic.pdf

.. _EFR32FG Website:
   https://www.silabs.com/products/wireless/proprietary/efr32-flex-gecko-2-4-ghz-sub-ghz

.. _EFR32FG1 Datasheet:
   https://www.silabs.com/documents/public/data-sheets/efr32fg1-datasheet.pdf

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

.. _J-Link:
   https://www.segger.com/jlink-debug-probes.html

.. _J-Link-Downloads:
   https://www.segger.com/downloads/jlink
