.. _efm32gg_slwstk6121a:

WGM160P Starter Kit
###################

Overview
********

The WGM160P Starter Kit SLWSTK6121A comes with the BRD4321A radio board.
This radio boards contains a WGM160P module, which combines the WF200 Wi-Fi
transceiver with an EFM32GG11 microcontroller.

.. figure:: wgm160p-starter-kit.jpg
   :align: center
   :alt: SLWSTK6121A

   SLWSTK6121A (image courtesy of Silicon Labs)

Hardware
********

- Advanced Energy Monitoring provides real-time information about the energy
  consumption of an application or prototype design.
- Ultra low power 128x128 pixel color Memory-LCD
- 2 user buttons and 2 LEDs
- Si7021 Humidity and Temperature Sensor
- On-board Segger J-Link USB and Ethernet debugger
- 10/100Base-TX ethernet PHY and RJ-45 jack (on included expansion board)
- MicroSD card slot
- USB Micro-AB connector

For more information about the WGM160P and SLWSTK6121A board:

- `WGM160P Website`_
- `WGM160P Datasheet`_
- `SLWSTK6121A Website`_
- `SLWSTK6121A User Guide`_
- `EFM32GG11 Datasheet`_
- `EFM32GG11 Reference Manual`_
- `WF200 Datasheet`_

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

The efm32gg_slwstk6121a board configuration supports the following hardware
features:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| MPU       | on-chip    | memory protection unit              |
+-----------+------------+-------------------------------------+
| COUNTER   | on-chip    | rtcc                                |
+-----------+------------+-------------------------------------+
| ETHERNET  | on-chip    | ethernet                            |
+-----------+------------+-------------------------------------+
| FLASH     | on-chip    | flash memory                        |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| I2C       | on-chip    | i2c port-polling                    |
+-----------+------------+-------------------------------------+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| SYSTICK   | on-chip    | systick                             |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port-polling;                |
|           |            | serial port-interrupt               |
+-----------+------------+-------------------------------------+

The default configuration can be found in the defconfig file:

	``boards/arm/efm32gg_slwstk6121a/efm32gg_slwstk6121a_defconfig``

Other hardware features, including the WF200 WiFi transceiver, are
currently not supported by the port.

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

The WGM160P's EFM32GG11 SoC has six GPIO controllers (PORTA to PORTF), all of which are
currently enabled for the SLWSTK6121A board.

In the following table, the column **Name** contains pin names. For example, PE1
means pin number 1 on PORTE, as used in the board's datasheets and manuals.

+-------+-------------+-------------------------------------+
| Name  | Function    | Usage                               |
+=======+=============+=====================================+
| PA4   | GPIO        | LED0                                |
+-------+-------------+-------------------------------------+
| PA5   | GPIO        | LED1                                |
+-------+-------------+-------------------------------------+
| PD6   | GPIO        | Push Button PB0                     |
+-------+-------------+-------------------------------------+
| PD8   | GPIO        | Push Button PB1                     |
+-------+-------------+-------------------------------------+
| PE7   | UART_TX     | UART TX Console VCOM_TX US0_TX #1   |
+-------+-------------+-------------------------------------+
| PE6   | UART_RX     | UART RX Console VCOM_RX US0_RX #1   |
+-------+-------------+-------------------------------------+
| PB11  | I2C_SDA     | SENSOR_I2C_SDA I2C1_SDA #1          |
+-------+-------------+-------------------------------------+
| PB12  | I2C_SCL     | SENSOR_I2C_SCL I2C1_SCL #1          |
+-------+-------------+-------------------------------------+


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

The EFM32GG11 SoC is configured to use the 50 MHz external oscillator on the
board.

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

The EFM32GG11 SoC has four USARTs, two UARTs and two 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`_

Flashing
========

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

- A USB connection to the host computer
- A physical UART connection which is relayed over interface USB serial port.

Flashing an application to SLWSTK6121A
--------------------------------------

Connect the SLWSTK6121A to your host computer using the USB port.

Here is an example to build and flash the :ref:`hello_world` application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: efm32gg_slwstk6121a
   :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'll see the following message on the corresponding serial port
terminal session:

.. code-block:: console

   Hello World! efm32gg_slwstk6121a

.. _WGM160P Website:
   https://www.silabs.com/wireless/wi-fi/wfm160-series-1-modules

.. _WGM160P Datasheet:
   https://www.silabs.com/documents/public/data-sheets/wgm160p-datasheet.pdf

.. _SLWSTK6121A Website:
   https://www.silabs.com/development-tools/wireless/wi-fi/wgm160p-wifi-module-starter-kit

.. _SLWSTK6121A User Guide:
   https://www.silabs.com/documents/public/user-guides/ug351-brd4321a-user-guide.pdf

.. _EFM32GG11 Datasheet:
   https://www.silabs.com/documents/public/data-sheets/efm32gg11-datasheet.pdf

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

.. _WF200 Datasheet:
   https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf

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

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