打印
[技术问答]

学习N76E003时候有个疑问,什么是能带隙

[复制链接]
2187|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huahuagg|  楼主 | 2017-11-14 18:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
BSP里有个例子
IAP_Read_Bandgap\Code
查了一下,那个单子叫能带隙,不知道什么意思。
沙发
huahuagg|  楼主 | 2017-11-14 18:15 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2015 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  Nuvoton Technoledge Corp.
//  Website: http://www.nuvoton.com
//  E-Mail : MicroC-8bit@nuvoton.com
//  Date   : Apr/21/2016
//***********************************************************************************************************

//***********************************************************************************************************
//  File Function: N76E003 Read actual bandgap value by IAP command
//***********************************************************************************************************
#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

double  Bandgap_Value,Bandgap_Voltage;                        //please always use "double" mode for this
UINT8 BandgapHigh,BandgapLow;
               
void READ_BANDGAP()
{

                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/(0x0fff/Bandgap_Value);
}

void main(void)
{
        InitialUART0_Timer3(115200);
        READ_BANDGAP();
        printf ("\n Bandgap voltage = %e", Bandgap_Voltage);
        printf ("\n Bandgap SFR  = 0x%bx", BandgapHigh);
        printf ("\n Bandgap SFR  = 0x%bx", BandgapLow);
        while(1);
}

使用特权

评论回复
板凳
捉虫天师| | 2017-11-14 19:06 | 只看该作者
N76E003内嵌12位逐次逼近寄存器型(SAR)的模拟数字转换器(ADC)。模数转换模块负责将管脚上的模
拟信号转换为12位二进制数据。N76E003支持8信道单端输入模式。内部带隙电压(band-gap voltage)为
1.22V,同时也可用作内部ADC输入端。所有模拟电路复用同一组采样电路和同一组采样保持电容。该
组采样保持电容为转换电路的输入端。然后转换器通过逐次逼近的方式得到有效结果并存放在ADC结果
寄存器中。

使用特权

评论回复
地板
捉虫天师| | 2017-11-14 19:07 | 只看该作者
对于N76E003,为了得到更准确的内部带隙电压(band-gap)输入ADC转换值,建议在读取时,放弃模块使
能后的头三笔资料。而后,只要不关闭ADC模块,ADC转换结果都是如规格所列。提醒:程序中如果关
闭了ADC模块,请记得下次打开时,需要再次丢弃3笔。

使用特权

评论回复
5
捉虫天师| | 2017-11-14 19:07 | 只看该作者
明白了吧,手册上有的。

使用特权

评论回复
6
捉虫天师| | 2017-11-14 20:43 | 只看该作者
一个参考电压的值。

使用特权

评论回复
7
21mengnan| | 2017-11-14 21:03 | 只看该作者
在中文手册里面有这个内容,是在ADC那个地方,应该是一路输入,好比是个参考,1.22V吧。好像是这个。

使用特权

评论回复
8
稳稳の幸福| | 2017-11-15 16:58 | 只看该作者
ADC的一个参考输入

使用特权

评论回复
9
稳稳の幸福| | 2017-11-15 16:58 | 只看该作者
看手册,一个单独的通道。

使用特权

评论回复
10
dongnanxibei| | 2017-11-15 20:35 | 只看该作者
认真看手册啊,不要单纯的看例子,配合看

使用特权

评论回复
11
zhuotuzi| | 2017-11-16 15:54 | 只看该作者
相信楼主已经弄明白了,已经会用这个通道了。

使用特权

评论回复
12
huahuagg|  楼主 | 2017-11-21 20:53 | 只看该作者
最近研读了手册,发现,还是要基础打牢啊,要不然好多都无法理解。

使用特权

评论回复
13
whtwhtw| | 2019-4-16 17:16 | 只看该作者
带隙其实是为系统提供一个电压参考,类似于高精度Vref。读取UID中的带隙电压矫正值,然后ADC读取带隙电压,利用这2个数可以算出电源精确电压和其它ADC通道的精确电压

使用特权

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

本版积分规则

142

主题

1305

帖子

2

粉丝