Firefly开源社区

标题: Firely-RK3288 ADC驱动 [打印本页]

作者: madman    时间: 2016-3-2 11:51
标题: Firely-RK3288 ADC驱动
本帖最后由 madman 于 2016-3-2 11:53 编辑

继续来整理下adc模块的驱动,在rk封装好的接口上使用adc接口还是很方便的,具体的类似adc标准电压之类的东西可以在rk3288.dts上配置,
  1. adc: adc@ff100000 {
  2.         compatible = "rockchip,saradc";
  3.         reg = <0xff100000 0x100>;
  4.         interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  5.         #io-channel-cells = <1>;
  6.         io-channel-ranges;
  7.         rockchip,adc-vref = <1800>;
  8.         clock-frequency = <1000000>;
  9.         clocks = <&clk_saradc>, <&clk_gates7 1>;
  10.         clock-names = "saradc", "pclk_saradc";
  11.         status = "disabled";
  12. };
复制代码

读出来的adc可以根据这公式转换:Vref / (2^n-1) = Vresult / raw   
其中 Vref 为标准电压    n 为 AD 转换的位数     Vresult 为用户所需要的采集电压       raw 为 AD 采集的原始数据

在dts添加对应配置
  1. &adc {
  2.         status = "okay";

  3.         rockchip_headset {
  4.                 compatible = "rockchip_headset";
  5.                 headset_gpio = <&gpio0 GPIO_C2 GPIO_ACTIVE_LOW>;
  6.                 pinctrl-names = "default";
  7.                 pinctrl-0 = <&gpio0_c2>;
  8.                 io-channels = <&adc 2>;
  9.        };

  10.         adc0{
  11.                 compatible = "test-adc0";
  12.                 io-channels=<&adc 0>;
  13.         };
复制代码
这里我的标准电压是1.8v,所以测量的范围就是0-1.8v。写了个简单的接口。
下面是测试的效果:


adc.png (191.15 KB, 下载次数: 429)

adc.png

adc_test.c.zip

978 Bytes, 下载次数: 546, 下载积分: 灯泡 -1 , 经验 -1


作者: 牛头    时间: 2016-3-2 15:53
很好,多分享进步快
作者: firefly_king    时间: 2016-3-2 16:49
:) 很好,学习
作者: 214740484    时间: 2016-7-27 18:36
谢谢,学习了!
作者: williamxu    时间: 2016-8-22 16:29
拿来测试用,不错。
作者: wangpeng1108    时间: 2016-9-8 17:29
谢谢。学习啦{:3_42:}
作者: Eason    时间: 2016-9-9 09:36
很好,多分享进步快
作者: alaode    时间: 2016-9-11 06:35
学习

作者: wmslecz    时间: 2016-9-11 09:48
学习啦...给力...
作者: brian1611    时间: 2016-9-29 14:46
thx !!!!!!
作者: mlt911213    时间: 2016-12-19 11:27
标准电压是什么决定的?
作者: madman    时间: 2016-12-19 14:27
mlt911213 发表于 2016-12-19 11:27
标准电压是什么决定的?

rockchip,adc-vref = <1800>;
作者: mlt911213    时间: 2016-12-19 14:32
madman 发表于 2016-12-19 14:27
rockchip,adc-vref = ;

OK
作者: loading    时间: 2017-3-17 20:16
哪来试试  
作者: agdhun    时间: 2017-6-6 09:33
学习了
作者: sds    时间: 2017-7-5 11:13
楼主在firefly-rk3288.dts里面增加的节点 adc0在代码中找没有  这是可以随便取的吗  学习下
作者: sds    时间: 2017-7-5 13:59
loading 发表于 2017-3-17 20:16
哪来试试

层主试了 可以吗 我编译时会报错
作者: loading    时间: 2017-7-5 17:25
sds 发表于 2017-7-5 13:59
层主试了 可以吗 我编译时会报错

试了可以呢,报错你就根据错误提示修改嘛
作者: 219高斯    时间: 2017-7-10 19:27
代码中.name="test_adc",的test_adc是从哪里来的
作者: sds    时间: 2017-7-11 09:48
loading 发表于 2017-7-5 17:25
试了可以呢,报错你就根据错误提示修改嘛

dts设置中  adc0是可以随便取的吗  请教下
作者: loading    时间: 2017-7-11 12:50
sds 发表于 2017-7-11 09:48
dts设置中  adc0是可以随便取的吗  请教下

不是呀,一般有参考的,如1.8或者是3.3
作者: sds    时间: 2017-7-11 13:46
loading 发表于 2017-7-11 12:50
不是呀,一般有参考的,如1.8或者是3.3

我说的是adc0{
                compatible = "test-adc0";
                io-channels=<&adc 0>;
        };里面的的adc0节点,这个名字是可以随便取的吗
