Skip to content

Commit f437ba4

Browse files
janchrifabiobaltieri
authored andcommitted
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 dfb0ac3 commit f437ba4

22 files changed

+993
-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: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
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 | Si7021 I2C Data |
56+
+------+-----------------+---------------------+
57+
| PA8 | I2C0_SCL | Si7021 I2C Clock |
58+
+------+-----------------+---------------------+
59+
| PB4 | GPIO | Push Button 1 |
60+
+------+-----------------+---------------------+
61+
| PB5 | EUSART0_TX | Console Tx |
62+
+------+-----------------+---------------------+
63+
| PB6 | EUSART0_RX | Console Rx |
64+
+------+-----------------+---------------------+
65+
| PC8 | GPIO/TIMER0_CC0 | LED0 |
66+
+------+-----------------+---------------------+
67+
| PC9 | GPIO/TIMER0_CC1 | LED1 |
68+
+------+-----------------+---------------------+
69+
70+
The default configuration can be found in
71+
:zephyr_file:`boards/silabs/dev_kits/pg23_pk2504a/pg23_pk2504a_defconfig`
72+
73+
System Clock
74+
============
75+
76+
The EFM32PG23 SoC is configured to use the 39 MHz external oscillator on the
77+
board.
78+
79+
Serial Port
80+
===========
81+
82+
The EFM32PG23 SoC has one USART and three EUSARTs.
83+
EUSART0 is connected to the board controller and is used for the console.
84+
85+
Programming and Debugging
86+
*************************
87+
88+
.. zephyr:board-supported-runners::
89+
90+
.. note::
91+
Before using the kit the first time, you should update the J-Link firmware
92+
in Simplicity Studio.
93+
94+
Flashing
95+
========
96+
97+
The sample application :zephyr:code-sample:`hello_world` is used for this example.
98+
Build the Zephyr kernel and application:
99+
100+
.. zephyr-app-commands::
101+
:zephyr-app: samples/hello_world
102+
:board: pg23_pk2504a
103+
:goals: build
104+
105+
Connect the pg23_pk2504a to your host computer using the USB port and you
106+
should see a USB connection.
107+
108+
Open a serial terminal (minicom, putty, etc.) with the following settings:
109+
110+
- Speed: 115200
111+
- Data: 8 bits
112+
- Parity: None
113+
- Stop bits: 1
114+
115+
Reset the board and you'll see the following message on the corresponding serial port
116+
terminal session:
117+
118+
.. code-block:: console
119+
120+
Hello World! pg23_pk2504a
121+
122+
Troubleshooting
123+
===============
124+
If no serial output occurs, use SEGGERs RTT Viewer and update :zephyr_file:`boards/silabs/dev_kits/pg23_pk2504a/pg23_pk2504a_defconfig` with
125+
126+
.. code-block:: console
127+
128+
CONFIG_UART_CONSOLE=n
129+
CONFIG_RTT_CONSOLE=y
130+
CONFIG_USE_SEGGER_RTT=y
131+
132+
.. _EFM32PG23 Website:
133+
https://www.silabs.com/mcu/32-bit-microcontrollers/efm32pg23-series-2#
134+
135+
.. _EFM32PG23 Datasheet:
136+
https://www.silabs.com/documents/public/data-sheets/efm32pg23-datasheet.pdf
137+
138+
.. _EFM32PG23 Reference Manual:
139+
https://www.silabs.com/documents/public/reference-manuals/efm32pg23-rm.pdf
140+
141+
.. _BRD2504A User Guide:
142+
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)