From 275932b3ea196dc2d512fee429b49ec6255fb89a Mon Sep 17 00:00:00 2001 From: Sadik Ozer Date: Mon, 8 Jan 2024 08:59:40 +0300 Subject: [PATCH] boards: Add max32666evkit board Add MAX32666EVKIT board file and documentation For more information about this board please check https://www.analog.com/ Signed-off-by: Sadik Ozer --- .../adi/max32666evkit/Kconfig.max32666evkit | 7 + boards/adi/max32666evkit/board.cmake | 9 + boards/adi/max32666evkit/board.yml | 8 + .../max32666evkit/doc/img/max32666evkit.webp | Bin 0 -> 54390 bytes boards/adi/max32666evkit/doc/index.rst | 311 ++++++++++++++++++ .../max32666evkit_max32666_cpu0.dts | 81 +++++ .../max32666evkit_max32666_cpu0.yaml | 14 + .../max32666evkit_max32666_cpu0_defconfig | 13 + 8 files changed, 443 insertions(+) create mode 100644 boards/adi/max32666evkit/Kconfig.max32666evkit create mode 100644 boards/adi/max32666evkit/board.cmake create mode 100644 boards/adi/max32666evkit/board.yml create mode 100644 boards/adi/max32666evkit/doc/img/max32666evkit.webp create mode 100644 boards/adi/max32666evkit/doc/index.rst create mode 100644 boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts create mode 100644 boards/adi/max32666evkit/max32666evkit_max32666_cpu0.yaml create mode 100644 boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig diff --git a/boards/adi/max32666evkit/Kconfig.max32666evkit b/boards/adi/max32666evkit/Kconfig.max32666evkit new file mode 100644 index 00000000000..a648082e506 --- /dev/null +++ b/boards/adi/max32666evkit/Kconfig.max32666evkit @@ -0,0 +1,7 @@ +# MAX32666EVKIT boards configuration + +# Copyright (c) 2024 Analog Devices, Inc. +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_MAX32666EVKIT + select SOC_MAX32666_CPU0 if BOARD_MAX32666EVKIT_MAX32666_CPU0 diff --git a/boards/adi/max32666evkit/board.cmake b/boards/adi/max32666evkit/board.cmake new file mode 100644 index 00000000000..80033d85bdc --- /dev/null +++ b/boards/adi/max32666evkit/board.cmake @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Analog Devices, Inc. +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(openocd --cmd-pre-init "source [find interface/cmsis-dap.cfg]") +board_runner_args(openocd --cmd-pre-init "source [find target/max32665.cfg]") +board_runner_args(jlink "--device=MAX32666" "--reset-after-load") + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/adi/max32666evkit/board.yml b/boards/adi/max32666evkit/board.yml new file mode 100644 index 00000000000..5d1beff7716 --- /dev/null +++ b/boards/adi/max32666evkit/board.yml @@ -0,0 +1,8 @@ +# Copyright (c) 2024 Analog Devices, Inc. +# SPDX-License-Identifier: Apache-2.0 + +board: + name: max32666evkit + vendor: adi + socs: + - name: max32666 diff --git a/boards/adi/max32666evkit/doc/img/max32666evkit.webp b/boards/adi/max32666evkit/doc/img/max32666evkit.webp new file mode 100644 index 0000000000000000000000000000000000000000..6eed641e25263064a13e95b617359066260a5ce1 GIT binary patch literal 54390 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 X0000000000000000000000000a)|tn literal 0 HcmV?d00001 diff --git a/boards/adi/max32666evkit/doc/index.rst b/boards/adi/max32666evkit/doc/index.rst new file mode 100644 index 00000000000..7177f1eeb71 --- /dev/null +++ b/boards/adi/max32666evkit/doc/index.rst @@ -0,0 +1,311 @@ +.. _max32666evkit: + +MAX32666EVKIT +############# + +Overview +******** +The MAX32666EVKIT provides a platform for evaluating the capabilities of the MAX32665 and MAX32666 +high-efficiency Arm® microcontrollers and audio DSP for wearable and hearable device applications. + + +The Zephyr port is running on the MAX32666 MCU. + +.. image:: img/max32666evkit.webp + :align: center + :alt: MAX32666EVKIT Front + + +Hardware +******** + +- MAX32666 MCU: + + - High-Efficiency Microcontroller and Audio DSP for Wearable and Hearable Devices + + - Arm Cortex-M4 with FPU Up to 96MHz + - Optional Second Arm Cortex-M4 with FPU Optimized for Data Processing + - Low-Power 7.3728MHz System Clock Option + - 1MB Flash, Organized into Dual Banks 2 x 512KB + - 560KB (448KB ECC) SRAM; 3 x 16KB Cache + - Optional Error Correction Code (ECC-SEC-DED)for Cache, SRAM, and Internal Flash + + - Bluetooth 5 Low Energy Radio + + - 1Mbps and 2Mbps Data Throughput + - Long Range (125kbps and 500kbps) + - Advertising Extension + - Rx Sensitivity: -95dbm; Tx Power Up to +4.5dbm + - On-Chip Matching with Single-Ended Antenna Port + + - Power Management Maximizes Operating Time for Battery Applications + + - Integrated SIMO SMPS for Coin-Cell Operation + - Dynamic Voltage Scaling Minimizes Active Core Power Consumption + - 27.3μA/MHz at 3.3V Executing from Cache + - Selectable SRAM Retention in Low Power Modes with RTC Enabled + + - Multiple Peripherals for System Control + + - Three QSPI Master/Slave with Three Chip Selects Each + - Three 4-Wire UARTs + - Three I2C Master/Slave + - Up to 50 GPIO + - QSPI (SPIXF) with Real-Time Flash Decryption + - QSPI (SPIXR) RAM Interface Provides SRAMExpansion + - 8-Input 10-Bit Delta-Sigma ADC 7.8ksps + - USB 2.0 HS Engine with Internal Transceiver + - PDM Interface Supports Two Digital Microphones + - I2S with TDM + - Six 32-Bit Timers + - Two High-Speed Timers + - 1-Wire Master + - Sixteen Pulse Trains (PWM) + - Secure Digital Interface Supports SD3.0/SDIO3.0/eMMC4.51 + + - Secure Valuable IP/Data with Hardware Security + + - Trust Protection Unit (TPU) with MAA SupportsFast ECDSA and Modular Arithmetic + - AES128/192/256, DES, 3DES, Hardware Accelerator + - TRNG Seed Generator + - SHA-2 Accelerator•Secure Bootloader + +- Benefits and Features of MAX32666EVKIT: + + - Bluetooth SMA connector with a 2.4GHz Hinged Whip Antenna + - 1.28in 128 x 128 Monochrome TFT Display + - 64MB XIP Flash + - 1MB XIP RAM + - Stereo Audio Codec with Line-In and Line-Out 3.5mm Jacks + - Digital Audio Microphone + - USB 2.0 Micro B Interface + - USB 2.0 Micro B to Serial UARTs + - Micro SD Card Interface + - Select GPIOs Accessed Through a 0.1in Header + - Access to the 8 Analog Inputs Through a 0.1in Header + - Arm® or SWD JTAG 20-Pin Header + - 1-Wire RJ11 Port + - Can Be Solely Sourced by a Coin Cell Battery + - Board Power Provided by Either USB Port + - Individual Power Measurement on All IC Rails Through Jumpers + - On-Board 1.8V and 3.3V Regulators + - Two General-Purpose LEDs and Two General-Purpose Pushbutton Switches + + +Supported Features +================== + +Below interfaces are supported by Zephyr on MAX32666EVKIT. + ++-----------+------------+-------------------------------------+ +| Interface | Controller | Driver/Component | ++===========+============+=====================================+ +| NVIC | on-chip | nested vector interrupt controller | ++-----------+------------+-------------------------------------+ +| SYSTICK | on-chip | systick | ++-----------+------------+-------------------------------------+ +| CLOCK | on-chip | clock and reset control | ++-----------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+-------------------------------------+ +| UART | on-chip | serial | ++-----------+------------+-------------------------------------+ + + +Connections and IOs +=================== + + ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| Name | Name | Settings | Description | ++===========+===============+===============+==================================================================================================+ +| JP1 | I2C0_SCL/SDA | | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects I2C0 SCL and SDA 1.5K pullups from VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects I2C0 SCL and SDA 1.5K pullups to VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP2 | I2C1_SCL/SDA | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects I2C1 SCL and SDA 1.5K pullups from VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects I2C1 SCL and SDA 1.5K pullups to VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP3 | I2C2_SCL/SDA | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects I2C2 SCL and SDA 1.5K pullups from VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects I2C2 SCL and SDA 1.5K pullups to VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP4 | P1_14 | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects LED D2 from P1_14. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects LED D2 to P1_14. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP5 | P1_15 | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects LED D3 from P1_15. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects LED D3 to P1_15. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP6 | VBUS | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 2-1 | | | Connects VBUS to USB connector CN1 to supply board power. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 2-3 | | | Connects VBUS to USB connector CN2 to supply board power. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP7 | N/A | N/A | N/A | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP8 | N/A | N/A | N/A | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP9 | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_20 | | | 2-1 | | | Connects the USB to serial UART to GPIO P0_20 (RX1). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_28 | | | 2-3 | | | Connects the USB to serial UART to GPIO P0_28 (RX2). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP10 | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_21 | | | 2-1 | | | Connects the USB to serial UART to GPIO P0_21 (TX1). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_29 | | | 2-3 | | | Connects the USB to serial UART to GPIO P0_29 (TX2). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP11 | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_22 | | | 2-1 | | | Connects the USB to serial UART to GPIO P0_22 (CTS1_N). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_30 | | | 2-3 | | | Connects the USB to serial UART to GPIO P0_30 (CTS2_N). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP12 | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_23 | | | 2-1 | | | Connects the USB to serial UART to GPIO P0_23 (RTS1_N). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | P0_31 | | | 2-3 | | | Connects the USB to serial UART to GPIO P0_31 (RTS2_N). | | +| | +-----------+ | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP13 | VREGI | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 2-1 | | | Connects VREGI to the coin cell battery. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 2-3 | | | Connects VREGI to 3V3. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP14 | VDDIOH | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 1-2 | | | Connects VDDIOH to VREGO_A | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 3-4 | | | Connects VDDIOH to 1V8. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 5-6 | | | Connects VDDIOH to 3V3. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP15 | VDDIOH | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VDDIOH. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP16 | VDDB | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VDDB. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VDDB. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP17 | VDDIO | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 2-1 | | | Connects VDDIO to VREGO_A. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | 2-3 | | | Connects VDDIO to 1V8. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP18 | VDDIO | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VDDIO. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VDDIO. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP19 | VDDA | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VDDA. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VDDA. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP20 | VCORE_A | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VCORE_A. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VCORE_A. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP21 | VCORE_B | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VCORE_B. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VCORE_B. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP22 | VTXIN | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VTXIN. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VTXIN. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ +| JP23 | VRXIN | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Open | | | Disconnects power from VRXIN. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | Close | | | Connects power to VRXIN. | | +| | | +-----------+ | +-------------------------------------------------------------------------------+ | +| | | | | ++-----------+---------------+---------------+--------------------------------------------------------------------------------------------------+ + + + +Programming and Debugging +************************* + +Flashing +======== + +The MAX32666 MCU can be flashed by connecting an external debug probe to the +SWD port. SWD debug can be accessed through the Cortex 10-pin connector, J6. +Logic levels are fixed to VDDIOH (1.8V or 3.3V). + +Once the debug probe is connected to your host computer, then you can simply run the +``west flash`` command to write a firmware image into flash. + +.. note:: + + This board uses OpenOCD as the default debug interface. You can also use + a Segger J-Link with Segger's native tooling by overriding the runner, + appending ``--runner jlink`` to your ``west`` command(s). The J-Link should + be connected to the standard 20-pin connector (J7) or a Cortex® 10-pin connector (J6). + +Debugging +========= + +Please refer to the `Flashing`_ section and run the ``west debug`` command +instead of ``west flash``. + +References +********** + +- `MAX32666EVKIT web page`_ + +.. _MAX32666EVKIT web page: + https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/MAX32666EVKIT.html diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts new file mode 100644 index 00000000000..1726cc897ce --- /dev/null +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.dts @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2024 Analog Devices, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include +#include +#include + +/ { + model = "Analog Devices MAX32666EVKIT"; + compatible = "adi,max32666evkit"; + + chosen { + zephyr,console = &uart1; + zephyr,shell-uart = &uart1; + zephyr,sram = &sram4; + zephyr,flash = &flash0; + }; + + leds { + compatible = "gpio-leds"; + led1: led_1 { + gpios = <&gpio1 14 (GPIO_ACTIVE_LOW | MAX32_GPIO_VSEL_VDDIOH)>; + label = "Red LED"; + }; + led2: led_2 { + gpios = <&gpio1 15 (GPIO_ACTIVE_LOW | MAX32_GPIO_VSEL_VDDIOH)>; + label = "Blue LED"; + }; + }; + + buttons { + compatible = "gpio-keys"; + pb1: pb1 { + gpios = <&gpio1 6 (GPIO_PULL_UP | GPIO_ACTIVE_LOW + | MAX32_GPIO_VSEL_VDDIOH)>; + label = "SW2"; + zephyr,code = ; + }; + pb2: pb2 { + gpios = <&gpio1 7 (GPIO_PULL_UP | GPIO_ACTIVE_LOW + | MAX32_GPIO_VSEL_VDDIOH)>; + label = "SW3"; + zephyr,code = ; + }; + }; + + /* These aliases are provided for compatibility with samples */ + aliases { + led0 = &led1; + led1 = &led2; + sw0 = &pb1; + sw1 = &pb2; + }; +}; + +&uart1 { + pinctrl-0 = <&uart1_tx_p0_21 &uart1_rx_p0_20>; + pinctrl-names = "default"; + current-speed = <115200>; + data-bits = <8>; + parity = "none"; + status = "okay"; +}; + +&clk_ipo { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.yaml b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.yaml new file mode 100644 index 00000000000..f2b63efd1e6 --- /dev/null +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0.yaml @@ -0,0 +1,14 @@ +identifier: max32666evkit/max32666/cpu0 +name: max32666evkit cpu0 +vendor: adi +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - gpio + - serial +ram: 560 +flash: 1024 diff --git a/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig new file mode 100644 index 00000000000..fc547f746b1 --- /dev/null +++ b/boards/adi/max32666evkit/max32666evkit_max32666_cpu0_defconfig @@ -0,0 +1,13 @@ +# Copyright (c) 2024 Analog Devices, Inc. +# SPDX-License-Identifier: Apache-2.0 + +# Enable GPIO +CONFIG_GPIO=y + +# Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# enable uart driver +CONFIG_SERIAL=y +CONFIG_UART_INTERRUPT_DRIVEN=y