作者: loading    时间: 2017-7-12 09:46
sds 发表于 2017-7-11 13:46
我说的是adc0{
                compatible = "test-adc0";
                io-channels=;

compatible = "test-adc0"---这个里面的adc0名称随便取,跟代码里面对应就可以
io-channels=<&adc 0>;---这个里面的adc 0 是0通道,根据要测试的通道来填写
作者: sds    时间: 2017-7-12 10:29
loading 发表于 2017-7-12 09:46
compatible = "test-adc0"---这个里面的adc0名称随便取,跟代码里面对应就可以
io-channels=;---这个里 ...

首先感谢你的回复  我想了解的是大括号外面的adc0的情况哦
作者: lhyi23    时间: 2017-8-25 17:05
感谢分享!学习了!
作者: carter123456    时间: 2017-9-4 19:40
学习了 谢谢分享
作者: zhangjy46    时间: 2017-11-16 16:33
多谢分享
作者: yunzhidian    时间: 2017-12-14 22:50
楼主请问您知道RK3288的SRADC的采样率到底是1MSPS还是100KSPS?
作者: gn5969625    时间: 2017-12-21 13:42
很好,多分享进步快
作者: djhoo    时间: 2018-1-21 21:28
先看看,谢谢
作者: 林子旅    时间: 2018-5-18 10:37
楼主,想咨询一下,这个adc能检测到12v的电压吗?
作者: dog_112    时间: 2018-5-30 09:39
666
作者: JohnLee    时间: 2018-7-24 14:14
学习

作者: williamzhang    时间: 2018-10-23 22:43
楼主,这个ADC通道如何确定对应芯片上的哪个引脚呢?
作者: ?_S9mm1    时间: 2019-1-2 17:33
很厉害11111111
作者: liswei    时间: 2019-2-6 17:14
感谢分享,这块还不是很熟悉
作者: rkgaofei    时间: 2019-3-21 15:51
谢谢分享!
作者: 嘘_z4RM6    时间: 2019-4-9 16:46
学习
作者: guangming123456    时间: 2019-4-25 11:52
正在学习,谢谢!
作者: Colourful    时间: 2019-4-28 09:13

楼主,这个ADC通道如何确定对应芯片上的哪个引脚呢?
作者: 秋去留痕叶归情    时间: 2019-5-14 14:34
哈哈哈
作者: 不是我    时间: 2019-6-14 02:01
受教!
作者: fish001    时间: 2019-7-1 11:08

拿来测试用,不错。
作者: fish001    时间: 2019-7-1 11:17
reg = <0xff100000 0x100>;  这个在哪看的
作者: musk    时间: 2019-7-30 21:52
很好
作者: zhoum    时间: 2019-9-11 11:42
非常感谢
作者: laughing哥    时间: 2019-11-28 17:50
学到了,非常感谢
作者: z2flood    时间: 2019-12-19 14:12
下载学习下。
作者: ICECREAM    时间: 2019-12-27 10:16
学习一下....
作者: z2flood    时间: 2020-1-11 16:56
多谢分享。。
作者: z2flood    时间: 2020-2-7 13:15
非常感谢分享。
作者: lovefish991    时间: 2020-2-18 10:00
学习
作者: aoou    时间: 2020-3-4 14:31
good
作者: qtnyia2010    时间: 2020-4-15 16:52
很好,正需要 ,太感谢了
作者: hengxing    时间: 2020-6-4 16:39
学习
作者: archer1111    时间: 2020-6-9 17:30
henhao
学习了 ,谢谢分享
作者: zg_muyuan    时间: 2020-7-7 07:31
您好,我正在调ADC驱动,参考了您的代码。在kernel/arch/arm/boot/dts/rk3288-firefly.dts中添加了
&saradc {
    status = "okay";
    test_adc {
         compatible = "test_adc";
         io-channels = <&saradc 0>;
    };
};
然后在你提供的驱动文件中的match中
static const struct of_device_id adc_test_of_match[]={
        {.compatible = "test_adc",},
        {},
};
编译ko文件insmod后,proc下不出现文件节点。请问下是怎么回事呢、?万分感谢

作者: Kulenc    时间: 2020-7-21 11:38
zg_muyuan 发表于 2020-7-7 07:31
您好,我正在调ADC驱动,参考了您的代码。在kernel/arch/arm/boot/dts/rk3288-firefly.dts中添加了
&sarad ...

遇到了同样的问题,你那边解决了吗,求教,谢谢
作者: 苏云龙    时间: 2020-9-19 15:41
好厉害
作者: 苏云龙    时间: 2020-9-19 15:43
不错不错
作者: 17621928623    时间: 2020-10-14 18:38
可惜下不了代码
作者: 易非易    时间: 2020-12-31 09:58
很好,多分享进步快
作者: chenhai    时间: 2021-6-11 18:06
1111111111111111111111111111111111
作者: zygcs    时间: 2021-6-11 18:09
rk_keys.c 里面也能打印了
作者: hutao    时间: 2021-9-7 13:15
学习
作者: zcpmcu    时间: 2021-9-21 12:12
谢谢分享!!!!
作者: zcpmcu    时间: 2021-10-10 15:09
谢谢分享!!!1
作者: beifanggd    时间: 2022-1-3 13:22
谢谢分享
作者: z2flood    时间: 2022-2-28 22:40
txh...
作者: Hourant    时间: 2022-6-14 18:56
非常感谢这个分享


作者: wangyue0126    时间: 2022-8-11 11:47
11111111
作者: wx__tME363    时间: 2022-12-1 15:50
学习了
作者: aoou    时间: 2023-11-16 17:59
有用   ,对初学者有帮助
作者: 余正清    时间: 2024-4-25 21:15

学习啦...给力..能有教程就更完美了
作者: BruceWyane    时间: 7 天前
学习啦...给力..能有教程就更完美




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1