資料介紹
Table of Contents
nanoDAC+ IIO DAC Linux Driver
Supported Devices
This driver supports the
Reference Circuits
Evaluation Boards
Description
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.
Source Code
Status
Files
Devicetree
Required devicetree properties for spi devices:
- compatible: Needs to be the name of the device. E.g. “ad5676”
- reg: The chipselect number used for the device
- spi-max-frequency: Maximum SPI clock frequency.
- spi-cpol: Needs to be set for the correct SPI mode
- vcc-supply: Phandle to the fixed regulator
- interrupts: the interrupt used for buffer sampling
- pwms: pwm pin used as the interrupt source
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:
- compatible: Needs to be the name of the device. E.g. “AD5696”
- reg: The chipselect number used for the device
- vcc-supply: Phandle to the fixed regulator
- interrupts: the interrupt used for buffer sampling
- pwms: pwm pin used as the interrupt source
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"; };
Driver testing
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
Show device name
This specifies any shell prompt running on the target
root:/sys/bus/iio/devices/iio:device0> cat name ad5696
Show scale
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
Set channel Y output voltage
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
List available power down modes
/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
Set channel Y power down mode
/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
Enable power down mode on output Y
/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
Buffer Support
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
Enable buffered channels
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
More Information
- IIO mailing list: linux [dash] iio [at] vger [dot] kernel [dot] org
- AD5449 IIO DAC Linux驅(qū)動程序
- AD5380 IIO多通道Linux驅(qū)動程序DAC
- AD7291 IIO ADC Linux驅(qū)動程序
- AD5421 IIO DAC Linux驅(qū)動程序
- AD5360 IIO多通道Linux驅(qū)動程序DAC
- AD7303 IIO DAC Linux驅(qū)動程序
- AD5446 IIO DAC Linux驅(qū)動程序
- ADIS16080 IIO偏航率陀螺儀Linux驅(qū)動程序
- IIO單通道串行ADC Linux驅(qū)動程序
- AD9834 IIO直接數(shù)字合成Linux驅(qū)動程序
- AD9832 IIO直接數(shù)字合成Linux驅(qū)動程序
- AD7998 IIO ADC Linux驅(qū)動程序
- AD7887 IIO ADC Linux驅(qū)動程序
- AD5933 IIO阻抗轉(zhuǎn)換器和網(wǎng)絡(luò)分析儀Linux驅(qū)動程序
- AD5677R NanDAC+無操作系統(tǒng)驅(qū)動程序
- 怎么編寫Framebuffer驅(qū)動程序 403次閱讀
- 自動刪除SDK/Vitis下驅(qū)動程序的舊版本的Linux腳本 558次閱讀
- 如何寫一個Linux設(shè)備驅(qū)動程序 4314次閱讀
- 米爾科技LINUX設(shè)備驅(qū)動程序教程 1966次閱讀
- 嵌入式Linux內(nèi)核的驅(qū)動程序開發(fā)是怎樣的 1415次閱讀
- 淺談電腦驅(qū)動程序的工作原理 詳解電腦驅(qū)動程序意義 2.9w次閱讀
- 基于嵌入式Linux內(nèi)核的系統(tǒng)設(shè)備驅(qū)動程序開發(fā)設(shè)計 1113次閱讀
- 基于Linux2.6.30開發(fā)DS18B20的驅(qū)動程序的類型和文件操作接口函數(shù)詳解 1377次閱讀
- 可動態(tài)安裝的Linux設(shè)備驅(qū)動程序 957次閱讀
- 如何用嵌入式Linux系統(tǒng)編寫鍵盤驅(qū)動 1312次閱讀
- 8255A驅(qū)動程序 3193次閱讀
- 8155驅(qū)動程序 3057次閱讀
- 深入了解USB驅(qū)動之總線驅(qū)動程序 8685次閱讀
- Xilinx設(shè)備的驅(qū)動程序 7967次閱讀
- PCI驅(qū)動程序開發(fā)實例 6702次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多