12F615的ADC可以采样内部1.2或0.6V通道吗

[复制链接]
3276|7
 楼主| Lx_mcu 发表于 2011-10-6 20:06 | 显示全部楼层 |阅读模式
请问一下,12F615的ADC可以采样1.2或0.6V通道吗? 我采样回来的数据为0  0.6V我使能了,我用比较器测试是可正常工作的,

下面是ADC拟通道选择位:
CHS<2:0>:模拟通道选择位
000 = 通道00 (AN0)
001 = 通道01 (AN1)
010 = 通道02 (AN2)
011 = 通道03 (AN3)
100 = CVREF
101 = 0.6V 参考电压
110 = 1.2V 参考电压
我主要是想确认电源电压是不是正常,想采样一下内部0.6或1.2V来确认,我用是的电源电压做参考,想提高一下ADC的精度,
xaq79 发表于 2011-10-12 13:55 | 显示全部楼层
可以采样
yewuyi 发表于 2011-10-12 14:59 | 显示全部楼层
既然101,110都已经写那么清楚了,那还有什么疑问的?

自然就是可以嘛。
 楼主| Lx_mcu 发表于 2011-10-12 21:04 | 显示全部楼层
问题就是采样回来的数据为0
XIEYUANBIN 发表于 2011-10-13 08:04 | 显示全部楼层
你采样别的外部电压是0吗?看看你的AD设置
asspeed 发表于 2011-10-13 08:27 | 显示全部楼层
0.6V和1.2V内参需要使能吗?
你可以拿它们来修正VDD的偏差,
但是它们自身的误差大概为百分之十几,
所以如果你VDD本身浮动范围如果在百分之十以内,那么这种方法没有意义,
除非你自己对每个芯片的内参做标定,然后进行补偿,那么可以减少误差。
其实最好用好一点的LDO或者用外部参考源反而方便些,
但是可能整体成本就。。。。。
 楼主| Lx_mcu 发表于 2011-10-23 21:30 | 显示全部楼层
在外出差,不好意思,
其它ADC是OK的,就是内部0.6或1.2V采样为0

int ADC(unsigned char channel)                //AD转换.
{
        while(GODONE);   
        switch(channel)
        {
                case 0x00:        ADCON0=0x81;        break;        //AN0.
                case 0x01:        ADCON0=0x85;        break;        //AN1.
                case 0x02:        ADCON0=0x89;        break;        //AN2.
                case 0x03:        ADCON0=0x8d;        break;        //AN3.
                case 0x04:        ADCON0=0x95;        break;        //0.6
                case 0x05:        ADCON0=0x99;        break;        //1.2               
                default :        ADCON0=0x81;        break;
        }
        GODONE = 1;
    while(GODONE);      
    return (ADRESH<<8)+ADRESL;
}
 楼主| Lx_mcu 发表于 2011-10-23 21:31 | 显示全部楼层
它们自身的误差大概为百分之十几??
有这么大吗,我查下datasheet看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

30

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部