The production testing is quite simple. Since each board has been completely characterized, and we know the layout is good, we can just look for gross errors.
There are multiple test files for the different boards. (all in github).
The tests and test parameters are in in the
./iio-oscilloscope/profiles/AD-FMCDAQ2_test.ini file. This is broken down into the following sections:
<source master/profiles/AD-FMCDAQ2_test.ini:/temp/-/^$/ shell iio-oscilloscope>
ad7291.in_temp0_raw is the raw results from the AD7291 - which is 0.25°C. 80 refers to 80 steps of 0.25°C or 20°C, and 160 refers to 40°C. This allows the tests to be done in a normal lab setting.
<source master/profiles/AD-FMCDAQ2_test.ini:/tolerances/-2/^$/ shell iio-oscilloscope>
This section requires checking the schematics. Specifically, sheet 7 shows how the AD7291 is connected. 1% resistors connect various voltages, and things are divided down to ensure that the voltage levels don't exceed full scale.
The explanation of how the valid ranges are calculated is similar to the same tests for the FMComms boards.
<source master/profiles/AD-FMCDAQ2_test.ini:/Ignore/-15/^$/ shell iio-oscilloscope>
First the noise floor is checked when no input is supplied to make sure it is within a certain threshold. Then tones of approximately 97 MHz, 185 MHz, and 233 MHz are input against each channel individually and the fundamental frequency as well as the 2nd through 7th harmonics are checked to make sure they are within set bounds.
First, write the latest available SD card image found at https://wiki.analog.com/resources/tools-software/linux-software/zynq_images to a spare card and prepare the card to boot into Linux as detailed on that page for the target FMCOMMS and carrier boards (copy the right BOOT.BIN and devicetree.dtb files into the base directory of the SD card's boot partition).
Then the card needs to be modified to run the tests automatically on boot. Test scripts are provided in https://github.com/analogdevicesinc/linux_image_ADI-scripts that automate initializing osc with the correct profile and environment.
Note that different boards use different tests scripts as seen in the following mapping:
Select the correct script above for target test setup and alter the launcher for osc to run that test script instead of a regular osc instance(/home/analog/.config/autostart). See the following example diff for required changes to the launcher to run the FMCDAQ2/3 tests on boot:
--- a/osc.desktop +++ b/osc.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Exec=gksudo -u root /usr/local/bin/osc +Exec=sudo /usr/local/bin/test_fmcdaq2.sh Icon=adi-osc Terminal=false Type=Application Categories=Science Name=ADI IIO Oscilloscope GenericName=ADI IIO Oscilloscope