diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/Kconfig.pic32cm_jh01_cnano b/boards/microchip/pic32c/pic32cm_jh01_cnano/Kconfig.pic32cm_jh01_cnano new file mode 100644 index 0000000000000..b9b9cb136f309 --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/Kconfig.pic32cm_jh01_cnano @@ -0,0 +1,5 @@ +# Copyright (c) 2025 Microchip Technology Inc. +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_PIC32CM_JH01_CNANO + select SOC_PIC32CM5164JH01048 diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/board.cmake b/boards/microchip/pic32c/pic32cm_jh01_cnano/board.cmake new file mode 100644 index 0000000000000..9655956aac60b --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/board.cmake @@ -0,0 +1,5 @@ +# Copyright (c) 2025 Microchip Technology Inc. +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(pyocd "--target=pic32cm5164jh01048" "--frequency=4000") +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/board.yml b/boards/microchip/pic32c/pic32cm_jh01_cnano/board.yml new file mode 100644 index 0000000000000..640247892d8c5 --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/board.yml @@ -0,0 +1,9 @@ +# Copyright (c) 2025 Microchip Technology Inc. +# SPDX-License-Identifier: Apache-2.0 + +board: + name: pic32cm_jh01_cnano + full_name: PIC32CM JH01 Curiosity Nano+ Touch Evaluation Kit + vendor: microchip + socs: + - name: pic32cm5164jh01048 diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/doc/img/pic32cm_jh01_cnano.webp b/boards/microchip/pic32c/pic32cm_jh01_cnano/doc/img/pic32cm_jh01_cnano.webp new file mode 100644 index 0000000000000..1ba3b7d793572 Binary files /dev/null and b/boards/microchip/pic32c/pic32cm_jh01_cnano/doc/img/pic32cm_jh01_cnano.webp differ diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/doc/index.rst b/boards/microchip/pic32c/pic32cm_jh01_cnano/doc/index.rst new file mode 100644 index 0000000000000..1bed4b3262bc9 --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/doc/index.rst @@ -0,0 +1,126 @@ +.. zephyr:board:: pic32cm_jh01_cnano + +Overview +******** + +The PIC32CM JH01 Curiosity Nano+ Touch Evaluation Kit (EV29G58A) is +a hardware platform that contains a PIC32CM5164JH01048 microcontroller (MCU). +The Curiosity Nano+ Touch Evaluation Kit provides easy access +to the MCU features and can develop custom applications. + +Hardware +******** + +- PIC32CM5164JH01048 MCU +- Arm® Cortex®-M0+ based MCU +- One yellow user LED +- One mechanical user switch +- One user touch button +- CAN interface +- LIN interface +- USB for debugger + + - Can be used for powering the board + - Must be used to program, or debug, the board +- On-board nano debugger (nEDBG) + + - One green power/status LED + - Programming and debugging + - Communications Device Class (CDC) virtual COM port + - One logic analyzer DGI GPIO + - The target device is programmed and debugged by the on-board Nano + debugger; no external programmer, or debugging tool, is required +- Adjustable target voltage + + - MIC5353 LDO regulator controlled by the on-board debugger + - 1.7V to 3.6V output voltage + - 500-mA maximum output current (limited by ambient + temperature and output voltage) + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +Connections and IOs +=================== + +The `PIC32CM JH01 Curiosity Nano User Guide`_ has detailed information about board connections. + +Programming & Debugging +*********************** + +.. zephyr:board-supported-runners:: + +Setting Up the Debug Interface +============================== + +PyOCD Setup +=========== + +1. Install Device Pack + + - Add support for the PIC32CM family devices using the following command: + + .. code-block:: console + + pyocd pack install pic32cm + +2. Verify Device Support + + - Confirm that the target is recognized: + + .. code-block:: console + + pyocd list --targets + + - You should see an entry similar to: + + .. code-block:: text + + pic32cm5164jh01048 Microchip PIC32CM5164JH01048 PIC32CM-JH pack + +3. Connect the Board + + - Connect the DEBUG USB(J18) port on the board to your host machine. + - This connection **power up the board** and provides access to the **on-board Embedded Debugger (EDBG)**, + which enables programming and debugging of the target microcontroller through PyOCD. + +Building and Flashing the Application +===================================== + +1. Build the Application + + You can build a sample Zephyr application, such as **Blinky**, using the ``west`` tool. + Run the following commands from your Zephyr workspace: + + .. code-block:: console + + west build -b pic32cm_jh01_cnano -p -s samples/basic/blinky + + This will build the Blinky application for the ``pic32cm_jh01_cnano`` board. + +2. Flash the Device + + Once the build completes, flash the firmware using: + + .. code-block:: console + + west flash + +3. Observe the Result + + After flashing, **LED1** on the board should start **blinking**, indicating that the + application is running successfully. + +References +********** + +PIC32CM JH01 Product Page: + https://www.microchip.com/en-us/product/PIC32CM5164JH01048 + +PIC32CM JH01 Curiosity Nano evaluation kit Page: + https://www.microchip.com/en-us/development-tool/ev29g58a + +.. _PIC32CM JH01 Curiosity Nano User Guide: + https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/UserGuides/PIC32CM-JH01-Curiosity-Nano%2B-Touch-User-Guide-DS70005552.pdf diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano.dts b/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano.dts new file mode 100644 index 0000000000000..88fed4f98d35b --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano.dts @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2025 Microchip Technology Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include + +/ { + model = "PIC32CM JH01 Curiosity Nano"; + compatible = "pic32cmjh01,cnano", "microchip,pic32cm5164jh01048", "microchip,pic32cm"; + + chosen { + zephyr,sram = &sram0; + zephyr,flash = &flash0; + }; + + aliases { + led0 = &led0; + sw0 = &button0; + }; + + leds { + compatible = "gpio-leds"; + + led0: led_0 { + gpios = <&porta 19 GPIO_ACTIVE_HIGH>; + label = "Yellow LED"; + }; + }; + + buttons { + compatible = "gpio-keys"; + + button0: button_0 { + gpios = <&porta 27 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "SW0"; + zephyr,code = ; + }; + }; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + storage_partition: partition@7c000 { + label = "storage"; + reg = <0x0007c000 0x4000>; + }; + }; +}; + +&cpu0 { + clock-frequency = <4000000>; +}; diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano.yaml b/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano.yaml new file mode 100644 index 0000000000000..62add5b0a1c75 --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano.yaml @@ -0,0 +1,15 @@ +# Copyright (c) 2025 Microchip Technology Inc. +# SPDX-License-Identifier: Apache-2.0 + +identifier: pic32cm_jh01_cnano +name: PIC32CM JH01 Curiosity Nano +type: mcu +arch: arm +toolchain: + - zephyr +flash: 512 +ram: 64 +supported: + - gpio + - pinctrl +vendor: microchip diff --git a/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano_defconfig b/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano_defconfig new file mode 100644 index 0000000000000..912a8e1042370 --- /dev/null +++ b/boards/microchip/pic32c/pic32cm_jh01_cnano/pic32cm_jh01_cnano_defconfig @@ -0,0 +1,5 @@ +# Copyright (c) 2025 Microchip Technology Inc. +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_BUILD_OUTPUT_HEX=y +CONFIG_ARM_MPU=y