From fabed3e6df6f205b8617cbc2052f6acd7774d03d Mon Sep 17 00:00:00 2001 From: PopPaul2021 Date: Mon, 4 Dec 2023 15:28:13 +0200 Subject: [PATCH] Add support for AD7984 Signed-off-by: PopPaul2021 --- adi/ad7689.py | 3 ++ examples/ad7984_example.py | 73 ++++++++++++++++++++++++++++++++++++++ supported_parts.md | 1 + 3 files changed, 77 insertions(+) create mode 100755 examples/ad7984_example.py diff --git a/adi/ad7689.py b/adi/ad7689.py index 96d6c5744..326060e63 100644 --- a/adi/ad7689.py +++ b/adi/ad7689.py @@ -27,6 +27,9 @@ def __init__(self, uri="", device_name=""): "ad7949", "ad7699", "ad7690", + "ad7984", + "spi_clasic_ad7984", + "spi_engine_ad7984", ] self._ctrl = None diff --git a/examples/ad7984_example.py b/examples/ad7984_example.py new file mode 100755 index 000000000..5eb65f68d --- /dev/null +++ b/examples/ad7984_example.py @@ -0,0 +1,73 @@ +# Copyright (C) 2023 Analog Devices, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# - Neither the name of Analog Devices, Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# - The use of this software may or may not infringe the patent rights +# of one or more patent holders. This license does not release you +# from the requirement that you obtain separate licenses from these +# patent holders to use this software. +# - Use of the software either in source or binary form, must be run +# on or directly connected to an Analog Devices Inc. component. +# +# THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. +# +# IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY +# RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import sys +import adi +import numpy as np +import matplotlib.pyplot as plt +from scipy import fft + +# Optionally pass URI as command line argument, +# else use default context manager search +my_uri = sys.argv[1] if len(sys.argv) >= 2 else None +print("uri: " + str(my_uri)) + + +plot_en = sys.argv[2] if len(sys.argv) >= 3 else 0 +print(plot_en) + +# the device name can be: spi_clasic_ad7984 or spi_engine_ad7984 + +my_ad7984 = adi.ad7689(uri=my_uri,device_name="spi_clasic_ad7984") +my_ad7984.rx_enabled_channels = [0] +my_ad7984.rx_buffer_size = 4096 +data = my_ad7984.rx() + + +with open('samples_data_buffer.txt', 'w') as f: + for samples in data: + f.write(str(samples)) + f.write('\n') + f.close() + +if plot_en !=0 : + t = np.arange(0, my_ad7984.rx_buffer_size, 1) + plt.suptitle("AD7984 Samples data") + plt.plot(t, data) + plt.xlabel("Samples") + plt.show() + + + + + diff --git a/supported_parts.md b/supported_parts.md index c612e0846..ddd3aae8c 100644 --- a/supported_parts.md +++ b/supported_parts.md @@ -83,6 +83,7 @@ - AD7771 - AD7779 - AD7799 +- AD7984 - AD9081 - AD9083 - AD9084