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
Last revisionBoth sides next revision
resources:tools-software:linux-drivers:iio-dac:ad5758 [23 May 2018 10:45] – Evaluation Boards Stefan Poparesources:tools-software:linux-drivers:iio-dac:ad5758 [15 Oct 2018 16:24] – Updated driver links with the mainline version Stefan Popa
Line 9: Line 9:
  
   * [[adi>EVAL-AD5758]]   * [[adi>EVAL-AD5758]]
 +
 +===== Description =====
 +
 +This is a Linux industrial I/O ([[software:linux:docs:iio:iio|IIO]]) subsystem driver, targeting multi-channel serial interface DACs.
 +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.
 +
 +====== 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/adc/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