Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
resources:tools-software:linux-drivers:iio-dac:ad5758 [23 May 2018 10:46] – Description Stefan Poparesources:tools-software:linux-drivers:iio-dac:ad5758 [15 Oct 2018 16:25] (current) – adc->dac Stefan Popa
Line 15: Line 15:
 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). 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 [[software:linux:docs:iio:iio|IIO]] for more information. See [[software:linux:docs:iio:iio|IIO]] for more information.
 +
 +====== Source Code ======
 +
 +===== Status =====
 +
 +^ Source ^ Mainlined? ^
 +| [[git.linux.org>drivers/iio/dac/ad5758.c|git]] | [[git.linux.org>drivers/iio/dac/ad5758.c|Yes]]  |
 +
 +===== Files =====
 +
 +^ Function ^ File ^
 +| driver  | [[git.linux.org>drivers/iio/dac/ad5758.c]] |
 +
 +===== Devicetree =====
 +
 +Required properties for the AD5758:
 +  * compatible: Must be "adi,ad5758"
 +  * reg: SPI chip select number for the device
 +  * spi-max-frequency: Max SPI frequency to use (< 50000000)
 +  * spi-cpha: is the only mode that is supported
 +
 +Optional properties:
 +
 +   * reset-gpios : GPIO spec for the RESET pin. If specified, it will be asserted during driver probe.
 +   * adi,dc-dc-mode: Mode of operation of the dc-to-dc converter
 +   * adi,dc-dc-ilim: The dc-to-dc converter current limit
 +   * adi,slew: Array of slewrate settings should contain 3 fields:
 +   * adi,range: The output range
 +
 +<code>
 + #address-cells = <1>;
 + #size-cells = <0>;
 + status = "okay";
 +
 + ad5758@0 {
 +                compatible = "adi,ad5758";
 +                reg = <0>;
 +                spi-max-frequency = <1000000>;
 +                spi-cpha;
 +
 +                reset-gpios = <&gpio 22 0>;  /* optional */
 +
 +                adi,dc-dc-mode = <2>;
 +                adi,dc-dc-ilim = <200>;
 +                adi,slew = <1 200000 12>;
 +                adi,range = <1>;
 +</code>
 +
 +====== Driver testing ======
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root:/> **cd /sys/bus/iio/devices/**
 +root:/sys/bus/iio/devices> ls
 +iio:device0
 +
 +root:/sys/bus/iio/devices> **cd iio\:device0**
 +
 +root:/sys/bus/iio/devices/iio:device0> **ls -l**
 +-r--r--r-- 1 root root 4096 May 23 09:14 dev
 +-rw-r--r-- 1 root root 4096 May 23 09:14 out_voltage0_powerdown
 +-rw-r--r-- 1 root root 4096 May 23 09:14 out_voltage0_raw
 +-rw-r--r-- 1 root root 4096 May 23 09:14 out_voltage_scale
 +-r--r--r-- 1 root root 4096 May 23 09:14 name
 +drwxr-xr-x 2 root root    0 May 23 09:14 power
 +lrwxrwxrwx 1 root root    0 May 23 09:14 subsystem -> ../../../../../../../../bus/iio
 +-rw-r--r-- 1 root root 4096 May 23 09:14 uevent
 +</xterm></WRAP>
 +
 +=== Show device name ===
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root:/sys/bus/iio/devices/iio:device0> **cat name**
 +ad5758
 +</xterm></WRAP>
 +
 +=== Show scale ===
 +
 +**Description:**\\
 +scale to be applied to in_voltage0_raw in order to obtain the measured voltage in millivolts.
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root:/sys/bus/iio/devices/iio:device0> **cat out_voltage_scale **
 +0.152587890
 +</xterm></WRAP>
 +
 +=== Set channel 0 output voltage ===
 +
 +**Description:**\\
 +/sys/bus/iio/devices/deviceX/out_voltage0_raw\\
 +
 +Raw (unscaled, no bias etc.) output voltage for
 +channel 0.
 +
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root:/sys/bus/iio/devices/iio:device0> **echo 32767 > out_voltage0_raw**
 +</xterm></WRAP>
 +
 +**U** = //out_voltage0_raw * out_voltage_scale// = 32767 * 0.152587890 = **4999.84 //mV//**
 +
 +=== Enable power down mode on output 0 ===
 +
 +/sys/bus/iio/devices/deviceX/out_voltage0_powerdown
 +
 +**Description:**\\
 +Writing 1 causes output 0 to enter the power down mode. Clearing returns to
 +normal operation.
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root:/sys/bus/iio/devices/iio:device0> **echo 1 > out_voltage0_powerdown**
 +root:/sys/bus/iio/devices/iio:device0>  **cat out_voltage0_powerdown**
 +1
 +root:/sys/bus/iio/devices/iio:device0> **echo 0 > out_voltage0_powerdown**
 +root:/sys/bus/iio/devices/iio:device0>  **cat out_voltage0_powerdown**
 +0
 +</xterm></WRAP>
 +
 +====== More Information ======
 +
 +{{page>software:linux:docs:iio:iio_snippets#iio pointers&noheader&firstseconly&noeditbtn}}
 +
resources/tools-software/linux-drivers/iio-dac/ad5758.txt · Last modified: 15 Oct 2018 16:25 by Stefan Popa