Skip to content

Commit a58052b

Browse files
committed
boards: Add support for PG23 Pro Kit and PG28 Pro Kit
Adding pg23_pk2504a and pg28_pk2506a boards files. Signed-off-by: Christoph Jans <[email protected]>
1 parent db4697a commit a58052b

22 files changed

+1001
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Copyright (c) 2025 Christoph Jans
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if BOARD_PG23_PK2504A
5+
6+
config LOG_BACKEND_SWO_FREQ_HZ
7+
default 875000
8+
depends on LOG_BACKEND_SWO
9+
10+
endif
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Christoph Jans
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_PG23_PK2504A
5+
select SOC_EFM32PG23B310F512IM48
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
board_runner_args(jlink "--device=EFM32PG23BxxxF512")
4+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
5+
6+
board_runner_args(openocd)
7+
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
8+
9+
board_runner_args(silabs_commander "--device=EFM32PG23BxxxF512")
10+
include(${ZEPHYR_BASE}/boards/common/silabs_commander.board.cmake)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: pg23_pk2504a
3+
full_name: EFM32PG23 Pro Kit (PG23-PK2504A)
4+
vendor: silabs
5+
socs:
6+
- name: efm32pg23b310f512im48
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
.. zephyr:board:: pg23_pk2504a
2+
3+
Overview
4+
********
5+
6+
The EFM32PG23 Pearl Gecko Board dev kit contains
7+
a System-On-Chip from the EFM32PG23 family built on an
8+
ARM Cortex®-M33 processor with excellent low power capabilities.
9+
10+
Hardware
11+
********
12+
13+
- EFM32PG23B310F512IM48 Pearl Gecko SoC
14+
- CPU core: ARM Cortex®-M33
15+
- Flash memory: 512 kB
16+
- RAM: 64 kB
17+
- Key features:
18+
- USB connectivity
19+
- Advanced Energy Monitor (AEM)
20+
- SEGGER J-Link on-board debugger
21+
- Debug multiplexer supporting external hardware as well as on-board MCU
22+
- 4x10 segment LCD
23+
- User LEDs and push buttons
24+
- Silicon Labs' Si7021 Relative Humidity and Temperature Sensor
25+
- SMA connector for IADC demonstration
26+
- Inductive LC sensor
27+
- 20-pin 2.54 mm header for expansion boards
28+
- Breakout pads for direct access to I/O pins
29+
- Power sources include USB and CR2032 coin cell battery
30+
31+
For more information about the EFM32PG23 SoC and BRD2504A board, refer to these
32+
documents:
33+
34+
- `EFM32PG23 Website`_
35+
- `EFM32PG23 Datasheet`_
36+
- `EFM32PG23 Reference Manual`_
37+
- `BRD2504A User Guide`_
38+
39+
Supported Features
40+
==================
41+
42+
.. zephyr:board-supported-hw::
43+
44+
Connections and IOs
45+
===================
46+
47+
In the following table, the column **Name** contains Pin names. For example, PA2
48+
means Pin number 2 on Port A, as used in the board's datasheets and manuals.
49+
50+
+------+--------------+---------------------+
51+
| Name | Function | Usage |
52+
+======+==============+=====================+
53+
| PA5 | GPIO | Push Button 0 |
54+
+------+--------------+---------------------+
55+
| PA7 | I2C0_SDA | I2C bus |
56+
+------+--------------+---------------------+
57+
| PA8 | I2C0_SCL | I2C bus |
58+
+------+--------------+---------------------+
59+
| PB4 | GPIO | Push Button 1 |
60+
+------+--------------+---------------------+
61+
| PB5 | EUSART0_TX | Console |
62+
+------+--------------+---------------------+
63+
| PB6 | EUSART0_RX | Console |
64+
+------+--------------+---------------------+
65+
| PC8 | GPIO | LED0 |
66+
+------+--------------+---------------------+
67+
| PC8 | TIMER0_CC0 | TIMER0 |
68+
+------+--------------+---------------------+
69+
| PC9 | GPIO | LED1 |
70+
+------+--------------+---------------------+
71+
| PC9 | TIMER0_CC1 | TIMER0 |
72+
+------+--------------+---------------------+
73+
74+
The default configuration can be found in
75+
:zephyr_file:`boards/silabs/dev_kits/pg23_pk2504a/pg23_pk2504a_defconfig`
76+
77+
System Clock
78+
============
79+
80+
The EFM32PG23 SoC is configured to use the 39 MHz external oscillator on the
81+
board.
82+
83+
Serial Port
84+
===========
85+
86+
The EFM32PG23 SoC has one USART and three EUSARTs.
87+
EUSART0 is connected to the board controller and is used for the console.
88+
89+
Programming and Debugging
90+
*************************
91+
92+
.. zephyr:board-supported-runners::
93+
94+
.. note::
95+
Before using the kit the first time, you should update the J-Link firmware
96+
in Simplicity Studio.
97+
98+
Flashing
99+
========
100+
101+
The sample application :zephyr:code-sample:`hello_world` is used for this example.
102+
Build the Zephyr kernel and application:
103+
104+
.. zephyr-app-commands::
105+
:zephyr-app: samples/hello_world
106+
:board: pg23_pk2504a
107+
:goals: build
108+
109+
Connect the pg23_pk2504a to your host computer using the USB port and you
110+
should see a USB connection.
111+
112+
Open a serial terminal (minicom, putty, etc.) with the following settings:
113+
114+
- Speed: 115200
115+
- Data: 8 bits
116+
- Parity: None
117+
- Stop bits: 1
118+
119+
Reset the board and you'll see the following message on the corresponding serial port
120+
terminal session:
121+
122+
.. code-block:: console
123+
124+
Hello World! pg23_pk2504a
125+
126+
Troubleshooting
127+
===============
128+
If no serial output occurs, use SEGGERs RTT Viewer and update :zephyr_file:`boards/silabs/dev_kits/pg23_pk2504a/pg23_pk2504a_defconfig` with
129+
130+
.. code-block:: console
131+
132+
CONFIG_UART_CONSOLE=n
133+
CONFIG_RTT_CONSOLE=y
134+
CONFIG_USE_SEGGER_RTT=y
135+
136+
.. _EFM32PG23 Website:
137+
https://www.silabs.com/mcu/32-bit-microcontrollers/efm32pg23-series-2#
138+
139+
.. _EFM32PG23 Datasheet:
140+
https://www.silabs.com/documents/public/data-sheets/efm32pg23-datasheet.pdf
141+
142+
.. _EFM32PG23 Reference Manual:
143+
https://www.silabs.com/documents/public/reference-manuals/efm32pg23-rm.pdf
144+
145+
.. _BRD2504A User Guide:
146+
https://www.silabs.com/documents/public/user-guides/ug515-efm32pg23-brd2504a-user-guide.pdf
26.7 KB
Loading
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright (c) 2025 Christoph Jans
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <zephyr/dt-bindings/pinctrl/silabs/xg23-pinctrl.h>
8+
9+
&pinctrl {
10+
eusart0_default: eusart0_default {
11+
group0 {
12+
pins = <EUSART0_TX_PB5>;
13+
drive-push-pull;
14+
output-high;
15+
};
16+
17+
group1 {
18+
pins = <EUSART0_RX_PB6>;
19+
input-enable;
20+
silabs,input-filter;
21+
};
22+
};
23+
24+
i2c0_default: i2c0_default {
25+
group0 {
26+
pins = <I2C0_SCL_PA8>, <I2C0_SDA_PA7>;
27+
drive-open-drain;
28+
bias-pull-up;
29+
};
30+
};
31+
32+
timer0_default: timer0_default {
33+
group0 {
34+
pins = <TIMER0_CC0_PC8>, <TIMER0_CC1_PC9>;
35+
drive-push-pull;
36+
output-high;
37+
};
38+
};
39+
};

0 commit comments

Comments
 (0)