1.. zephyr:board:: slstk3401a
2
3Overview
4********
5
6The EFM32 Pearl Gecko Starter Kit SLSTK3401A contains an MCU from the
7EFM32PG family built on an ARM® Cortex®-M4F processor with excellent low
8power capabilities.
9
10Hardware
11********
12
13- Advanced Energy Monitoring provides real-time information about the energy
14  consumption of an application or prototype design.
15- Ultra low power 128x128 pixel Memory-LCD
16- 2 user buttons, 2 LEDs and 2 capacitive buttons
17- Humidity and temperature sensor
18- On-board Segger J-Link USB debugger
19
20For more information about the EFM32PG SoC and SLSTK3401A board:
21
22- `EFM32PG Website`_
23- `EFM32PG1 Datasheet`_
24- `EFM32PG1 Reference Manual`_
25- `SLSTK3401A Website`_
26- `SLSTK3401A User Guide`_
27
28Supported Features
29==================
30
31The slstk3401a board configuration supports the following hardware features:
32
33+-----------+------------+-------------------------------------+
34| Interface | Controller | Driver/Component                    |
35+===========+============+=====================================+
36| MPU       | on-chip    | memory protection unit              |
37+-----------+------------+-------------------------------------+
38| NVIC      | on-chip    | nested vector interrupt controller  |
39+-----------+------------+-------------------------------------+
40| SYSTICK   | on-chip    | systick                             |
41+-----------+------------+-------------------------------------+
42| COUNTER   | on-chip    | rtcc                                |
43+-----------+------------+-------------------------------------+
44| FLASH     | on-chip    | flash memory                        |
45+-----------+------------+-------------------------------------+
46| GPIO      | on-chip    | gpio                                |
47+-----------+------------+-------------------------------------+
48| UART      | on-chip    | serial port-polling;                |
49|           |            | serial port-interrupt               |
50+-----------+------------+-------------------------------------+
51| I2C       | on-chip    | i2c port-polling                    |
52+-----------+------------+-------------------------------------+
53| WATCHDOG  | on-chip    | watchdog                            |
54+-----------+------------+-------------------------------------+
55
56The default configuration can be found in
57:zephyr_file:`boards/silabs/starter_kits/slstk3401a/slstk3401a_defconfig`
58
59Other hardware features are currently not supported by the port.
60
61Connections and IOs
62===================
63
64The EFM32PG1 SoC has five GPIO controllers (PORTA to PORTD and PORTF) and
65all are enabled for the SLSTK3401A board.
66
67In the following table, the column **Name** contains pin names. For example, PF4
68means pin number 4 on PORTF, as used in the board's datasheets and manuals.
69
70+-------+-------------+-------------------------------------+
71| Name  | Function    | Usage                               |
72+=======+=============+=====================================+
73| PF4   | GPIO        | LED0                                |
74+-------+-------------+-------------------------------------+
75| PF5   | GPIO        | LED1                                |
76+-------+-------------+-------------------------------------+
77| PF6   | GPIO        | Push Button PB0                     |
78+-------+-------------+-------------------------------------+
79| PF7   | GPIO        | Push Button PB1                     |
80+-------+-------------+-------------------------------------+
81| PA5   | GPIO        | Board Controller Enable             |
82|       |             | EFM_BC_EN                           |
83+-------+-------------+-------------------------------------+
84| PA0   | UART_TX     | UART TX Console VCOM_TX US0_TX #0   |
85+-------+-------------+-------------------------------------+
86| PA1   | UART_RX     | UART RX Console VCOM_RX US0_RX #0   |
87+-------+-------------+-------------------------------------+
88| PD10  | UART_TX     | EXP12_UART_TX LEU0_TX #18           |
89+-------+-------------+-------------------------------------+
90| PD11  | UART_RX     | EXP14_UART_RX LEU0_RX #18           |
91+-------+-------------+-------------------------------------+
92| PC10  | I2C_SDA     | ENV_I2C_SDA I2C0_SDA #15            |
93+-------+-------------+-------------------------------------+
94| PC11  | I2C_SCL     | ENV_I2C_SCL I2C0_SCL #15            |
95+-------+-------------+-------------------------------------+
96
97
98System Clock
99============
100
101The EFM32PG SoC is configured to use the 40 MHz external oscillator on the
102board.
103
104Serial Port
105===========
106
107The EFM32PG SoC has two USARTs and one Low Energy UART (LEUART).
108
109Programming and Debugging
110*************************
111
112.. note::
113   Before using the kit the first time, you should update the J-Link firmware
114   in Simplicity Studio.
115
116Flashing
117========
118
119The SLSTK3401A includes an `J-Link`_ serial and debug adaptor built into the
120board. The adaptor provides:
121
122- A USB connection to the host computer, which exposes a mass storage device and a
123  USB serial port.
124- A serial flash device, which implements the USB flash disk file storage.
125- A physical UART connection which is relayed over interface USB serial port.
126
127Flashing an application to SLSTK3401A
128-------------------------------------
129
130The sample application :zephyr:code-sample:`hello_world` is used for this example.
131Build the Zephyr kernel and application:
132
133.. zephyr-app-commands::
134   :zephyr-app: samples/hello_world
135   :board: slstk3401a
136   :goals: build
137
138Connect the SLSTK3401A to your host computer using the USB port and you
139should see a USB connection which exposes a mass storage device(SLSTK3401A).
140Copy the generated zephyr.bin to the SLSTK3401A drive.
141
142Use a USB-to-UART converter such as an FT232/CP2102 to connect to the UART on the
143expansion header.
144
145Open a serial terminal (minicom, putty, etc.) with the following settings:
146
147- Speed: 115200
148- Data: 8 bits
149- Parity: None
150- Stop bits: 1
151
152Reset the board and you'll see the following message on the corresponding serial port
153terminal session:
154
155.. code-block:: console
156
157   Hello World! slstk3401a
158
159
160.. _SLSTK3401A Website:
161   https://www.silabs.com/development-tools/mcu/32-bit/efm32pg1-starter-kit
162
163.. _SLSTK3401A User Guide:
164   https://www.silabs.com/documents/public/user-guides/ug154-stk3401-user-guide.pdf
165
166.. _EFM32PG Website:
167   https://www.silabs.com/products/mcu/32-bit/efm32-pearl-gecko
168
169.. _EFM32PG1 Datasheet:
170   https://www.silabs.com/documents/public/data-sheets/efm32pg1-datasheet.pdf
171
172.. _EFM32PG1 Reference Manual:
173   https://www.silabs.com/documents/public/reference-manuals/efm32pg1-rm.pdf
174
175.. _J-Link:
176   https://www.segger.com/jlink-debug-probes.html
177