Wiki

This version is outdated by a newer approved version.DiffThis version (14 Jan 2021 05:40) was approved by Robin Getz.The Previously approved version (03 Jan 2021 21:46) is available.Diff

This is an old revision of the document!


AD7606B/C ACE remote control

By using ACE Remote Control, AD7606B and AD7606C plug-ins can be automated to perform several evaluation activities across the different analog input ranges, bandwidth modes, channels, etc. Different example code will be given.

Without hardware, the AD7606x Family software model can be used to try different configurations for both AD7606C and AD7606B: sampling rate, RC filtering, oversampling, calibration; and analyze frequency response, noise performance, interface timing or power consumption, among others.

All the below features can also be tested by using the MBed Example Code, that makes use of No-OS drivers and interface with SDP-K or STM32 Nucleo boards.

Getting Started

Hardware

  1. SDP-H Controller board and its 12V DC wall adapter
  2. AD7606C Evaluation Board or an equivalent board that has any of the following ADCs
    • AD7606B
    • AD7606C-18

Software

  1. AD7606B or AD7606C ACE plugin can be downloaded from within ACE environment, through the plug-in manager section
  2. A MATLAB or python environment.

ACE Environment

Refer to the AD7606C Evaluation Board user guide on powering the board up and setting up the ACE plugin. Please make sure that the plugin is functional and the device responds to the plugin interaction before proceeding further.

Setting up communication with ACE

  1. Open ACE, then go to Settings.
  2. Go to IPC Server Tab and ensure that it is enabled. Also ensure that a port is allocated.

Recording a macro

Macros are very handy to record a series of actions on the GUI, such that these can be later automated minimizing the user workload of inputting all those parameters manually. In order to record and export a macro:

  • Open ACE, then go to Tools → Macro Tools.

  • Hit the 'record macro commands' button, the left hand side icon on the below image

  • Enter the parameter and values to be loaded e.g. throughput, number of samples, data interface, reference selection
  • The 'Commands' windows will fill up as the GUI is navigated and interacted with. Once all parameters to be entered are recorded, hit the 'stop recording macro commands' button.
  • The macro can be exported to C#, python or MATLAB, by selecting the desired language and hitting 'Export' button, right hand side icon on the previous image.

Editing macros in MATLAB

The code generated on previous section can be imported into MATLAB, and it works to set the exact configuration loaded during the macro recording. In order to give ACE an extra layer of flexibility, the execute_macro function created can be edited to perform repetitive task. For example, an 'AD7606C configuration' macro can be easily recorded with the macro recording tool. This macro could fully configure the AD7606C device: mode, range, OSR, reference, data interface, throughput, etc.

In order to automate operations:

  • Each of the parameters used (strings) can be replaced by variables that can be managed in the main code.
  • These variables would then be input parameters to the function, along with 'Client'
  • Several macros can be recorded, and each of them used as a 'function'. So the 'execute_macro' function can be renamed to a more intuitive name.

Explore each of the following MATLAB scripts to see different functions created to automate tests, e.g.: configure_ad7606c(), run_capture(), get_config(), etc.

MATLAB examples

