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 are given on the MATLAB examples section.
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.
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.
Start recording macros as explained on Recording a macro wiki page
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:
Explore each of the following MATLAB scripts to see different functions created to automate tests, e.g.: configure_ad7606c(), run_capture(), get_config(), etc.
Along the different examples, a set of variables are used to define the AD7606C configuration:
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
The script runs through all possible oversampling ratios and shows the histogram of codes of all channels.
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:
The script displays the data gathered before and after offset 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:
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.
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:
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:
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:
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.
Feel free to consult Analog Devices Engineer-Zone for additional support.