
清空记录
历史记录
取消
清空记录
历史记录

SARADC是Successive Approximation Register Analog-to-Digital
Converter的缩写,是一种常用的模数转换器,用于将模拟信号转换为数字信号。通常用于将来自传感器或模拟信号源的连续模拟信号转换为数字表示,以便数字处理器或微控制器进行进一步处理。
主要优点:在转换过程中只需要很少的外部元件,因此可以集成在单片集成电路中。此外,SARADC具有较低的功耗和较短的转换时间,使其适用于许多低功耗和高速应用。
触觉智能RK3506开发板由于默认未预留SARADC采集通道接口,需整改硬件,修改如下:
断开Q4、R43器件,引出SARADC_IN2引脚:
触觉智能RK3506开发板,相关底板详细资料请关注深圳触觉智能公众号,添加官方客服13423856106,提供近80个G的软硬件资料与Demo。
1.SARADC对应的驱动文件所在位置:
kernel/drivers/iio/adc/rockchip_saradc.c
2.设备树配置参考文档:
kernel/Documentation/devicetree/bindings/iio/adc/rockchip-saradc.yaml
3.主要参数说明:
interrupts =
#io-channel-cells = <1> :描述一个 I/O 通道(I/O Channel)的参数个数。
vref-supply = <&vccadc_ref> :SARADC值对应的参考电压,最大为1.8V,对应的SARADC值为1023。
1.配置内核支持SARADC。
设备树配置ido-evb3506-v1a-emmc.dtsi开启SARADC,命令如下:
&saradc {
vref-supply = <&vcc_1v8>;
status = "okay";
};
由于默认设备树复用SARADC_IN2引脚为其他功能,需禁用默认功能配置,命令如下:
--- a/kernel-6.1/arch/arm/boot/dts/ido-evb3506-v1a-emmc.dtsi
+++ b/kernel-6.1/arch/arm/boot/dts/ido-evb3506-v1a-emmc.dtsi
@@ -155,7 +155,7 @@
};
leds: leds {
- status = "okay";
+ status = "disabled";
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&leds_gpio>;由于系统启动脚本S89ML37init默认会配置SARADC_IN2引脚为普通GPIO作为4G模块的复位引脚,因此需删除该脚本重启系统进行测试:
rm /etc/init.d/S89ML37init
上电进入系统后,通过用户态接口获取ADC值,因RK3506最高支持4路SARADC通道,即in_voltage0_raw ~ in_voltage3_raw为有效通道,分别对应SARADC_IN0 ~ SARADC_IN3:
以SARADC_IN2为例,SARADC_IN2分别接入1.8V 、GND后,执行命令读取输入电压的raw数据:
AD转换计算公式:Vref / (2^n-1) = Vresult / raw,公式说明如下:
Vref:为参考电压1.8v
n: 为 AD 转换的位数,为10位
Vresult: 为用户所需要的采集电压
raw: 为 AD 采集的原始数据
AD 采集到的原始数据 1023,则:Vresult = (1800mv * 1023) / 1023 = 1.8v,与接入的1.8v一致。
AD 采集到的原始数据 1,则:
Vresult = (1800mv * 1) / 1023 = 0.0017v,与接入的GND的电压一致接近0v。
产品简介
