Browse Source

boards: adi: Add MAX32650EVKIT board

This commit adds MAX32650EVKIT board
basic port.

Signed-off-by: Burak Babaoglu <Burak.Babaoglu@analog.com>
Signed-off-by: Yasin Ustuner <Yasin.Ustuner@analog.com>
pull/85789/head
Burak Babaoglu 5 months ago committed by Benjamin Cabé
parent
commit
cda8e7b619
  1. 7
      boards/adi/max32650evkit/Kconfig.max32650evkit
  2. 8
      boards/adi/max32650evkit/board.cmake
  3. 9
      boards/adi/max32650evkit/board.yml
  4. BIN
      boards/adi/max32650evkit/doc/img/max32650evkit.webp
  5. 119
      boards/adi/max32650evkit/doc/index.rst
  6. 89
      boards/adi/max32650evkit/max32650evkit.dts
  7. 13
      boards/adi/max32650evkit/max32650evkit.yaml
  8. 16
      boards/adi/max32650evkit/max32650evkit_defconfig
  9. 4
      boards/common/openocd-adi-max32.boards.cmake

7
boards/adi/max32650evkit/Kconfig.max32650evkit

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
# MAX32650EVKIT boards configuration
# Copyright (c) 2025 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0
config BOARD_MAX32650EVKIT
select SOC_MAX32650

8
boards/adi/max32650evkit/board.cmake

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
# Copyright (c) 2025 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0
board_runner_args(jlink "--device=MAX32650" "--reset-after-load")
include(${ZEPHYR_BASE}/boards/common/openocd-adi-max32.boards.cmake)
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

9
boards/adi/max32650evkit/board.yml

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
# Copyright (c) 2025 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0
board:
name: max32650evkit
full_name: MAX32650EVKIT
vendor: adi
socs:
- name: max32650

BIN
boards/adi/max32650evkit/doc/img/max32650evkit.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

119
boards/adi/max32650evkit/doc/index.rst

@ -0,0 +1,119 @@ @@ -0,0 +1,119 @@
.. zephyr:board:: max32650evkit
Overview
********
The MAX32650 evaluation kit (EV kit) provides a platform for evaluating the
capabilities of the MAX32650 ultra-low power memory-scalable microcontroller
designed specifically for high performance battery powered applications.
The Zephyr port is running on the MAX32650 MCU.
.. image:: img/max32650evkit.webp
:align: center
:alt: MAX32650 EVKIT Front
Hardware
********
- MAX32650 MCU:
- Ultra Efficient Microcontroller for Battery-Powered Applications
- 120MHz Arm Cortex-M4 with FPU
- SmartDMA Provides Background Memory Transfers with Programmable Data Processing
- 120MHz High-Speed and 50MHz Low-Power Oscillators
- 7.3728MHz Low Power Oscillators
- 32.768kHz and RTC Clock (Requires External Crystal)
- 8kHz, Always-on, Ultra-Low-Power Oscillator
- 3MB Internal Flash, 1MB Internal SRAM
- 104µW/MHz Executing from Cache at 1.1V
- Five Low-Power Modes: Active, Sleep, Background, Deep-Sleep, and Backup
- 1.8V and 3.3V I/O with No Level Translators
- Programming and Debugging
- Scalable Cached External Memory Interfaces
- 120MB/s HyperBus/Xccela DDR Interface
- SPIXF/SPIXR for External Flash/RAM Expansion
- 240Mbps SDHC/eMMC/SDIO/microSD Interface
- Optimal Peripheral Mix Provides Platform Scalability
- 16-Channel DMA
- Three SPI Master (60MHz)/Slave (48MHz)
- One QuadSPI Master (60MHz)/Slave (48MHz)
- Up to Three 4Mbaud UARTs with Flow Control
- Two 1MHz I2C Master/Slave
- I2S Slave
- Four-Channel, 7.8ksps, 10-bit Delta-Sigma ADC
- USB 2.0 Hi-Speed Device Interface with PHY
- 16 Pulse Train Generators
- Six 32-bit Timers with 8mA Hi-Drive
- 1-Wire® Master
- Trust Protection Unit (TPU) for IP/Data and Security
- Modular Arithmetic Accelerator (MAA), True Random Number Generator (TRNG)
- Secure Nonvolatile Key Storage, SHA-256, AES-128/192/256
- Memory Decryption Integrity Unit, Secure Boot ROM
- External devices connected to the MAX32650EVKIT:
- 3.5in 320 x 240 Color TFT Display
- 64MB HyperRAM
- 64MB XIP Flash
- 1MB XIP RAM
- USB 2.0 Micro B
- Two General-Purpose LEDs and Two GeneralPurpose Pushbutton Switches
Supported Features
==================
The ``max32650evkit`` board supports the following interfaces:
+-----------+------------+-------------------------------------+
| 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 |
+-----------+------------+-------------------------------------+
Programming and Debugging
*************************
Flashing
========
The MAX32650 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, J3.
Logic levels are fixed to VDDIO (1.8V).
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 2*5 pin debug connector (J3) using an
appropriate adapter board and cable
Debugging
=========
Please refer to the `Flashing`_ section and run the ``west debug`` command
instead of ``west flash``.
References
**********
- `MAX32650EVKIT web page`_
.. _MAX32650EVKIT web page:
https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32650-evkit.html

