0% found this document useful (0 votes)
69 views14 pages

ADMT4000DRV-SRC ARDUINO User Guide (Rev.B)

This user guide provides instructions for using the ADMT4000 evaluation board with an Arduino Uno, detailing the necessary hardware and software requirements, including the ADMT4000DRV-SRC Software package and Arduino IDE. It outlines the setup process, hardware connections, and steps to ensure compatibility between the no-OS drivers and the Arduino environment. Additionally, it includes a prebuild checklist, example formatting, and troubleshooting tips for users to successfully implement the ADMT4000 with Arduino.

Uploaded by

benli153119
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views14 pages

ADMT4000DRV-SRC ARDUINO User Guide (Rev.B)

This user guide provides instructions for using the ADMT4000 evaluation board with an Arduino Uno, detailing the necessary hardware and software requirements, including the ADMT4000DRV-SRC Software package and Arduino IDE. It outlines the setup process, hardware connections, and steps to ensure compatibility between the no-OS drivers and the Arduino environment. Additionally, it includes a prebuild checklist, example formatting, and troubleshooting tips for users to successfully implement the ADMT4000 with Arduino.

Uploaded by

benli153119
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

User Guide | ADMT4000 and Arduino Uno

UG-2274
ADMT4000 Evaluation Board with Arduino Uno User Guide

HARDWARE REQUIRED Note that the ADMT4000 no-OS driver was tested using an Arduino
UNO board. Using a different Arduino board (for example, an Ardu-
► Arduino (microcontroller) ino MEGA) that was not tested and is not guaranteed compatible
► Arduino UNO with the ADMT4000DRV-SRC Software package.
► Arduino MEGA (optional alternative)
HARDWARE CONNECTIONS
► EVAL-ADMT4000SD1Z evaluation board
The EVAL-ADMT4000SD1Z acquires power and communicates
SOFTWARE REQUIRED with the microcontroller unit (MCU) through a link. The MCU allows
► ADMT4000DRV-SRC Software package communication between the PC and the EVAL-ADMT4000SD1Z by
providing the serial peripheral interface (SPI) required to control the
► Arduino IDE: https://www.arduino.cc/en/software
ADMT4000 and capture data directly via the host PC.
GENERAL DESCRIPTION The MCU can also be used independently to operate and process
This user guide provides a general guide for getting started with the data from the ADMT4000.
ADMT4000 no-OS drivers on an Arduino board using the Arduino It is important to complete the software setup before connecting
integrated development environment (IDE). the EVAL-ADMT4000SD1Z and Arduino board to the USB port of
the PC to ensure that the evaluation system is correctly recognized
SUPPORTED HARDWARE when it is connected to PC.
Because the Arduino IDE is used in building the software, technical-
ly, the ADMT4000 no-OS driver is usable with any Arduino board
that the IDE also supports.

to ADMT4000 SCLK (ARDUINO SCLK)


*Can use either to ADMT4000 SDO (ARDUINO MISO)
3.3V or 5V. Check to ADMT4000 SDI (ARDUINO MOSI)
datasheet for more to ADMT4000 VDD to ADMT4000 CS (ARDUINO CS)
info
to ADMT4000 GND

Figure 1. ADMT4000 Connections for Arduino UNO Form Factor

PLEASE SEE THE LAST PAGE FOR AN IMPORTANT Rev. B | 1 of 14


WARNING AND LEGAL TERMS AND CONDITIONS.
User Guide ADMT4000 and Arduino Uno
TABLE OF CONTENTS

Hardware Required............................................... 1 Flags and Includes............................................. 7


Software Required.................................................1 Parameters and Variables.................................. 8
General Description...............................................1 Conditional Project Run......................................8
Supported Hardware............................................. 1 Building the Project..............................................10
Hardware Connections.......................................... 1 Selecting an Example Project.......................... 10
Prebuild Checklist and To Dos...............................3 Uploading to the Board.....................................10
Arduino IDE Setup..............................................3 UART Verification.................................................11
ADMT4000 Driver and Examples.......................3 UART: Basic Example...................................... 11
Examples Formatting......................................... 4 UART: Diagnostic Example.............................. 12
No-OS for Import................................................ 4 UART: Test Example........................................ 12
Configuring no-OS to be Arduino Compatible.... 5 UART: ECC Example....................................... 12
Initial Test Build.................................................. 6 Troubleshooting................................................... 13
Include Other Dependencies..............................7 Feedback.............................................................14

