SARADC
The ADC is a 6-channel signal-ended 10-bit Successive Approximation Register (SAR) A/D
Converter. It uses the supply and ground as it reference which avoid use of any external
reference. It converts the analog input signal into 10-bit binary digital codes at maximum
conversion rate of 1MSPS with 13MHz A/D converter clock.
RK3399的adc模块从概念以及速率可以得出,该模块是中速AD。
相关配置及文件
CONFIG_ROCKCHIP_SARADC
相关文件:
kernel/drivers/iio/adc/rockchip_saradc.c
kernel/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt
static const struct iio_chan_spec rockchip_rk3399_saradc_iio_channels[] = {
ADC_CHANNEL(0, "adc0"),
ADC_CHANNEL(1, "adc1"),
ADC_CHANNEL(2, "adc2"),
ADC_CHANNEL(3, "adc3"),
ADC_CHANNEL(4, "adc4"),
ADC_CHANNEL(5, "adc5"),
};
static const struct rockchip_saradc_data rk3399_saradc_data = {
.num_bits = 10,
.channels = rockchip_rk3399_saradc_iio_channels,
.num_channels = ARRAY_SIZE(rockchip_rk3399_saradc_iio_channels),
.clk_rate = 1000000,
};
static const struct of_device_id rockchip_saradc_match[] = {
{
.compatible = "rockchip,saradc",
.data = &saradc_data,
}, {
.compatible = "rockchip,rk3066-tsadc",
.data = &rk3066_tsadc_data,
}, {
.compatible = "rockchip,rk3399-saradc",
.data = &rk3399_saradc_data,
},
{},
};
MODULE_DEVICE_TABLE(of, rockchip_saradc_match);
设备树配置
&saradc {
status = "okay";
};
saradc: saradc@ff100000 {
compatible = "rockchip,rk3399-saradc";
reg = <0x0 0xff100000 0x0 0x100>;
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
#io-channel-cells = <1>;
clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
clock-names = "saradc", "apb_pclk";
resets = <&cru SRST_P_SARADC>;
reset-names = "saradc-apb";
status = "disabled";
};
设备节点
[root@rk3399:/]# ls /dev/iio\:device0
/dev/iio:device0
通过sys文件系统节点读取adc采集数据
[root@rk3399:/]# cat /sys/bus/iio/devices/iio:device0/
dev in_voltage3_raw name uevent
in_voltage0_raw in_voltage4_raw of_node/
in_voltage1_raw in_voltage5_raw power/
in_voltage2_raw in_voltage_scale subsystem/
[root@rk3399:/]# cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
259
利用SARADC 来做按键
参考文档:
https://blog.csdn.net/dunwin/article/details/90176951
部分概念
MSPS
MSPS–Million Samples per Second
转换速率(Conversion Rate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。