Firefly开源社区

打印 上一主题 下一主题

ADC驱动

81

积分

0

威望

0

贡献

技术小白

积分
81

ADC驱动

发表于 2015-7-23 14:57:27      浏览:8208 | 回复:8        打印     [复制链接] 楼主
求各位大侠指导,wiki上给的ADC计算公式Vref / (2^n-1) = Vresult / raw,跟在kernel ./drivers/power/rk30_factory_adc_battery.c中static int get_ref_voltage(struct rk30_adc_battery_data *bat)函数中的计算方式不同,在kernel中引用的adc的计算方式raw和2^n-1的位置是互换的,想知道是wiki上给的计算公式有问题吗?
回复

使用道具 举报

81

积分

0

威望

0

贡献

技术小白

积分
81
发表于 2015-7-23 16:37:33      沙发
计算出来的不对,不知道是 不是我驱动有问题,我贴下probe函数里面的代码
struct iio_channel *chan;
int val;
printk("%s:%s\n",__FILE__,__FUNCTION__);
chan = iio_channel_get(&pdev->dev,NULL);
iio_read_channel_raw(chan,&val);
printk("iio read channel is %d%d\n",chan->channel->channel,chan->channel->channel2);
printk("iio read channel raw is %d\n",val);
adc操作如上,ADCIN0悬空的情况下val数值大概是1023,ADCIN0给个3.3v电压的时候val数值大概是520左右,根据那个公式算出来的数值不对?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表