This driver supports the
This is a Linux industrial I/O (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 IIO for more information.
Required devicetree properties for spi devices:
adc_vref: fixedregulator@0 { compatible = "regulator-fixed"; regulator-name = "fixed-supply"; regulator-min-microvolt = <2500000>; regulator-max-microvolt = <2500000>; regulator-boot-on; }; #address-cells = <1>; #size-cells = <0>; status = "okay"; ad5676@0 { compatible = "ad5676"; reg = <0>; spi-max-frequency = <1000000>; spi-cpha; vcc-supply = <&adc_vref>; interrupts = <25 IRQ_TYPE_EDGE_RISING>; interrupt-parent = <&gpio>; pwms = <&pwm 0 100>; pwm-names = "pwm-trigger"; };
Required devicetree properties for i2c devices:
adc_vref: fixedregulator@0 { compatible = "regulator-fixed"; regulator-name = "fixed-supply"; regulator-min-microvolt = <2500000>; regulator-max-microvolt = <2500000>; regulator-boot-on; }; #address-cells = <1>; #size-cells = <0>; status = "okay"; ad5696@e { compatible = "ad5696"; reg = <0xe>; vcc-supply = <&adc_vref>; interrupts = <25 IRQ_TYPE_EDGE_RISING>; interrupt-parent = <&gpio>; pwms = <&pwm 0 100>; pwm-names = "pwm-trigger"; };
This specifies any shell prompt running on the target
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 drwxr-xr-x 2 root root 0 Jul 31 15:17 buffer -r--r--r-- 1 root root 4096 Jul 31 15:17 dev -r--r--r-- 1 root root 4096 Jul 31 15:17 name lrwxrwxrwx 1 root root 0 Jul 31 15:17 of_node -> ../../../../../../../../firmware/devicetree/base/soc/spi@7e204000/ad5679r@0 -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage0_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage0_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage0_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage10_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage10_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage10_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage11_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage11_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage11_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage12_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage12_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage12_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage13_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage13_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage13_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage14_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage14_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage14_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage15_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage15_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage15_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage1_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage1_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage1_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage2_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage2_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage2_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage3_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage3_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage3_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage4_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage4_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage4_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage5_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage5_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage5_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage6_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage6_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage6_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage7_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage7_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage7_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage8_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage8_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage8_raw -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage9_powerdown -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage9_powerdown_mode -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage9_raw -r--r--r-- 1 root root 4096 Jul 31 15:17 out_voltage_powerdown_mode_available -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage_sampling_frequency -rw-r--r-- 1 root root 4096 Jul 31 15:17 out_voltage_scale drwxr-xr-x 2 root root 0 Jul 31 15:17 power drwxr-xr-x 2 root root 0 Jul 31 15:17 scan_elements lrwxrwxrwx 1 root root 0 Jul 31 15:17 subsystem -> ../../../../../../../../bus/iio drwxr-xr-x 2 root root 0 Jul 31 15:17 trigger -rw-r--r-- 1 root root 4096 Jul 31 15:17 uevent
This specifies any shell prompt running on the target
root:/sys/bus/iio/devices/iio:device0> cat name ad5696
Description:
scale to be applied to in_voltage0_raw in order to obtain the measured voltage in millivolts.
This specifies any shell prompt running on the target
root:/sys/bus/iio/devices/iio:device0> cat out_voltage_scale 0.038146972
Description:
/sys/bus/iio/devices/deviceX/out_voltageY_raw
Raw (unscaled, no bias etc.) output voltage for channel Y.
This specifies any shell prompt running on the target
root:/sys/bus/iio/devices/iio:device0> echo 10000 > out_voltage0_raw
U = out_voltage0_raw * out_voltage_scale = 10000 * 0.038140 = 381.40 mV
/sys/bus/iio/devices/deviceX/out_powerdown_mode_available
Description:
Lists all available output power down modes.
This specifies any shell prompt running on the target
root:/sys/bus/iio/devices/iio:device0> cat out_voltage_powerdown_mode_available 1kohm_to_gnd 100kohm_to_gnd three_state
/sys/bus/iio/devices/deviceX/out_voltageY_powerdown_mode
Description:
Specifies the output power down mode.
DAC output stage is disconnected from the amplifier and
1kohm_to_gnd | connected to ground via an 1kOhm resistor |
100kohm_to_gnd | connected to ground via an 100kOhm resistor |
three_state | left floating |
For a list of available output power down options read out_voltageX_powerdown_mode_available.
This specifies any shell prompt running on the target
root:/sys/bus/iio/devices/iio:device0> echo three_state > out_voltage0_powerdown_mode root:/sys/bus/iio/devices/iio:device0> cat out_voltage0_powerdown_mode three_state
/sys/bus/iio/devices/deviceX/out_voltageY_powerdown
Description:
Writing 1 causes output Y to enter the power down mode specified
by the corresponding out_voltageY_powerdown_mode. Clearing returns to
normal operation. Y may be suppressed if all outputs are
controlled together.
This specifies any shell prompt running on the target
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
Description:
The nanoDAC family of devices has buffer support for changing the output of the DAC channels. To achieve this a PWM signal is used as the device trigger to output data. Using a sampling frequency attribute the period of the PWM signal can be changed. The sampling frequency is in Hz.
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0 $ cat out_voltage_sampling_frequency 1000 root@analog:/sys/bus/iio/devices/iio:device0# echo 2000 > out_voltage_sampling_frequency root@analog:/sys/bus/iio/devices/iio:device0# cat out_voltage_sampling_frequency 2000
Description:
The user has to enable on what channels to output the buffer samples. The samples are interleaved in the following in the order of the enabled channels.
Example:
If only channel 1 is enabled the buffer samples will have the following configuration:
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0# cd scan_elements/ root@analog:/sys/bus/iio/devices/iio:device0/scan_elements# ls out_voltage0_en out_voltage10_type out_voltage12_index out_voltage14_en out_voltage15_type out_voltage2_index out_voltage4_en out_voltage5_type out_voltage7_index out_voltage9_en out_voltage0_index out_voltage11_en out_voltage12_type out_voltage14_index out_voltage1_en out_voltage2_type out_voltage4_index out_voltage6_en out_voltage7_type out_voltage9_index out_voltage0_type out_voltage11_index out_voltage13_en out_voltage14_type out_voltage1_index out_voltage3_en out_voltage4_type out_voltage6_index out_voltage8_en out_voltage9_type out_voltage10_en out_voltage11_type out_voltage13_index out_voltage15_en out_voltage1_type out_voltage3_index out_voltage5_en out_voltage6_type out_voltage8_index out_voltage10_index out_voltage12_en out_voltage13_type out_voltage15_index out_voltage2_en out_voltage3_type out_voltage5_index out_voltage7_en out_voltage8_type root@analog:/sys/bus/iio/devices/iio:device0/scan_elements# echo 1 > out_voltage0_en root@analog:/sys/bus/iio/devices/iio:device0/scan_elements# cd ../buffer/ root@analog:/sys/bus/iio/devices/iio:device0/buffer# ls data_available enable length watermark root@analog:/sys/bus/iio/devices/iio:device0/buffer# echo 1 > enable
Sending a buffer sample example:
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0/buffer# echo -n -e '/x22/x33' > /dev/iio/:device0
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !