打印
[PIC®/AVR®/dsPIC®产品]

ADC采集电源电压的问题

[复制链接]
2220|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1564564|  楼主 | 2023-11-3 17:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我的目标是板子用电池3.7v供电,然后电池电量会降低嘛,当电池电压低于3.2v时就有提示,所以用adc进行采样;
看图一时我的adc初始化部分,图二是搜索大佬的回答,我使用的就是两个电阻分压的电路,但是现在采集到的数据一直是0;
下面是获取采样值的代码;
adc_result_t ADC_GetConversion(void)
{
    OSCCON = 0x68;
    // select the A/D channel
    ADCON0bits.CHS = 0x09;   

    // Turn on the ADC module
    ADCON0bits.ADON = 1;
    // Acquisition time delay
    __delay_us(ACQ_US_DELAY);

    // Start the conversion
    ADCON0bits.GO_nDONE = 1;

    // Wait for the conversion to finish
    while (ADCON0bits.GO_nDONE)
    {
    }
    // Conversion finished, return the result
    return ((ADRESH << 8) | ADRESL);
    OSCCON = 0x02;
}

微信图片_20231103173223.jpg (151.69 KB )

3

3

微信截图_20231103172854.png (118.74 KB )

1

1

微信图片_20231103172715.png (50.91 KB )

2

2

使用特权

评论回复
沙发
zhuotuzi| | 2023-11-7 08:44 | 只看该作者
一般分压就可以。只要有个靠谱的参靠电压就行。

使用特权

评论回复
板凳
Undshing| | 2023-11-12 18:47 | 只看该作者
参考电压不好找啊

使用特权

评论回复
地板
wutaosamuel| | 2023-11-13 10:35 | 只看该作者
MCU内部有固定参考电压(FVR),是不会随着VDD电压变化的
所以adc可以用内部的参考电压为基准,vdd作为输入端

使用特权

评论回复
5
Henryko| | 2023-11-14 10:39 | 只看该作者
一直是0应该是程序写的问题吧

使用特权

评论回复
6
1564564|  楼主 | 2023-11-16 16:12 | 只看该作者
Henryko 发表于 2023-11-14 10:39
一直是0应该是程序写的问题吧

以前是好的,现在就是不准

使用特权

评论回复
7
1564564|  楼主 | 2023-11-16 16:14 | 只看该作者
谢谢各位大佬解答,现在不知道是电路的原因还是软件原因,能采集到数据了,但是误差很大,也可能是参考电压的问题。

使用特权

评论回复
8
forgot| | 2023-11-17 10:57 | 只看该作者
但是现在采集到的数据一直是0肯定不对,如果你电源电压不稳定采用分压进行参考电压设计肯定不行的

使用特权

评论回复
9
forgot| | 2023-11-17 10:57 | 只看该作者
你可以尝试用外接一个稳定电压源进行测试,确定是参考电压的问题之后再判断,如果是参考电压的问题就可以看看TL431

使用特权

评论回复
10
Jacquetry| | 2023-11-20 10:20 | 只看该作者
用内部的基准电压就可以吧

使用特权

评论回复
11
AloneKaven| | 2023-11-21 10:02 | 只看该作者
参考电压选哪个啊

使用特权

评论回复
12
Bowclad| | 2023-11-23 14:59 | 只看该作者
误差大是不是没校准啊

使用特权

评论回复
13
MessageRing| | 2023-11-27 14:47 | 只看该作者
内部的那个基准电压应该是校准过的

使用特权

评论回复
14
AloneKaven| | 2023-11-28 10:17 | 只看该作者
不行的话就外接个参考源试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

114

帖子

0

粉丝