Linux内核编程(十八)ADC驱动
本文目录
- 一、知识总领
- 二、查看开发板手册获取ADC硬件接口
- 三、操作ADC框架图
- 四、通过sysfs接口操作ADC
- 五、ADC驱动编写
一、知识总领
具体ADC知识点请查看STM32的ADC实验。 这里不做基础知识的讲解。SARADC为逐次逼近型的ADC转换器,后续会多次看到这个。
二、查看开发板手册获取ADC硬件接口
三、操作ADC框架图
四、通过sysfs接口操作ADC
-
查看开发板上ADC通道:
cd sys/bus/iio/devices/iio:device0
-
查看通道7的adc数值:
cat in_voltage7_raw
例如rk3588开发板的adc电压测量范围为0~1.8v(参考电压或量程),为10位精度。那么根据公式可得,ADC的分辨率=1.8 / 2^10,再用这个分辨率×这个数值(1003)就得到了测量电压。
五、ADC驱动编写
- device设备部分
在根节点下编写结点,用于生产platform_device。
adc4:adc_test{compatible ="myadc";io-channels = <&saradc 4>; //adc控制器,使用adc通道4
}
- driver驱动部分