From 1c8a15867ed26c235c9781f4fe5000b862ee87aa Mon Sep 17 00:00:00 2001 From: Reto Schneider Date: Fri, 12 Apr 2024 15:04:45 +0200 Subject: [PATCH] boards: silabs: Add SiM3U1xx-B-DK SiM3U1xx-B-DK is the official development kit offered by Silicon Labs. Signed-off-by: Reto Schneider --- .../dev_kits/sim3u1xx_dk/Kconfig.sim3u1xx_dk | 6 + .../silabs/dev_kits/sim3u1xx_dk/board.cmake | 8 ++ boards/silabs/dev_kits/sim3u1xx_dk/board.yml | 9 ++ .../silabs/dev_kits/sim3u1xx_dk/doc/index.rst | 130 ++++++++++++++++++ .../dev_kits/sim3u1xx_dk/doc/sim3u1xx_dk.webp | Bin 0 -> 73596 bytes .../sim3u1xx_dk/sim3u1xx_dk-pinctrl.dtsi | 22 +++ .../dev_kits/sim3u1xx_dk/sim3u1xx_dk.dts | 111 +++++++++++++++ .../dev_kits/sim3u1xx_dk/sim3u1xx_dk.yaml | 20 +++ .../sim3u1xx_dk/sim3u1xx_dk_defconfig | 9 ++ .../dev_kits/sim3u1xx_dk/support/openocd.cfg | 24 ++++ 10 files changed, 339 insertions(+) create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/Kconfig.sim3u1xx_dk create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/board.cmake create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/board.yml create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/doc/index.rst create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/doc/sim3u1xx_dk.webp create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk-pinctrl.dtsi create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.dts create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.yaml create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk_defconfig create mode 100644 boards/silabs/dev_kits/sim3u1xx_dk/support/openocd.cfg diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/Kconfig.sim3u1xx_dk b/boards/silabs/dev_kits/sim3u1xx_dk/Kconfig.sim3u1xx_dk new file mode 100644 index 00000000000..e519114331b --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/Kconfig.sim3u1xx_dk @@ -0,0 +1,6 @@ +# Copyright (c) 2024 GARDENA GmbH +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_SIM3U1XX_DK + select SOC_PART_NUMBER_SIM3U167AGQ diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/board.cmake b/boards/silabs/dev_kits/sim3u1xx_dk/board.cmake new file mode 100644 index 00000000000..60f466d5539 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/board.cmake @@ -0,0 +1,8 @@ +# Copyright (c) 2024 GARDENA GmbH +# +# SPDX-License-Identifier: Apache-2.0 + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) + +board_runner_args(jlink "--device=SiM3U167") +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/board.yml b/boards/silabs/dev_kits/sim3u1xx_dk/board.yml new file mode 100644 index 00000000000..c70d5420483 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/board.yml @@ -0,0 +1,9 @@ +# Copyright (c) 2024 GARDENA GmbH +# +# SPDX-License-Identifier: Apache-2.0 + +board: + name: sim3u1xx_dk + vendor: silabs + socs: + - name: sim3u167 diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/doc/index.rst b/boards/silabs/dev_kits/sim3u1xx_dk/doc/index.rst new file mode 100644 index 00000000000..422bbfaa367 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/doc/index.rst @@ -0,0 +1,130 @@ +.. _sim3u1xx_dk: + +Silicon Labs SiM3U1xx 32-bit MCU USB Development Kit +#################################################### + +Overview +******** + +This is a `development kit`_ that is used to develop software for the SiM3U1xx MCUs. + +.. figure:: sim3u1xx_dk.webp + :align: center + +Hardware +******** + +- Silicon Labs SiM3U167-B-GM SoC +- CPU core: ARM Cortex®-M3 +- Flash memory: 256 kB +- RAM: 32 kB +- IO: + + - 2x user LEDs + - 2x user push buttons + - 2x power LEDs + - Reset push button + - Potentiometer + - Analog terminals + - Capacitive sensing slider and button + - USB virtual COM port + +For more information about the SiM3U167 SoC and the SiM3U1xx board, refer to these documents: + +- Silicon Labs SiM3U1xx_ +- Silicon Labs SiM3U167-B-GM_ +- Silicon Labs SiM3U1xx-B-DK_ +- Silicon Labs SiM3U1xx-B-DK MCU card `user's guide`_ +- Silicon Labs SiM3U1xx and SiM3C1xx Revision B Errata_ + +.. _SiM3U1xx: https://www.silabs.com/mcu/32-bit-microcontrollers/precision32-sim3u1xx +.. _SiM3U167-B-GM: https://www.silabs.com/mcu/32-bit-microcontrollers/precision32-sim3u1xx/device.sim3u167-b-gm +.. _SiM3U1xx-B-DK: https://www.silabs.com/development-tools/mcu/32-bit/sim3u1xx-development-kit +.. _user's guide: https://www.silabs.com/documents/public/user-guides/UPMU-M3U160.pdf +.. _Errata: https://www.silabs.com/documents/public/errata/SiM3U1xx-SiM3C1xxErrata.pdf + +Supported Features +================== + +The board configuration supports the following hardware features: + ++-----------+------------+-------------------------------------+ +| Interface | Controller | Driver/Component | ++===========+============+=====================================+ +| NVIC | on-chip | nested vector interrupt controller | ++-----------+------------+-------------------------------------+ +| SYSTICK | on-chip | systick | ++-----------+------------+-------------------------------------+ +| FLASH | on-chip | flash memory | ++-----------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+-------------------------------------+ +| UART | on-chip | serial port-polling; | +| | | serial port-interrupt | ++-----------+------------+-------------------------------------+ + +Connections and IOs +=================== + ++--------+--------------------------+----------------------------------------------------+ +| Pin | Name | Note | ++========+==========================+====================================================+ +| PB1.12 | TX (O) | Serial connection to host via USB virtual COM port | ++--------+--------------------------+ | +| PB1.13 | RX (I) | | ++--------+--------------------------+ | +| PB1.14 | RTS (O) | | ++--------+--------------------------+ | +| PB1.15 | CTS (I) | | ++--------+--------------------------+----------------------------------------------------+ +| PB2.8 | Push button switch (SW2) | | ++--------+--------------------------+----------------------------------------------------+ +| PB2.9 | Push button switch (SW3) | | ++--------+--------------------------+----------------------------------------------------+ +| PB2.10 | Red LED (DS3) | | ++--------+--------------------------+----------------------------------------------------+ +| PB2.11 | Yellow LED (DS4) | | ++--------+--------------------------+----------------------------------------------------+ +| PB1.5 | Potentiometer | | ++--------+--------------------------+----------------------------------------------------+ +| PB2.12 | Potentiometer bias | | ++--------+--------------------------+----------------------------------------------------+ + +Programming and Debugging +************************* + +Flashing +======== + +The sample application :ref:`hello_world` is used for this example. Build the Zephyr kernel and +application: + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: sim3u1xx_dk + :goals: build + +Connect the sim3u1xx_dk to your host computer using both USB port and you should see a USB serial +connection. + +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! sim3u1xx_dk/sim3u167 + +References +********** + +.. target-notes:: + +.. _development kit: + https://www.silabs.com/development-tools/mcu/32-bit/sim3u1xx-development-kit diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/doc/sim3u1xx_dk.webp b/boards/silabs/dev_kits/sim3u1xx_dk/doc/sim3u1xx_dk.webp new file mode 100644 index 0000000000000000000000000000000000000000..56ad9e6877cdc58283c9eb717b286f4e4727711f GIT binary patch literal 73596 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 r5!JBPlaPj{7ka}Ts^3wQJG+TvOtHjj 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