89
boards/adi/max32650evkit/max32650evkit.dts

@ -0,0 +1,89 @@ @@ -0,0 +1,89 @@
/*
* Copyright (c) 2025 Analog Devices, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <adi/max32/max32650.dtsi>
#include <adi/max32/max32650-pinctrl.dtsi>
#include <zephyr/dt-bindings/gpio/adi-max32-gpio.h>
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Analog Devices MAX32650EVKIT";
compatible = "adi,max32650evkit";
chosen {
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
};
leds {
compatible = "gpio-leds";
led1: led_1 {
gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
label = "Red LED";
};
led2: led_2 {
gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
label = "Green LED";
};
};
buttons {
compatible = "gpio-keys";
pb1: pb1 {
gpios = <&gpio2 28 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "SW2";
zephyr,code = <INPUT_KEY_0>;
};
pb2: pb2 {
gpios = <&gpio2 30 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "SW3";
zephyr,code = <INPUT_KEY_1>;
};
};
/* These aliases are provided for compatibility with samples */
aliases {
led0 = &led1;
led1 = &led2;
};
};
&uart0 {
pinctrl-0 = <&uart0_tx_p2_12 &uart0_rx_p2_11>;
pinctrl-names = "default";
current-speed = <115200>;
data-bits = <8>;
parity = "none";
status = "okay";
};
&clk_ipo {
status = "okay";
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&gpio2 {
status = "okay";
};
&gpio3 {
status = "okay";
};

13
boards/adi/max32650evkit/max32650evkit.yaml

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
identifier: max32650evkit
name: max32650evkit
vendor: adi
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
supported:
- gpio
- serial
ram: 1024
flash: 3072

16
boards/adi/max32650evkit/max32650evkit_defconfig

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
# Copyright (c) 2025 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0
# Enable MPU
CONFIG_ARM_MPU=y
# Enable GPIO
CONFIG_GPIO=y
# Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
# Enable UART
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y

4
boards/common/openocd-adi-max32.boards.cmake

@ -6,7 +6,9 @@ @@ -6,7 +6,9 @@
# Default cmsis-dap, it will be overwritten below if requires
set(MAX32_INTERFACE_CFG "cmsis-dap.cfg")
if(CONFIG_SOC_MAX32655_M4)
if(CONFIG_SOC_MAX32650)
set(MAX32_TARGET_CFG "max32650.cfg")
elseif(CONFIG_SOC_MAX32655_M4)
set(MAX32_TARGET_CFG "max32655.cfg")
elseif(CONFIG_SOC_MAX32662)
set(MAX32_TARGET_CFG "max32662.cfg")

Loading…
Cancel
Save