boards: adi: Add max32690fthr
Adds a new board definition for the ADI MAX32690FTHR board. This board uses the same SoC as the MAX32690EVKIT board, but with a smaller feather form factor. Tested on hardware with the following samples: - samples/hello_world - samples/basic/blinky - samples/basic/threads - samples/subsys/shell/shell_module - samples/subsys/input/input_dump Signed-off-by: Maureen Helm <maureen.helm@analog.com>
This commit is contained in:
parent
d1a6b45345
commit
ceaf6055e1
7 changed files with 332 additions and 0 deletions
7
boards/adi/max32690fthr/Kconfig.max32690fthr
Normal file
7
boards/adi/max32690fthr/Kconfig.max32690fthr
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# MAX32690 board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2023-2024 Analog Devices, Inc.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_MAX32690FTHR
|
||||||
|
select SOC_MAX32690_M4 if BOARD_MAX32690FTHR_MAX32690_M4
|
9
boards/adi/max32690fthr/board.cmake
Normal file
9
boards/adi/max32690fthr/board.cmake
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Copyright (c) 2023-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/max32690.cfg]")
|
||||||
|
board_runner_args(jlink "--device=MAX32690" "--reset-after-load")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
8
boards/adi/max32690fthr/board.yml
Normal file
8
boards/adi/max32690fthr/board.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Copyright (c) 2023-2024 Analog Devices, Inc.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
board:
|
||||||
|
name: max32690fthr
|
||||||
|
vendor: adi
|
||||||
|
socs:
|
||||||
|
- name: max32690
|
134
boards/adi/max32690fthr/doc/index.rst
Normal file
134
boards/adi/max32690fthr/doc/index.rst
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
.. _max32690_fthr:
|
||||||
|
|
||||||
|
MAX32690FTHR
|
||||||
|
############
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The MAX32690FTHR is a rapid development platform to help engineers quickly
|
||||||
|
implement ultra low-power wireless solutions using MAX32690 Arm© Cortex®-M4F
|
||||||
|
and Bluetooth® 5.2 Low Energy (LE). The board also includes the MAX77654 PMIC
|
||||||
|
for battery and power management. The form factor is a small 0.9in x 2.6in
|
||||||
|
dual-row header footprint that is compatible with Adafruit Feather Wing
|
||||||
|
peripheral expansion boards.
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
- MAX32690 MCU:
|
||||||
|
|
||||||
|
- Ultra-Efficient Microcontroller for Battery-Powered Applications
|
||||||
|
|
||||||
|
- 120MHz Arm Cortex-M4 Processor with FPU
|
||||||
|
- 7.3728MHz and 60MHz Low-Power Oscillators
|
||||||
|
- External Crystal Support (32MHz required for BLE)
|
||||||
|
- 32.768kHz RTC Clock (Requires External Crystal)
|
||||||
|
- 8kHz Always-On Ultra-Low Power Oscillator
|
||||||
|
- 3MB Internal Flash, 1MB Internal SRAM (832kB ECC ON)
|
||||||
|
- 85 μW/MHz ACTIVE mode at 1.1V
|
||||||
|
- 1.8V and 3.3V I/O with No Level Translators
|
||||||
|
- External Flash & SRAM Expansion Interfaces
|
||||||
|
|
||||||
|
- Bluetooth 5.2 LE Radio
|
||||||
|
|
||||||
|
- Dedicated, Ultra-Low-Power, 32-Bit RISC-V Coprocessor to Offload
|
||||||
|
Timing-Critical Bluetooth Processing
|
||||||
|
- Fully Open-Source Bluetooth 5.2 Stack Available
|
||||||
|
- Supports AoA, AoD, LE Audio, and Mesh
|
||||||
|
- High-Throughput (2Mbps) Mode
|
||||||
|
- Long-Range (125kbps and 500kbps) Modes
|
||||||
|
- Rx Sensitivity: -97.5dBm; Tx Power: +4.5dBm
|
||||||
|
- Single-Ended Antenna Connection (50Ω)
|
||||||
|
|
||||||
|
- Multiple Peripherals for System Control
|
||||||
|
|
||||||
|
- 16-Channel DMA
|
||||||
|
- Up To Five Quad SPI Master (60MHz)/Slave (48MHz)
|
||||||
|
- Up To Four 1Mbaud UARTs with Flow Control
|
||||||
|
- Up To Two 1MHz I2C Master/Slave
|
||||||
|
- I2S Master/Slave
|
||||||
|
- Eight External Channel, 12-bit 1MSPS SAR ADC w/ on-die temperature sensor
|
||||||
|
- USB 2.0 Hi-Speed Device
|
||||||
|
- 16 Pulse Train Engines
|
||||||
|
- Up To Six 32-Bit Timers with 8mA High Drive
|
||||||
|
- Up To Two CAN 2.0 Controllers
|
||||||
|
- Up To Four Micro-Power Comparators
|
||||||
|
- 1-Wire Master
|
||||||
|
|
||||||
|
- Security and Integrity
|
||||||
|
|
||||||
|
- ChipDNA Physically Un-clonable Function (PUF)
|
||||||
|
- Modular Arithmetic Accelerator (MAA), True Random Number Generator (TRNG)
|
||||||
|
- Secure Nonvolatile Key Storage, SHA-256, AES-128/192/256
|
||||||
|
- Secure Boot ROM
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
Below interfaces are supported by Zephyr on MAX32690FTHR.
|
||||||
|
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| 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 |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| I2C | on-chip | i2c |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| SPI | on-chip | spi |
|
||||||
|
+--------------------------------------------------------------+
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
The MAX32690 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, J4.
|
||||||
|
Logic levels are fixed to VDDIO (1.8V).
|
||||||
|
|
||||||
|
Once the debug probe is connected to your host computer, then you can run the
|
||||||
|
``west flash`` command to write a firmware image into flash. Here is an example
|
||||||
|
for the :ref:`hello_world` application.
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: max32690fthr/max32690/m4
|
||||||
|
:goals: 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 (J4) using an
|
||||||
|
appropriate adapter board and cable.
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
Once the debug probe is connected to your host computer, then you can run the
|
||||||
|
``west debug`` command to write a firmware image into flash and start a debug
|
||||||
|
session. Here is an example for the :ref:`hello_world` application.
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: max32690fthr/max32690/m4
|
||||||
|
:goals: debug
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
|
||||||
|
- `MAX32690 product page`_
|
||||||
|
|
||||||
|
.. _MAX32690 product page:
|
||||||
|
https://www.analog.com/en/products/max32690.html
|
142
boards/adi/max32690fthr/max32690fthr_max32690_m4.dts
Normal file
142
boards/adi/max32690fthr/max32690fthr_max32690_m4.dts
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023-2024 Analog Devices, Inc.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <adi/max32/max32690.dtsi>
|
||||||
|
#include <adi/max32/max32690-pinctrl.dtsi>
|
||||||
|
#include <zephyr/dt-bindings/gpio/adi-max32-gpio.h>
|
||||||
|
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Analog Devices MAX32690FTHR";
|
||||||
|
compatible = "adi,max32690fthr";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,console = &uart0;
|
||||||
|
zephyr,shell-uart = &uart0;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
red_led: led_0 {
|
||||||
|
gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED0";
|
||||||
|
};
|
||||||
|
green_led: led_1 {
|
||||||
|
gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED1";
|
||||||
|
};
|
||||||
|
blue_led: led_2 {
|
||||||
|
gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "LED2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
buttons {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
pb1: pb1 {
|
||||||
|
gpios = <&gpio1 14 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||||
|
label = "SW3";
|
||||||
|
zephyr,code = <INPUT_KEY_0>;
|
||||||
|
};
|
||||||
|
pb2: pb2 {
|
||||||
|
gpios = <&gpio1 15 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||||
|
label = "SW4";
|
||||||
|
zephyr,code = <INPUT_KEY_1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &red_led;
|
||||||
|
led1 = &green_led;
|
||||||
|
led2 = &blue_led;
|
||||||
|
sw0 = &pb1;
|
||||||
|
sw1 = &pb2;
|
||||||
|
};
|
||||||
|
|
||||||
|
feather_header: feather_connector {
|
||||||
|
compatible = "adafruit-feather-header";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map = <0 0 &gpio3 0 0>, /* A0 */
|
||||||
|
<1 0 &gpio3 1 0>, /* A1 */
|
||||||
|
<2 0 &gpio3 4 0>, /* A2 */
|
||||||
|
<3 0 &gpio0 9 0>, /* A3 */
|
||||||
|
<4 0 &gpio0 10 0>, /* A4 */
|
||||||
|
<5 0 &gpio0 7 0>, /* A5 */
|
||||||
|
<6 0 &gpio2 29 0>, /* SCK */
|
||||||
|
<7 0 &gpio2 28 0>, /* MOSI */
|
||||||
|
<8 0 &gpio2 27 0>, /* MISO */
|
||||||
|
<9 0 &gpio1 9 0>, /* RXD */
|
||||||
|
<10 0 &gpio1 10 0>, /* TXD */
|
||||||
|
/* 11 (D2) not connected */
|
||||||
|
<12 0 &gpio2 7 0>, /* SDA */
|
||||||
|
<13 0 &gpio2 8 0>, /* SCL */
|
||||||
|
<14 0 &gpio1 7 0>, /* D5 */
|
||||||
|
<15 0 &gpio1 8 0>, /* D6 */
|
||||||
|
<16 0 &gpio2 26 0>, /* D9 */
|
||||||
|
<17 0 &gpio0 23 0>, /* D10 */
|
||||||
|
<18 0 &gpio1 12 0>, /* D11 */
|
||||||
|
<19 0 &gpio1 11 0>, /* D12 */
|
||||||
|
<20 0 &gpio0 8 0>; /* D13 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&clk_ibro {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio2 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
clock-source = <ADI_MAX32_PRPH_CLK_SRC_IBRO>;
|
||||||
|
pinctrl-0 = <&uart0a_tx_p2_12 &uart0a_rx_p2_11>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
current-speed = <115200>;
|
||||||
|
data-bits = <8>;
|
||||||
|
parity = "none";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
feather_serial: &uart2 {
|
||||||
|
clock-source = <ADI_MAX32_PRPH_CLK_SRC_IBRO>;
|
||||||
|
pinctrl-0 = <&uart2a_tx_p1_10 &uart2a_rx_p1_9>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
current-speed = <115200>;
|
||||||
|
data-bits = <8>;
|
||||||
|
parity = "none";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
feather_i2c: &i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&i2c0a_scl_p2_8 &i2c0a_sda_p2_7>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
feather_spi: &spi0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&spi0b_mosi_p2_28 &spi0b_miso_p2_27 &spi0b_sck_p2_29>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
};
|
19
boards/adi/max32690fthr/max32690fthr_max32690_m4.yaml
Normal file
19
boards/adi/max32690fthr/max32690fthr_max32690_m4.yaml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
identifier: max32690fthr/max32690/m4
|
||||||
|
name: max32690fthr m4
|
||||||
|
vendor: adi
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- serial
|
||||||
|
- i2c
|
||||||
|
- spi
|
||||||
|
- feather_serial
|
||||||
|
- feather_i2c
|
||||||
|
- feather_spi
|
||||||
|
ram: 1024
|
||||||
|
flash: 3072
|
13
boards/adi/max32690fthr/max32690fthr_max32690_m4_defconfig
Normal file
13
boards/adi/max32690fthr/max32690fthr_max32690_m4_defconfig
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# Copyright (c) 2023-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
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
CONFIG_UART_INTERRUPT_DRIVEN=y
|
Loading…
Add table
Add a link
Reference in a new issue