vim3+ubuntu下的ADC怎么用?

请问有人知道vim3板子在ubuntu环境下的ADC怎么用么?

@aspire

ADC系统节点: /sys/bus/iio/devices/iio\:device0

khadas@Khadas:/sys/bus/iio/devices/iio:device0$ ls
buffer                   in_voltage2_raw       in_voltage6_raw
chan7_mux                in_voltage3_input     in_voltage7_input
current_timestamp_clock  in_voltage3_mean_raw  in_voltage7_mean_raw
dev                      in_voltage3_raw       in_voltage7_raw
in_voltage0_input        in_voltage4_input     in_voltage_scale
in_voltage0_mean_raw     in_voltage4_mean_raw  name
in_voltage0_raw          in_voltage4_raw       of_node
in_voltage1_input        in_voltage5_input     power
in_voltage1_mean_raw     in_voltage5_mean_raw  scan_elements
in_voltage1_raw          in_voltage5_raw       subsystem
in_voltage2_input        in_voltage6_input     uevent
in_voltage2_mean_raw     in_voltage6_mean_raw

你上图红色框框的是channel 0.对应的是

khadas@Khadas:/sys/bus/iio/devices/iio:device0$ ls in_voltage0_*
in_voltage0_input  in_voltage0_mean_raw  in_voltage0_raw

你可以通过这些节点读取到原始的数据,自己再做转换。注意: 这里外引的ADC是1.8V的,不是3.3V。

谢谢,请问有没有c语言的例程,可以参考一下呢 @Frank

这个和其他驱动的操作方式是一样的,把设备节点当做文件处理就行。

那请问下,获取的原始数据怎么转换呢?1.8V指的是最大量程就是1.8V么?1.8V对应的原始输出是多少呢?@numbqq

还有in_voltage0_input in_voltage0_mean_raw in_voltage0_raw这几个值都是什么意思呢? @Frank