Skip to content

Commit

Permalink
boards: adi: Add MAX32650FTHR board
Browse files Browse the repository at this point in the history
This commit adds MAX32650FTHR board
basic port.

Signed-off-by: Yasin Ustuner <[email protected]>
Signed-off-by: Burak Babaoglu <[email protected]>
  • Loading branch information
yasin-ADI committed Feb 13, 2025
1 parent 664a3f8 commit 597b497
Show file tree
Hide file tree
Showing 8 changed files with 260 additions and 0 deletions.
7 changes: 7 additions & 0 deletions boards/adi/max32650fthr/Kconfig.max32650fthr
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# MAX32650FTHR board configuration

# Copyright (c) 2025 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0

config BOARD_MAX32650FTHR
select SOC_MAX32650
8 changes: 8 additions & 0 deletions boards/adi/max32650fthr/board.cmake
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions boards/adi/max32650fthr/board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright (c) 2025 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0

board:
name: max32650fthr
full_name: MAX32650FTHR
vendor: adi
socs:
- name: max32650
Binary file added boards/adi/max32650fthr/doc/img/max32650fthr.webp
Binary file not shown.
118 changes: 118 additions & 0 deletions boards/adi/max32650fthr/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
.. zephyr:board:: max32650fthr
Overview
********
The MAX32650FTHR evaluation 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/max32650fthr.webp
:align: center
:alt: MAX32650 FTHR 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 MAX32650FTHR:

- Battery Connector and Charging Circuit
- Micro-SD Card Interface
- USB 2.0 Full-Speed Device Interface
- MAX11261 6-Channel, 24-Bit, 16ksps, ADC
- Adafruit® Feather Board Compatible

Supported Features
==================

The ``max32650fthr`` 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, J5.
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 (J5) 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
**********

- `MAX32650FTHR web page`_

.. _MAX32650FTHR web page:
https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32650fthr.html
89 changes: 89 additions & 0 deletions boards/adi/max32650fthr/max32650fthr.dts
Original file line number Diff line number Diff line change
@@ -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 MAX32650FTHR";
compatible = "adi,max32650fthr";

chosen {
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
};

leds {
compatible = "gpio-leds";

led1: led_1 {
gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
label = "Red LED";
};

led2: led_2 {
gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
label = "Green LED";
};
};

buttons {
compatible = "gpio-keys";

pb1: pb1 {
gpios = <&gpio1 19 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "SW2";
zephyr,code = <INPUT_KEY_0>;
};

pb2: pb2 {
gpios = <&gpio1 21 (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 changes: 13 additions & 0 deletions boards/adi/max32650fthr/max32650fthr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
identifier: max32650fthr
name: max32650fthr
vendor: adi
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
supported:
- gpio
- serial
ram: 1024
flash: 3072
16 changes: 16 additions & 0 deletions boards/adi/max32650fthr/max32650fthr_defconfig
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 597b497

Please sign in to comment.