Wiki

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
resources:tools-software:linux-drivers:iio-dac:ad5758 [23 May 2018 10:45]
Stefan Popa Evaluation Boards
resources:tools-software:linux-drivers:iio-dac:ad5758 [15 Oct 2018 16:25] (current)
Stefan Popa adc->dac
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/​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.1527065150.txt.gz · Last modified: 23 May 2018 10:45 by Stefan Popa