REVISION HISTORY

05/2025—Rev. A to Rev. B
Changes to texts in Item 3............................................................................................................................... 5

02/2025—Rev. 0 to Rev. A
Replaced figures featuring code snippets with actual texts (Universal)...........................................................1

10/2024—Revision 0: Initial Version

analog.com Rev. B | 2 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

ARDUINO IDE SETUP


1. Download the Arduino IDE from the official Arduino website.
2. Run the Arduino IDE Installer and agree to the License Agree-
ment (see Figure 2).

Figure 4. Installation Location

ADMT4000 DRIVER AND EXAMPLES


Because the project to be built is intended for a different environ-
ment outside of the no-OS, you must explicitly add the example
Figure 2. Arduino IDE License Agreement
project files to the appropriate environment, and, in this case, that is
the Arduino IDE.
3. Choose who the IDE will be installed for (see Figure 3).
In the project/admt_examples subfolder in the ADMT4000DRV-
SRC Software package, copy the contents (all .c and .h files)
of each example subfolder onto the Arduino project folder. Do
the same thing for the ADMT4000 drivers (do not include the
iio_admt4000.c nor the iio_admt4000.h files) inside the admt4000
folder. Your folder contents should be similar to the contents shown
in Figure 5.

Figure 3. Installation Options (User Availability)


4. Choose the directory you wish the IDE to install to and click
Install (see Figure 4).

Figure 5. Arduino Sketch Project Folder with the ADMT4000 Drivers and
Examples

analog.com Rev. B | 3 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

EXAMPLES FORMATTING Serial.print("ABSANGLE =");


Serial.print(angle_f[0], 4);
From C to CPP Serial.print(" deg, ANGLE = ");
Serial.print(angle_f[1], 4);
In the same folder, change the file extension from .c (C source file) Serial.print(" deg, Turn Count: ");
to .cpp (C++ source file), as shown in Figure 6. Serial.print(turns);
Serial.print(" turns, fault 0x");
Serial.print(temp, HEX);
Serial.println("");

Figure 7. Equivalent Print Using Serial.print and Serial.println

NO-OS FOR IMPORT


Because the no-OS build system does not support Arduino, it is
required to create the Project/Sketch in the Arduino IDE and then
import the necessary files to build the project.
To start, the following resources are required:
► Arduino platform drivers, which can be found in the platform_ar-
duino folder of the ADMT4000DRV-SRC Software package
Figure 6. Converting Example C Source Files to CPP Source ► No-OS application programming interfaces (APIs)

The ADMT4000 and arduino platform drivers alone will not work
Conversion of Print Mechanism because these drivers were built to adhere to a no-OS architecture.
Because the example codes were developed to work for a C To use no-OS drivers, users must install the following no-OS de-
environment, the default print mechanism based on printf used pendencies:
by these examples will not work when imported in the Arduino ► The following source files:
environment. util/no_os_alloc.c

Now that the files are in .cpp source file format, the Arduino.h ► drivers/api/no_os_spi.c
library can be added to the example files. ► util/no_os_util.c
► util/no_os_mutex.c
#include "no_os_delay.h"
► The following header files:
#include "no_os_print_log.h"
#include "admt4000.h" ► include/no_os_alloc.h
#include "admt4000_diag_example.h" ► include/no_os_delay.h
► include/no_os_error.h
#include <Arduino.h> ► include/no_os_mutex.h
► include/no_os_print_log.h
Replace pr_info instances in the example codes with combination
► include/no_os_spi.h
of Serial.print and Serial.println to output the same format as in a
C environment (see Figure 7). ► include/no_os_units.h
► util/no_os_util.h
// printf("ABSANGLE = %0.4f deg, ANGLE = %0.4f
deg, Turn Count: %d turns, fault = 0x%x \n", Aside from Sketch (.ino), these files are necessary to operate the
ADMT4000 drivers and are typically included in a project folder
// angle_f[0], angle_f[1], turns, temp); similar to what is shown in Figure 8.

