[技术问答] 根据N76E003里面那个1.2反推VDD根本不准确

[复制链接]
 楼主| 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输入固定精确的电压,先校准系统误差。
你的程序不易看懂,而且你的算法也有误差 ...

这位兄台说的很对,我也觉得是他自己的问题。
gx_huang 发表于 2017-10-24 16:39 | 显示全部楼层
(BandgapHigh<<4)+BandgapLow;
啥意思?
uint8的类型,结果还是uint8,按道理是12bit,是uint16才对。
zhuomuniao110 发表于 2017-10-24 20:41 | 显示全部楼层
要弄清楚之间的关系。
dongnanxibei 发表于 2017-10-24 21:16 | 显示全部楼层
没试过这种反推。
挖东衣宇 发表于 2017-10-25 09:28 | 显示全部楼层
不是这个例程,还有另外一个adc检测vdd例程,试过还是挺准的
 楼主| Q80351951 发表于 2017-10-25 10:33 | 显示全部楼层

对,这有问题
 楼主| Q80351951 发表于 2017-10-25 10:33 | 显示全部楼层
本帖最后由 Q80351951 于 2017-10-25 10:37 编辑

Read_Bandgap.rar (568.76 KB, 下载次数: 42)

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

这是官方给我的

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

挖东衣宇 发表于 2017-10-25 10:58 | 显示全部楼层
Q80351951 发表于 2017-10-25 10:33
这是官方给我的

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

我的也是官方的,官网下载的
电子农民工 发表于 2017-10-26 16:25 | 显示全部楼层
用过。挺准的。
 楼主| Q80351951 发表于 2017-10-26 21:16 | 显示全部楼层

我的确实不准,7805供电万用表测量为4.91,但推出来的是5.03V.
官网没有此例程.
Nu_Micro 发表于 2017-10-27 13:07 | 显示全部楼层
用这个例程: N76E003_BSP_Keil_C51_V1.0.2\Sample_Code\ADC_Bandgap_VDD     BSP去下载最新的
 楼主| 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温飘小。
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吧 已经出来了 专门修改了这个带隙电压相关的例程
 楼主| 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

温飘很大,已经放弃。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

260

帖子

6

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