From a353adf1d5e12cb3130ee90fe7757a81e7e0ccea Mon Sep 17 00:00:00 2001 From: Dimitrije Lilic Date: Tue, 4 Mar 2025 10:24:44 +0100 Subject: [PATCH] boards: shields: Add EVAL-AD4052-ARDZ adc shield Adds a new shield definition for the Analog Devices EVAL-AD4052-ARDZ accelerometer shield. This shield provides support for an ADI AD4052 16BIT adc over an Arduino SPI connector. Signed-off-by: Dimitrije Lilic --- .../shields/eval_ad4052_ardz/Kconfig.shield | 5 ++ .../boards/apard32690_max32690_m4.overlay | 11 ++++ boards/shields/eval_ad4052_ardz/doc/index.rst | 52 +++++++++++++++++++ .../eval_ad4052_ardz/eval_ad4052_ardz.overlay | 31 +++++++++++ 4 files changed, 99 insertions(+) create mode 100644 boards/shields/eval_ad4052_ardz/Kconfig.shield create mode 100644 boards/shields/eval_ad4052_ardz/boards/apard32690_max32690_m4.overlay create mode 100644 boards/shields/eval_ad4052_ardz/doc/index.rst create mode 100644 boards/shields/eval_ad4052_ardz/eval_ad4052_ardz.overlay diff --git a/boards/shields/eval_ad4052_ardz/Kconfig.shield b/boards/shields/eval_ad4052_ardz/Kconfig.shield new file mode 100644 index 000000000000..c53e991ee5a2 --- /dev/null +++ b/boards/shields/eval_ad4052_ardz/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2025 Analog Devices, Inc. +# SPDX-License-Identifier: Apache-2.0 + +config SHIELD_EVAL_AD4052_ARDZ + def_bool $(shields_list_contains,eval_ad4052_ardz) diff --git a/boards/shields/eval_ad4052_ardz/boards/apard32690_max32690_m4.overlay b/boards/shields/eval_ad4052_ardz/boards/apard32690_max32690_m4.overlay new file mode 100644 index 000000000000..eadfaa8d4695 --- /dev/null +++ b/boards/shields/eval_ad4052_ardz/boards/apard32690_max32690_m4.overlay @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2025 Analog Devices, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + zephyr,user { + io-channels = <&adc4052_eval_ad4052_ardz 0>; + }; +}; diff --git a/boards/shields/eval_ad4052_ardz/doc/index.rst b/boards/shields/eval_ad4052_ardz/doc/index.rst new file mode 100644 index 000000000000..771920affdc3 --- /dev/null +++ b/boards/shields/eval_ad4052_ardz/doc/index.rst @@ -0,0 +1,52 @@ +.. _eval_ad4052_ardz: + +EVAL-AD4052-ARDZ +################# + +Overview +******** + +The EVAL-AD4052-ARDZ is a 16-Bit SAR ADC Arduino shield powered +by the Analog Devices AD4052. + +Programming +*********** + +Set ``--shield eval_ad4052_ardz`` when you invoke ``west build``. For example: + +.. zephyr-app-commands:: + :zephyr-app: samples/drivers/adc/ + :board: apard32690/max32690/m4 + :shield: eval_ad4052_ardz + :goals: build + +Requirements +************ + +This shield can only be used with a board which provides a configuration for +Arduino connectors and defines node aliases for SPI and GPIO interfaces (see +:ref:`shields` for more details). + +References +********** + +- `EVAL-AD4052-ARDZ product page`_ +- `EVAL-AD4052-ARDZ user guide`_ +- `EVAL-AD4052-ARDZ schematic`_ +- `AD4052 product page`_ +- `AD4052 data sheet`_ + +.. _EVAL-AD4052-ARDZ product page: + https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad4052-ardz.html#eb-overview + +.. _EVAL-AD4052-ARDZ user guide: + https://www.analog.com/media/en/technical-documentation/user-guides/eval-ad4050-ad4052-ug-2222.pdf + +.. _EVAL-AD4052-ARDZ schematic: + https://www.analog.com/media/en/evaluation-documentation/evaluation-design-files/eval-ad4052-ardz-designsupport-files.zip + +.. _AD4052 product page: + https://www.analog.com/en/products/ad4052.html + +.. _AD4052 data sheet: + https://www.analog.com/media/en/technical-documentation/data-sheets/ad4052-ad4058.pdf diff --git a/boards/shields/eval_ad4052_ardz/eval_ad4052_ardz.overlay b/boards/shields/eval_ad4052_ardz/eval_ad4052_ardz.overlay new file mode 100644 index 000000000000..aebf2ae8d922 --- /dev/null +++ b/boards/shields/eval_ad4052_ardz/eval_ad4052_ardz.overlay @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2025 Analog Devices, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&arduino_spi { + status = "okay"; + + adc4052_eval_ad4052_ardz: adc4052@0 { + reg = <0>; + spi-max-frequency = ; + gp1-gpios = <&arduino_header 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; + gp0-gpios = <&arduino_header 15 (GPIO_PULL_DOWN)>; + conversion-gpios = <&arduino_header 13 (GPIO_ACTIVE_HIGH | MAX32_GPIO_VSEL_VDDIOH)>; + #address-cells = <1>; + #size-cells = <0>; + #io-channel-cells = <1>; + status = "okay"; + compatible = "adi,ad405x-adc"; + + channel@0 { + reg = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = ; + zephyr,resolution = <16>; + zephyr,vref-mv = <2500>; + }; + }; +};