eGiA>R%0i{CYrxqk>U0 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

C%BMvd!E?1zvGYC0ODF&M6Tt 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

T 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 literal 0 HcmV?d00001 diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk-pinctrl.dtsi b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk-pinctrl.dtsi new file mode 100644 index 00000000000..08d3b0176e7 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk-pinctrl.dtsi @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2024 GARDENA GmbH + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + usart0_default: usart0_default { + group1 { + pinmux = , + ; + output-enable; + }; + group2 { + pinmux = , + ; + input-enable; + }; + }; +}; diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.dts b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.dts new file mode 100644 index 00000000000..f55f5a667f9 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.dts @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2024 GARDENA GmbH + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include "sim3u1xx_dk-pinctrl.dtsi" +#include + +/ { + model = "Silicon Labs SiM3U1xx-B-DK"; + compatible = "gardena,sim3u1xx-dk", "silabs,sim3u167","silabs,sim3u"; + + aliases { + led0 = &led_yellow; + led1 = &led_red; + sw0 = &user_button_sw2; + sw1 = &user_button_sw3; + }; + + chosen { + zephyr,console = &usart0; + zephyr,flash = &flash0; + zephyr,shell-uart = &usart0; + zephyr,sram = &sram0; + }; + + leds { + compatible = "gpio-leds"; + + led_red: led_2_10 { + label = "Red LED (DS3)"; + gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; + }; + led_yellow: led_2_11 { + label = "Yellow LED (DS4)"; + gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + user_button_sw2: button_0 { + label = "Push button switch (SW2)"; + gpios = <&gpio2 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + user_button_sw3: button_1 { + label = "Push button switch (SW3)"; + gpios = <&gpio2 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + }; +}; + +&cpu0 { + clock-frequency = <76953600>; +}; + +&pll0 { + status = "okay"; +}; + +&clk_ahb { + clocks = <&pll0>; + status = "okay"; +}; + +&clk_apb { + divider = <2>; + status = "okay"; +}; + +&usart0 { + current-speed = <115200>; + pinctrl-0 = <&usart0_default>; + pinctrl-names = "default"; + hw-flow-control; + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio2 { + status = "okay"; +}; + +&flash0 { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + slot0_partition: partition@0 { + label = "image-0"; + reg = <0x00000000 DT_SIZE_K(192)>; + }; + + storage_partition: partition@30000 { + label = "storage"; + reg = <0x00030000 DT_SIZE_K(64)>; + }; + }; +}; diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.yaml b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.yaml new file mode 100644 index 00000000000..6950fa4c470 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk.yaml @@ -0,0 +1,20 @@ +# Copyright (c) 2024 GARDENA GmbH +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: sim3u1xx_dk +name: Silicon Labs SiM3U development kit +type: mcu +arch: arm +ram: 32 +flash: 256 +toolchain: + - gnuarmemb + - xtools + - zephyr +supported: + - flash + - gpio + - nvs + - uart +vendor: gardena diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk_defconfig b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk_defconfig new file mode 100644 index 00000000000..e7d47535289 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/sim3u1xx_dk_defconfig @@ -0,0 +1,9 @@ +# Enable UART driver +CONFIG_SERIAL=y + +# Enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable GPIO +CONFIG_GPIO=y diff --git a/boards/silabs/dev_kits/sim3u1xx_dk/support/openocd.cfg b/boards/silabs/dev_kits/sim3u1xx_dk/support/openocd.cfg new file mode 100644 index 00000000000..87aca7aab60 --- /dev/null +++ b/boards/silabs/dev_kits/sim3u1xx_dk/support/openocd.cfg @@ -0,0 +1,24 @@ +# Copyright (c) 2024 GARDENA GmbH +# +# SPDX-License-Identifier: Apache-2.0 + +source [find interface/ftdi/olimex-arm-usb-ocd-h.cfg] +source [find interface/ftdi/olimex-arm-jtag-swd.cfg] + +source [find target/sim3x.cfg] + +# On SiM3U1xx, doing a chip reset also takes down the debug port. For this reason, we disable the +# chip reset and instead only reset the Cortex M via the AIRCR SYSRESETREQ bit, as suggested in the +# chip's errata: https://www.silabs.com/documents/public/errata/SiM3U1xx-SiM3C1xxErrata.pdf +cortex_m reset_config sysresetreq + +$_TARGETNAME configure -event gdb-attach { + echo "Debugger attaching: halting execution" + reset halt + gdb_breakpoint_override hard +} + +$_TARGETNAME configure -event gdb-detach { + echo "Debugger detaching: resuming execution" + resume +}