打印
[牛人杂谈]

如何读取N76E003 的Band-gap电压实际值?

[复制链接]
1962|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 643757107 于 2018-3-22 21:25 编辑

N76E003的ADC可以选择内部Band-gap电压作为输入脚,能用来反推ADC的参考电压,得到更精准的ADC结果。

常温下,所有N76E003的Band-gap电压值会校准在1.17V ~ 1.27 V内。如果想要知道每颗N76E003的Band-gap实际电压值,可以通过读取UID地址后的2个bytes值来确认。

  • UID 后的2个bytes储存Band-gap的实际值,总共12个有效bit。
  • 第一个byte是高8位,第二个byte的低4位为12 bit的低4位。
  • 读取和计算步骤:
    • 用读取UID的方式,以IAP 读取Band-gap的值为例
    • 合并高8位和低4位
    • 使用下列公式换算成实际的电压值:

      公式:




  • 计算范例:
    读取UID地址后的2个bytes值,第一个byte值为 0x64,第二个byte值为0x0E,合并为0x64E = 1614,换算电压值结果为:


沙发
643757107|  楼主 | 2018-3-22 21:26 | 只看该作者
例程序:
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);

}

使用特权

评论回复
板凳
734774645| | 2018-3-23 12:55 | 只看该作者
可以作为ADC的一个通道读取出来。

使用特权

评论回复
地板
玛尼玛尼哄| | 2018-3-23 16:58 | 只看该作者
那就是这个说,跟手册里的有轻微的不一样了

使用特权

评论回复
5
zhuomuniao110| | 2018-3-24 09:30 | 只看该作者
原来还可以读出来啊。

使用特权

评论回复
6
星星点灯69| | 2018-3-24 15:11 | 只看该作者
学习了

使用特权

评论回复
7
zhuotuzi| | 2018-3-25 16:07 | 只看该作者
牛X,一个函数搞定了,不需要什么初始化。。

使用特权

评论回复
8
dongliushui| | 2018-3-25 16:41 | 只看该作者
就是说这个跟标称还有一点不一样了

使用特权

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

本版积分规则

212

主题

3780

帖子

11

粉丝