Copyright © 2020 by Analog Devices, Inc. All rights reserved. This software is proprietary to Analog Devices, Inc. and its licensors. This software is provided on an “as is” basis without any representations, warranties, guarantees or liability of any kind. Use of the software is subject to the terms and conditions of the Clear BSD License ( https://spdx.org/licenses/BSD-3-Clause-Clear.html ).

Along the different examples, a set of variables are used to define the AD7606C configuration:

  • mode →True=Software mode; False=Hardware mode
  • range; →range=3-->+/-10V Single Ended Range, see register summary in datasheet
  • ref_sel →True= Internal Reference; False = External reference
  • par_serb →True=Parallel Interface; False = Serial Interface
  • throughput → sample frequency in kSPS
  • no_samples →number of samples on each DataSet
  • OSR → Oversampling Ratio= 2^OSR
  • sdo_lines → number of SDO lines, in serial interface

Oversampling Benefits

The benefits of oversampling are the increased noise performance at the expense of reducing the throughput rate. This can be seen through DC Histograms. So, in order to validate Oversampling feature

  1. Tie the inputs Vx+ and Vx- together, to AGND.
  2. Start ACE and navigate to Analysis tab.
  3. Store the OversamplingSweep.m file in your C:\ drive
  4. Open the OversamplingSweep.m in MATLAB and hit run

The script runs through all possible oversampling ratios and shows the histogram of codes of all channels.

This validation method is not valid for Unipolar single-ended ranges: 0 to 5V, 0 to 10V and 0 to 12.5V because tying the inputs to AGND may saturate the ADC. Tie them to a DC level instead
If you are rather visualizing the Waveform or FFT on the screen instead of the Histogram, modify the script and assign the graph variable with either 'waveform' or 'FFT'

Offset calibration

AD7606B and AD7606C have on chip offset calibration, that eliminates any offset caused externally for example because of a mismatch on the external resistors.

In order to validate the offset calibration:

  1. Place the required external front-end resistors and/or caps (e.g. RC filter)
  2. Tie the evaluation board inputs Vx+ and Vx- together, to AGND, or the expected 0V level.
  3. Start ACE and navigate to Analysis tab.
  4. Store the OffsetCalibration.m file in your C:\ drive
  5. Open the OffsetCalibration.m in MATLAB and hit run

The script displays the data gathered before and after offset calibration.

This validation method is not valid for Unipolar single-ended ranges: 0 to 5V, 0 to 10V and 0 to 12.5V because tying the inputs to AGND may saturate the ADC. Tie them to a DC level instead
If you are rather visualizing the Waveform or FFT on the screen instead of the Histogram, modify the script and assign the graph variable with either 'waveform' or 'FFT'

Gain calibration

AD7606B and AD7606C have on chip gain calibration, that eliminates any gain error caused by the external resistors

In order to validate the offset calibration:

  1. Place the required external front-end resistors and/or caps (e.g. RC filter) on one channel
  2. Connect a sinewave signal to the desired channel input/s Vx+ and Vx-
  3. Start ACE and navigate to Analysis tab.
  4. Store the OffsetCalibration.m file in your C:\ drive
  5. Open the OffsetCalibration.m in MATLAB
  6. Look up the ch_num variable and update it with the channel number that has the external resistors
  7. Look up the Rfilter variable and update it with the resistor value used (in Ω)
  8. Run the script

The script displays the data gathered before and after gain calibration. The example below shows the same signal on two channels, CH1 has no resistors in front of the AD7606C-16 while CH8 has a 10kΩ in front of both V8+ and V8-. The two subplots show the CH8 attenuated because of the external resistor, on the left, and the ADC output when the gain errors is calibrated. CH1 is shown for reference.

Gain calibration feature is not available for Unipolar single-ended ranges: 0 to 5V, 0 to 10V and 0 to 12.5V

Phase calibration

Having an RC filter does not only impact the gain error but the phase error, due to its time constant. In order to validate the phase calibration feature:

  1. Place the required external RC filter on one channel
  2. Connect a sinewave signal to the desired channel input/s Vx+ and Vx- and at least one more channel, without RC filter
  3. Start ACE and navigate to Analysis tab.
  4. Store the PhaseCalibration.m file in your C:\ drive
  5. Open the PhaseCalibration.m in MATLAB, look up the ch_num variable and update with the channel number that has the external RC filter
  6. Run the script

Open Circuit Detection

AD7606B and AD7606C have on-chip Open Circuit Detection features, capable to detect if the analog input signal has been disconnected. A resistor (RPD > 20kΩ) in parallel to the input source is required, as shown on the diagram:

There are two modes of operation, automatic and manual mode.

In order to validate the Automatic Open Circuit Detection, follow the steps:

  1. (optional) Place the required external RC, if any, through the provided placeholders (check the board schematic)
  2. Populate the RPD resistor on one channel, through the provided placeholders (check the board schematic)
  3. Connect a sinewave or DC signal to the desired channel input's Vx+ and Vx- test points (or P8/P10 connectors)
  4. Start ACE and navigate to Analysis tab.
  5. Store the OpenCircuitAutoMode.m file in your C:\ drive
  6. Open the OpenCircuitAutoMode.m in MATLAB
  7. Look up the 'ch_num' and 'queue' variables, and update them with the channel under test and a queue size greater than 5
  8. Run the script

The script gathers sets of data, whose size is defined by the variable no_samples. It will continuously gather and plot ADC data on the figure window (overwriting every time). Eventually, if the source signal is disconnected from the board's input, the script will stop and show the last set of data gathered on the figure window. Observe how the ADC output has dropped to near zero and MATLAB's Command Window displays the message:

Channel Disconnected

In order to verify the Manual Mode, follow the same steps as above, but run the OpenCircuitManualMode.m script instead. After some time, disconnect the analog input signal. In this case, when the ADC output code drops below a certain threshold (see flowchart on the datasheet), the script will change the PGA common mode. If the ADC output code varies, as shown in the below graph, it implies the analog input signal has been disconnected, so the 'Channel Disconnected' message will be displayed on the Command Window.

However, if the analog input signal amplitude is lowered below the threshold, the script will still trigger. Then the PGA common mode will be changed, but the ADC output will be unaltered. In that case, the script will effectively decide that the analog input was not disconnected and therefore will keep working until the inputs are indeed disconnected.

Note that the Open Circuit Detection features only work on the bipolar input ranges and Vx- needs to be tied to ground

Feel free to consult Analog Devices Engineer-Zone for additional support.

resources/tools-software/ace/ad7606c-remotecontrol.1610599094.txt.gz · Last modified: 14 Jan 2021 05:38 by Robin Getz