打印
[技术问答]

根据N76E003里面那个1.2反推VDD根本不准确

[复制链接]
2502|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Q80351951|  楼主 | 2017-10-24 11:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include "N76E003.h"
#include "Define.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

double  Bandgap_Value,Bandgap_Voltage;

void READ_BANDGAP()
{
        UINT8 BandgapHigh,BandgapLow;
        set_IAPEN;
        IAPAL = 0x0C;
    IAPAH = 0x00;
    IAPCN = READ_UID;
    set_IAPGO;
        BandgapHigh = IAPFD;
        IAPAL = 0x0d;
    IAPAH = 0x00;
    IAPCN = READ_UID;
    set_IAPGO;
        BandgapLow = IAPFD;
        BandgapLow = BandgapLow&0x0F;
        clr_IAPEN;
        Bandgap_Value = (BandgapHigh<<4)+BandgapLow;
        Bandgap_Voltage = 3072/(0x1000/Bandgap_Value);
}

void main(void)
{
    READ_BANDGAP();
    while(1);
}

万用表测得VDD为4.93V(5个万用表测量结果差不多),程序计算反推出来的VDD为5.1V,差距这么大,怎么用?

沙发
yiyigirl2014| | 2017-10-24 16:06 | 只看该作者
不知道反推的依据是什么。1.2是什么,内部参考吗?

使用特权

评论回复
板凳
gx_huang| | 2017-10-24 16:18 | 只看该作者
反推也需要校准呀,外部VDD输入固定精确的电压,先校准系统误差。
你的程序不易看懂,而且你的算法也有误差呀,怀疑你的变量类型计算都溢出了或者精度丢失了。

使用特权

评论回复
地板
yiyigirl2014| | 2017-10-24 16:26 | 只看该作者
gx_huang 发表于 2017-10-24 16:18
反推也需要校准呀,外部VDD输入固定精确的电压,先校准系统误差。
你的程序不易看懂,而且你的算法也有误差 ...

这位兄台说的很对,我也觉得是他自己的问题。

使用特权

评论回复
5
gx_huang| | 2017-10-24 16:39 | 只看该作者
(BandgapHigh<<4)+BandgapLow;
啥意思?
uint8的类型,结果还是uint8,按道理是12bit,是uint16才对。

使用特权

评论回复
6
zhuomuniao110| | 2017-10-24 20:41 | 只看该作者
要弄清楚之间的关系。

使用特权

评论回复
7
dongnanxibei| | 2017-10-24 21:16 | 只看该作者
没试过这种反推。

使用特权

评论回复
8
挖东衣宇| | 2017-10-25 09:28 | 只看该作者
不是这个例程,还有另外一个adc检测vdd例程,试过还是挺准的

使用特权

评论回复
9
Q80351951|  楼主 | 2017-10-25 10:33 | 只看该作者

对,这有问题

使用特权

评论回复
10
Q80351951|  楼主 | 2017-10-25 10:33 | 只看该作者
本帖最后由 Q80351951 于 2017-10-25 10:37 编辑

Read_Bandgap.rar (568.76 KB)

挖东衣宇 发表于 2017-10-25 09:28
不是这个例程,还有另外一个adc检测vdd例程,试过还是挺准的

这是官方给我的

你的挺准的给参考一下,先谢!

使用特权

评论回复
11
挖东衣宇| | 2017-10-25 10:58 | 只看该作者
Q80351951 发表于 2017-10-25 10:33
这是官方给我的

你的挺准的给参考一下,先谢!

我的也是官方的,官网下载的

使用特权

评论回复
12
电子农民工| | 2017-10-26 16:25 | 只看该作者
用过。挺准的。

使用特权

评论回复
13
Q80351951|  楼主 | 2017-10-26 21:16 | 只看该作者

我的确实不准,7805供电万用表测量为4.91,但推出来的是5.03V.
官网没有此例程.

使用特权

评论回复
14
Nu_Micro| | 2017-10-27 13:07 | 只看该作者
用这个例程: N76E003_BSP_Keil_C51_V1.0.2\Sample_Code\ADC_Bandgap_VDD     BSP去下载最新的

使用特权

评论回复
15
Q80351951|  楼主 | 2017-10-30 13:23 | 只看该作者
Nu_Micro 发表于 2017-10-27 13:07
用这个例程: N76E003_BSP_Keil_C51_V1.0.2\Sample_Code\ADC_Bandgap_VDD     BSP去下载最新的

新版确实有这个例程,已经下载,
结论是这个电压温飘的厉害,且常温不正确,温度越高,推出来的VDD数字越小,还不如7805温飘小。

使用特权

评论回复
16
Harvard| | 2017-11-4 22:32 | 只看该作者
Q80351951 发表于 2017-10-25 10:33
这是官方给我的

你的挺准的给参考一下,先谢!

2017.9.26
1.03
1. Modify ADC read band-gap and calculate VDD value demo

更新一下bsp吧 已经出来了 专门修改了这个带隙电压相关的例程

使用特权

评论回复
17
Q80351951|  楼主 | 2017-11-8 22:35 | 只看该作者
Harvard 发表于 2017-11-4 22:32
2017.9.26
1.03
1. Modify ADC read band-gap and calculate VDD value demo

温飘很大,已经放弃。

使用特权

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

本版积分规则

44

主题

254

帖子

5

粉丝