ADAQ8092
ADAQ8092 14-Bit, 105 MSPS, μModule Linux device driver.
The ADAQ8092 is a 14-bit, 105 MSPS, high-speed dual-channel data acquisition (DAQ) μModule solution. The device incorporates signal conditioning, an analog-to-digital (ADC) driver, a voltage reference, and an ADC in a single package via system in package (SiP) technology. μModule solutions simplify the development of high-speed data acquisition systems by transferring the design burden, component selection, optimization, and layout from the designer to the device. The ADAQ8092 enables a 6× footprint reduction.
Supported Devices
Evaluation Boards
Description
This is a Linux industrial I/O (Linux Industrial I/O Subsystem) subsystem driver for the ADAQ8092 dual-channel ADC module. The industrial I/O subsystem provides a unified framework for drivers for many different types of converters and sensors using a number of different physical interfaces (i2c, spi, etc). See Linux Industrial I/O Subsystem for more information.
Source Code
Status
Files
Function |
File |
|
|---|---|---|
driver |
Adding Linux driver support
Kernel configuration
Configure kernel with make menuconfig (alternatively use make xconfig or
make qconfig)
Note
The ADAQ8092 driver depends on SPI
Configure kernel with make menuconfig (alternatively use make xconfig or
make qconfig)
Linux Kernel Configuration
Device Drivers --->
<*> Industrial I/O support --->
--- Industrial I/O support
-*- Enable buffer support within IIO
-*- Enable triggered sampling support
*** Analog to digital converters ***
[--snip--]
<*> Analog Devices ADAQ8092 uModule Data Acquisition Module
[--snip--]
Devicetree configuration
Example Linux Device-Tree Initialization
The ADAQ8092 driver is a spi-bus driver and can currently only be instantiated via device tree.
Required devicetree properties:
compatible: adi,adaq8092 reg: SPI slave select number clocks and clock-names = “clkin”: conversion clock avcc-supply and avdd-supply: analog power supplies The associated AXI ADC device must reference this SPI converter. adc-pd1-gpios and adc-pd2-gpios are optional power-down controls.
Function |
File |
|---|---|
EVAL-ADAQ8092 Device Tree |
Driver testing
Each and every IIO device, typically a hardware chip, has a device folder under
/sys/bus/iio/devices/iio:deviceX. Where X is the IIO index of the device. Under
every of these directory folders reside a set of files, depending on the
characteristics and features of the hardware device in question. These files
are consistently generalized and documented in the IIO ABI documentation. In
order to determine which IIO deviceX corresponds to which hardware device, the
user can read the name file /sys/bus/iio/devices/iio:deviceX/name. In case
the sequence in which the iio device drivers are loaded/registered is constant,
the numbering is constant and may be known in advance.
root:/> cd /sys/bus/iio/devices/
root:/sys/bus/iio/devices> ls
iio:device0 iio:device1
root:/sys/bus/iio/devices> cd iio:device1
root:/sys/bus/iio/devices/iio:device1# ls -l
drwxr-xr-x 5 root root 0 Jan 22 08:19 .
drwxr-xr-x 4 root root 0 Jan 22 08:19 ..
drwxr-xr-x 2 root root 0 Jan 22 08:19 buffer
-r--r--r-- 1 root root 4096 Jan 22 08:19 dev
-rw-r--r-- 1 root root 4096 Jan 22 08:19 sampling_frequency
-rw-r--r-- 1 root root 4096 Jan 22 08:19 in_voltage0_label
-rw-r--r-- 1 root root 4096 Jan 22 08:19 in_voltage1_label
-rw-r--r-- 1 root root 4096 Jan 22 08:19 sampling frequency
-r--r--r-- 1 root root 4096 Jan 22 08:19 name
drwxr-xr-x 2 root root 0 Jan 22 08:19 power
drwxr-xr-x 2 root root 0 Jan 22 08:19 scan_elements
lrwxrwxrwx 1 root root 0 Jan 22 08:19 subsystem -> ../../../../../bus/iio
-rw-r--r-- 1 root root 4096 Jan 22 08:19 uevent
root:/sys/bus/iio/devices/iio:device1#
Identify the device
root:/sys/bus/iio/devices/iio:device1> cat name
adaq8092
ADC sampling frequency (sampling_frequency)
Read only attribute which returns the ADC sampling rate in Hz.
root@analog:/sys/bus/iio/devices/iio:device1# cat sampling_frequency
105000000
root@analog:/sys/bus/iio/devices/iio:device1# echo 200000000 > sampling_frequency
-bash: echo: write error: Invalid argument