analog.com Rev. B | 4 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

Figure 9. Header Guard Begins in Line 40

#endif // _NO_OS_SPI_H_

Figure 10. Header Guard Ends in Line 267


3. On the line above the beginning of the header guard, add the
following lines of code shown in Figure 11.

#ifdef __cplusplus
extern "C" {
#endif

Figure 8. Arduino admt4000 Project Folder

CONFIGURING NO-OS TO BE ARDUINO


COMPATIBLE
Most, if not all, files used such as the admt4000 no-OS drivers and
other no-OS APIs are C compatible and not directly usable in the
Arduino environment.

Addition of C++ Compatibility Figure 11. Adding of Preprocessor Directive for C++ Compatibility
Take the following steps to add C++ compatibility: 4. Add the following lines of code shown in Figure 12 after the end
of the header guard.
1. Using an editor (for example, Visual Studio Code), open one
of the header file dependencies listed in the No-OS for Import #ifdef __cplusplus
section. For this example, the no_os_spi.h can be used. }
2. Find header guard or the lines in the code that contains the #endif
#ifndef directive (see Figure 9 and Figure 10).

#ifndef _NO_OS_SPI_H
#define _NO_OS_SPI_H_

Figure 12. Adding of Postprocessor Directive for C++ Compatibility

analog.com Rev. B | 5 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

5. Repeat the same steps for all the header files inside the
project folder. These newly formatted files are now referred as
drivers. Do NOT include the example header files (for example,
admt4000_basic.h).
These steps are necessary because the no-OS build system is
mostly based on C. Applying these steps to the header files ena-
bles the Arduino IDE to compile and link the functions from a C
source file in a C++ environment (no name mangling).
For more information, refer to these programing tips (ethz.ch).

Addition of Macro (EBADMSG)


The errno.h library used in Arduino IDE is different from the one
that is usually included in the Analog Devices, Inc., software devel-
opment kits (SDKs), such as the microcontrollers SDK. Therefore,
the EBADMSG error code is undefined in this context.
To mitigate this problem, the macro can be included in the
admt4000.h file (see Figure 13).

#define EBADMSG

Figure 13. Adding of EBADMSG Macro Due to Conflict with Arduino Errno
Library (admt4000.h)
Figure 14. Arduino ADMT4000 Project Folder (Updated)
INITIAL TEST BUILD
When the previous steps are followed, the project folder will contain At this point in the process, the Arduino Sketch is blank (see Figure
what is shown in Figure 14. 15).

Figure 15. Blank Arduino Sketch

Compile the project and ensure that it is successful. If there are


any errors, refer to the previous sections for possible workarounds
before proceeding to the next sections.

analog.com Rev. B | 6 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

INCLUDE OTHER DEPENDENCIES FLAGS AND INCLUDES


Aside from formatting the no-OS files to match the Arduino build In the no-OS implementation of the main file, a flags-based method
environment and placing them in the same folder as the Sketch, of including the necessary headers is observed (see Figure 16).
these files must also be included in the main Sketch.

// no OS related includes
#include "no_os_alloc.h"
#include "no_os_delay.h"
#include "no_os_error.h"
#include "no_os_mutex.h"
#include "no_os_print_log.h"
#include "no_os_spi.h"
#include "no_os_units.h"
#include "no_os_util.h"

// platform driver include


#include "arduino_spi.h"

// admt4000 driver include


#include "admt4000.h"

// other includes
#include <SPI.h>

The code example above shows how to include the necessary Figure 16. no-OS Main File (Include Headers Depending on the Flag for
headers into the main Sketch. You can follow the same arrange- Certain Example Projects)
ment or groupings for better distinction or do your own grouping.
For you to do what was done in the no-OS build environment, you
Once included, you can try compiling the current Sketch and see must declare the corresponding flags for each example project and
if it generates any errors. You must verify that there are no errors employ the same mechanism for including certain headers.
before proceeding with the next steps.
#define ADMT4000_BASIC 1
#define ADMT4000_DIAG 0
#define ADMT4000_ECC 0
#define ADMT4000_TEST 0

#if (ADMT4000_BASIC)
#include "admt4000_basic.h"
#endif

#if (ADMT4000_DIAG)
#include "admt4000_diag_example.h"
#endif

