求各位大侠指导,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上给的计算公式有问题吗?
wiki上给的计算公式没有问题
用了这个公式计算出来的有问题吗?
计算出来的不对,不知道是 不是我驱动有问题,我贴下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左右,根据那个公式算出来的数值不对?
注意给的AD电压不能超过参考电压
xyzhou 发表于 2015-7-23 16:37
计算出来的不对,不知道是 不是我驱动有问题,我贴下probe函数里面的代码
struct iio_channel *chan;
int …
你好 读出来一直是1023 是什么问题?还有参考电压可以更改吗?最大参考电压是多少?
zhansb 发表于 2015-7-24 14:22
注意给的AD电压不能超过参考电压
http://developer.t-firefly.com/forum.php?mod=redirect&goto=findpost&ptid=1884&pid=6386&fromuid=1495
zhansb 发表于 2015-7-24 14:22
注意给的AD电压不能超过参考电压
你好 读出来一直是1023 是什么问题?还有参考电压可以更改吗?最大参考电压是多少?
参考电压是1.8,硬件连接决定的。
度出来是1023,需要去查一下实际到adc引脚的电压
3.3v应该没有问题。