通用接口(2)——ADC(RK3399)

39 篇文章 13 订阅
5 篇文章 0 订阅

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可达到纳秒级。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值