#if (ADMT4000_ECC)
#include "admt4000_ecc.h"
#endif

#if (ADMT4000_TEST)
#include "admt4000_function_test.h"
#endif

analog.com Rev. B | 7 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

The above snippet initializes the necessary structure parameters


PARAMETERS AND VARIABLES
and peripherals required, such as SPI (inside admt4000_init()) and
Because the no-OS build structure and environment is different serial. This snippet also contains an error handling that prints out
from the Arduino implementation, some variables, structures, or the error code for easier troubleshooting.
lines of code must be manually added into the current Sketch. Spe-
In addition, some global variables must be declared:
cifically, the initial parameter structure required by the ADMT4000
initialization function must be added to the Sketch, specifically in // admt4000 device descriptor
the void setup() section because it does not need to be continu- struct admt4000_dev *admt4000;
ously run. int ret;
void setup() {
The *admt4000 variable serves as the device descriptor that con-
// put your setup code here, to run once: tains the information passed by the initialization function from the
// arduino specific parameters initial parameters structure. This descriptor is what is used continu-
struct arduino_spi_init_param admt4000_extra = ously by the functions throughout the routines.
{ The ret variable on the other hand contains the error codes gener-
.num_slaves = 1, ated by any functions used inside the loop.
.polarity = SPI_SS_POL_LOW,
.data_out = 11, //MOSI Similar to the previous steps, compile the current Sketch version or
.data_in = 12, //MISO state and verify that no errors occur.
.spi_clock = 13, //SCLK
}; CONDITIONAL PROJECT RUN
At this point, the steps now completed are replicating the otherwise
struct no_os_platform_spi_delays p_delays; smoother build in the no-OS environment in the Arduino environ-
ment. After importing the different mechanisms, the core of the
struct no_os_spi_init_param spi_ip = { project, which selects which example project is ran, is next:
.device_id = 1,
.max_speed_hz = 2000000, void loop() {
.chip_select = 10, // put your main code here, to run repeatedly:
.mode = NO_OS_SPI_MODE_0, #if (ADMT4000_BASIC)
.bit_order = NO_OS_SPI_BIT_ORDER_MSB_FIRST, ret = basic_meas(admt4000);
.platform_ops = &arduino_spi_ops,
.platform_delays = p_delays, #elif (ADMT4000_DIAG)
.extra = &admt4000_extra, ret = diag_meas(admt4000);
.parent = NULL,
}; #elif (ADMT4000_ECC)
ret = ecc_main(admt4000);
// admt4000 initial parameter structure
struct admt4000_init_param admt4000_ip = { #elif (ADMT4000_TEST)
.spi_init = spi_ip, ret = function_test(admt4000);
.dev_vdd = ADMT4000_5V, #endif
}; if (ret) {
Serial.print("Function error. Error Code: ");
Serial.begin(115200); Serial.print(ret);
Serial.print("\n");
ret = admt4000_init(&admt4000, admt4000_ip); return;
if (ret) { }
Serial.print("Initialization error. Error
Code:"); return;
Serial.print(ret); }
Serial.print("\n");
return; The above lines of code will look similar to the main.c file that
}
can be found inside the src/platform/<maxim> or src/platform/
}
<mbed> of the ADMT4000DRV-SRC Software package with some
minor difference of error handling (if statement).

analog.com Rev. B | 8 of 14
User Guide ADMT4000 and Arduino Uno
PREBUILD CHECKLIST AND TO DOS

Based on the code entered, it is now time to test the build output.
Note that you must verify the code by compiling and observing
any error that may arise. It is advisable to take this step before
uploading to the board.

analog.com Rev. B | 9 of 14
User Guide ADMT4000 and Arduino Uno
BUILDING THE PROJECT

SELECTING AN EXAMPLE PROJECT


The example project to run is selected by setting a value of 1 to the
corresponding project flag.

#define ADMT4000_BASIC 1
#define ADMT4000_DIAG 0
#define ADMT4000_ECC 0
#define ADMT4000_TEST 0

Note: It is important to only enable one project at a time.

UPLOADING TO THE BOARD


Upload the code to your MCU like you would do with any Arduino
project: Figure 18. Board Selection From the Dropdown Menu

1. Select Tools/Board "Arduino x"/Boards Manager and select


the board you are using. In this case, select Arduino AVR
Boards/Arduino Uno (see Figure 17).

Figure 19. Board Selection From the Tools/Port Option


3. Once those are configured correctly, click the right arrow button
Figure 17. Selecting the Arduino UNO from the Boards Manager
in the top-left portion of the IDE for uploading (see Figure 20).
Note that tests have been done on the Arduino UNO only.
There is no guarantee by Analog Devices when using with other
Arduino boards.
2. Select the COM port that corresponds to your MCU either via
the dropdown menu or from Tools/Port (see Figure 18 and
Figure 19).

Figure 20. Arduino IDE Upload Button


4. Wait for the upload to be completed. If there be any errors, try
to repeat the steps and ensure that the board and port selected
both correspond to your MCU.

analog.com Rev. B | 10 of 14
User Guide ADMT4000 and Arduino Uno
UART VERIFICATION

Once an example project is successfully built and uploaded to the


board, it is now time to test its output via universal asynchronous
receiver-transmitter (UART) terminal applications. Note that there
are instances where the project is built and uploaded successfully;
however, upon checking its output, something different has been
observed.
Because the Arduino IDE has a built-in terminal application, use
this application to access the device. Use the following settings to
properly open the serial port corresponding to your device:
► Speed (baud): 115200
► Data bits: 8
► Stop bits: 1
► Parity: None
► Flow control or Hardware control (XON/XOFF): None

If the settings are correct, and the program uploaded is correct and
working, then there will be data being printed to the terminal.
The data being printed ton the terminal depends on the example
project enabled. Refer to the following sections for additional infor-
mation on UART verification
UART: BASIC EXAMPLE
Note that for one-shot measurement, Register 0x10 value must
be 0x1201 and the ECC register must be 0x94. For Continuous
measurement, Register 0x10 value must be 0x1200 and the ECC
register must be 0x17 (see Figure 21).

Figure 21. Basic Example Measurement (One-shot) Terminal Output

analog.com Rev. B | 11 of 14
User Guide ADMT4000 and Arduino Uno
UART VERIFICATION

UART: DIAGNOSTIC EXAMPLE UART: ECC EXAMPLE


Figure 22 is a basic example one-shot measurement terminal Figure 24 shows an ECC example of no errors detected.
output.

Figure 24. ECC Test Example Terminal Output (No Errors Detected)

Figure 22. Basic Example Measurement (One-shot) Terminal Output

UART: TEST EXAMPLE


Note that if there is an error, the test script notifies you which
function caused the problem and the corresponding configuration
for easier debugging. If there is no error, then nothing else is printed
(see Figure 23).

Figure 23. Test Example Terminal Output (No Errors Detected)

analog.com Rev. B | 12 of 14
User Guide ADMT4000 and Arduino Uno
TROUBLESHOOTING

For any errors, debug your project like you would with any other
Arduino project. Typical problems that may occur include, but not
limited to, the following:
► Blank serial display
► Compile error, most likely due to incompatibilities with C and C++
► Upload error
► Faulty cable
► Wrong serial port or board chosen

If applicable, see the other build documents (ADMT4000DRV-SRC


no-OS MAX326x MCU Platform Build and ADMT4000DRV-SRC
no-OS mBed Platform Build) for further troubleshooting, which
can be found in the downloaded software files (ADMT4000DRV-
SRC Software package).

analog.com Rev. B | 13 of 14
User Guide ADMT4000 and Arduino Uno
FEEDBACK

For any issues not covered in this user guide, contact magnet-
[email protected] for further assistance. When doing so, specify the
following:
► The evaluation board number (for example, EVAL-
ADMT4000SD1Z)
► A picture of the setup
► The microcontroller used
► A summary of the issue

ESD Caution
ESD (electrostatic discharge) sensitive device. Charged devices and circuit boards can discharge without detection. Although this product features patented or proprietary
protection circuitry, damage may occur on devices subjected to high energy ESD. Therefore, proper ESD precautions should be taken to avoid performance degradation or loss of
functionality.

Legal Terms and Conditions


By using the evaluation board discussed herein (together with any tools, components documentation or support materials, the “Evaluation Board”), you are agreeing to be bound by the terms and
conditions set forth below (“Agreement”) unless you have purchased the Evaluation Board, in which case the Analog Devices Standard Terms and Conditions of Sale shall govern. Do not use the
Evaluation Board until you have read and agreed to the Agreement. Your use of the Evaluation Board shall signify your acceptance of the Agreement. This Agreement is made by and between you
(“Customer”) and Analog Devices, Inc. (“ADI”), with its principal place of business at Subject to the terms and conditions of the Agreement, ADI hereby grants to Customer a free, limited, personal,
temporary, non-exclusive, non-sublicensable, non-transferable license to use the Evaluation Board FOR EVALUATION PURPOSES ONLY. Customer understands and agrees that the Evaluation
Board is provided for the sole and exclusive purpose referenced above, and agrees not to use the Evaluation Board for any other purpose. Furthermore, the license granted is expressly made
subject to the following additional limitations: Customer shall not (i) rent, lease, display, sell, transfer, assign, sublicense, or distribute the Evaluation Board; and (ii) permit any Third Party to access
the Evaluation Board. As used herein, the term “Third Party” includes any entity other than ADI, Customer, their employees, affiliates and in-house consultants. The Evaluation Board is NOT sold
to Customer; all rights not expressly granted herein, including ownership of the Evaluation Board, are reserved by ADI. CONFIDENTIALITY. This Agreement and the Evaluation Board shall all be
considered the confidential and proprietary information of ADI. Customer may not disclose or transfer any portion of the Evaluation Board to any other party for any reason. Upon discontinuation
of use of the Evaluation Board or termination of this Agreement, Customer agrees to promptly return the Evaluation Board to ADI. ADDITIONAL RESTRICTIONS. Customer may not disassemble,
decompile or reverse engineer chips on the Evaluation Board. Customer shall inform ADI of any occurred damages or any modifications or alterations it makes to the Evaluation Board, including
but not limited to soldering or any other activity that affects the material content of the Evaluation Board. Modifications to the Evaluation Board must comply with applicable law, including but
not limited to the RoHS Directive. TERMINATION. ADI may terminate this Agreement at any time upon giving written notice to Customer. Customer agrees to return to ADI the Evaluation Board
at that time. LIMITATION OF LIABILITY. THE EVALUATION BOARD PROVIDED HEREUNDER IS PROVIDED “AS IS” AND ADI MAKES NO WARRANTIES OR REPRESENTATIONS OF ANY
KIND WITH RESPECT TO IT. ADI SPECIFICALLY DISCLAIMS ANY REPRESENTATIONS, ENDORSEMENTS, GUARANTEES, OR WARRANTIES, EXPRESS OR IMPLIED, RELATED TO THE
EVALUATION BOARD INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, TITLE, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF
INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT WILL ADI AND ITS LICENSORS BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES RESULTING
FROM CUSTOMER’S POSSESSION OR USE OF THE EVALUATION BOARD, INCLUDING BUT NOT LIMITED TO LOST PROFITS, DELAY COSTS, LABOR COSTS OR LOSS OF GOODWILL.
ADI’S TOTAL LIABILITY FROM ANY AND ALL CAUSES SHALL BE LIMITED TO THE AMOUNT OF ONE HUNDRED US DOLLARS ($100.00). EXPORT. Customer agrees that it will not directly or
indirectly export the Evaluation Board to another country, and that it will comply with all applicable United States federal laws and regulations relating to exports. GOVERNING LAW. This Agreement
shall be governed by and construed in accordance with the substantive laws of the Commonwealth of Massachusetts (excluding conflict of law rules). Any legal action regarding this Agreement will
be heard in the state or federal courts having jurisdiction in Suffolk County, Massachusetts, and Customer hereby submits to the personal jurisdiction and venue of such courts. The United Nations
Convention on Contracts for the International Sale of Goods shall not apply to this Agreement and is expressly disclaimed. All Analog Devices products contained herein are subject to release and
availability.

©2024-2025 Analog Devices, Inc. All rights reserved. Trademarks and Rev. B | 14 of 14
registered trademarks are the property of their respective owners.
One Analog Way, Wilmington, MA 01887-2356, U.S.A.

You might also like