新唐单片机ADC内部5v基准电压芯片有人用过吗

21ic官方微信-->
请完成以下验证码
新唐单片机ADC内部基准电压有人用过吗
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
vref接了3.3v,但现在想用2.5v的基准电压,因为硬件不好修改,那么内部基准电压有人用过吗,可以指点一下不?
等<span id="liker_count_人点赞
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
实习生, 积分 15, 距离下一级还需 35 积分
有大神在吗
等<span id="liker_count_人点赞
中级工程师, 积分 4620, 距离下一级还需 380 积分
中级工程师, 积分 4620, 距离下一级还需 380 积分
中级工程师, 积分 4620, 距离下一级还需 380 积分
中级工程师, 积分 4620, 距离下一级还需 380 积分
内部基准很可靠的。不信试试。
等<span id="liker_count_人点赞
扫描二维码,手机查看本帖
您需要登录后才可以回帖查看: 1236|回复: 0
利用ST MCU内部的基准参考电压监测电源电压及其它
整理:Miler&Shao 在使用ST&MCU开发过程中,有人问如果电源电压是变动的,询问有无办法用比较简洁的办法对电源电压进行监测,或者说电源电压波动情况下能否检测出其它待测的AD输入电压。&&这里跟大家分享交流一个方法。就是在没有其它外来参考电压,用芯片电源电压VDD作为ADC的参考电压,同时该电源电压又在一定范围内变动的情况下【这个范围就是在保证芯片正常工作的范围】,利用MCU芯片内部自带基准电压对电源电压进行监测。&&&&&在我印象中【ST&MCU系列和型号太多了,记不住】,几乎每颗ST&MCU芯片内部都有个相对稳定且不受电源电压一定范围内波动影响的基准电压。这里以STM8L15x&芯片为例来介绍。&STM8L151系列芯片内部有个参考输出电压,ST的技术手册里命名为VREFINT。&该内部参考电压的值即使芯片电源电压在工作范围内波动时,它基本维持不变即1.224V,而且该电压信号可以通过指令控制直接连接到ADC的某个AD通道而求得该电压对应的AD值。&&这里提前厘清下:该内部参考电压VREFINT并非ADC的参考电压,ADC的参考电压依然是VDD。即使VDD有所波动,这个VREFINT电压恒定不变,对于ADC电路而言,它只是个测试点。这里经常有人犯迷糊,把VREFINT内部基准参考电压跟ADC模块的参考电压混为一谈。&在某一固定的ADC参考电压情况下,所有被测电压点的AD转换值与该点电压值保持同一比例关系,换句话说,对于ADC参考电压固定情况下,各点的电压与ADC值与成线性关系。&下面图形是8L15X芯片分别在3个不同参考电压下的AD转换曲线示意图,这里参考电压接不同的VDD。下面三根斜线分别是VDD为2.8V、3.2V、3.6V时的AD转换曲线示意图。那根黄色垂直虚线是表示内部VREFINT电压(1.22V)所在的位置。&不难理解,对于不同的参考电压,同一待测电压【VREFINT】1.22V所测得的AD转换值是不一样的,从上面图也可以直观的看出。这里AD的参考电压就是VDD,显然VDD越大,1.22V&&VREFINT电压对应的AD转换值越小。&对于某一个参考电压来说,如果能测得1.22V所对应的AD转换值,假设记为Val_AD1.2&那参考电压VDD对应的AD转换值自然是此时该AD的满量程值,记为&Val_Full,【如果精度是10位,就是1024,如果是12位,那就是4096】。不管VDD怎么变动,某时刻的VDD对应的满量程值Val_Full跟内部基准电压【VREFINT】1.22V的AD转换值Val_AD1.2&的线性比例关系总是存在的。即有:&&&&&VDD:Val_Full&=&1.22&:&Val_AD1.2&&&&&&【Val_AD1.2&为实时测得值】&&&&&&&&&&那么VDD&=&(1.22&/&Val_AD1.2)&*&Val_Full&&这样你就可以达到监测芯片供电VDD的电压之目的了。当然你也可以利用上述原理和类似条件做别的应用,比如说电源电压一定范围内波动情况下还是可以检测出其它待测点的电压。&【以上所述是个思路或方法,供参考借鉴。】&相关链接:STM32F1系列产品的器件类型界定及相关话题STM8S10x系列&与&STM8S00x系列MCU之比较
Powered by新唐M051 ADC模数转换程序 - 其他技术 - 电子工程世界网
新唐M051 ADC模数转换程序
14:56:30来源: 51hei
以下程序是基于新唐M0运行:
/****************************************************************** &*注&& 意:硬件上的AVDD一定要接上基准电压******************************************************************/#include "SmartM_M0.h"
#define DEBUGMSG&&&&&&&&&&&&& printf#define _CLOCK_DIVIDER&&&& 0x#define ADC_CLK_Source&&&&&&& 0x
#define AREF_VOLTAGE&&&&&&&&& 4480&&&&& STATIC VOID AdcInit(VOID){&if(ADC_CLK_Source==0x)&&& {&&&&&&& PLLCON |= PLL_SEL;&&&&&&& PLL_Enable();
&&&&&&& /* 等待PLL稳定 */&&while((CLKSTATUS & PLL_STB) == 0);& &}
&&& /* 复位ADC */&&& &&& set_ADC_RST;&&& clr_ADC_RST;
&/* ADC时钟使能 */&&&&&& &&& set_ADEN_CLK;&&& if (ADC_CLK_Source==0x )&&& {&&&&&&& ADCClkSource_ex12MHZ;&&& }&&& else if(ADC_CLK_Source==0x )&&& {&&&&&&& ADCClkSource_PLL;&&& }&&& else if(ADC_CLK_Source==0x )&&& {&&&&&&& ADCClkSource_int22MHZ;&&& }
&&& /* 设置ADC */&&& CLKDIV=ADC_CLOCK_DIVIDER;& & &&& /* ADC使能 */&&& set_ADEN;&&& set_CALEN;&&&
&while(!(ADCALR&CALDONE));
&&& /* 单次转换模式 */ &&& setAD_SIG;&&&&&&&&&&&&& &&& clr_DIFFEN;
&/* 设置ADC通道 */&&& set_CHEN0;&&& /* 使能P1.0为模拟输入引脚 */&&& set_ADC0_&/* 禁止P1.0数字输入通道 */&P1_OFFD |= OFFD0;&&& /* 设置P1.0引脚为输入模式Configure P1.0 as input mode */&&& P10_InputO &&& /* 清除ADC中断标志位 */&&& set_ADF;& &&&& }
/*****************************************函数名称:main*输&&& 入:无*输&&& 出:无*功&&& 能:函数主体******************************************/INT32 main(VOID){&&&& UINT32 unVoltageV
&&&& &&&&&&&&&&&&&&&&&&&&&& & PROTECT_REG&&&&&&&&& //ISP下载时保护FLASH存储器& (&& PWRCON |= XTL12M_EN;&&&&&& //默认时钟源为外部晶振&& while((CLKSTATUS & XTL12M_STB) == 0); && //等待12MHz时钟稳定&&&&& CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M;//设置外部晶振为系统时钟& & )
& UartInit(0);&&&&&& //波特率设置为9600bps
& AdcInit();
& while(1)& {&&&& set_ADST;& &&&&&&&&& //启动ADC&&while(ADSR&ADF==0);&&&&&&& //等待ADC结束&&set_ADF;&&&&&&&&& //清空ADC结束标志位
&&unVoltageValue = AREF_VOLTAGE*(ADDR0&0xFFF)/4096;//将ADC值转换为电压值
&&DEBUGMSG("Voltage %d mv
",unVoltageValue);
&&Delayms(500);& }}
关键字:&&&&
编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
微信扫一扫加关注 论坛活动 E手掌握
微信扫一扫加关注
芯片资讯 锐利解读
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。stm32f030内部是否有adc基准电压_百度知道
stm32f030内部是否有adc基准电压
我有更好的答案
8和3.3三路供电。这与FPGA的设计不同.8V左右,但不需要自行引入STM32为了简化外围电路设计一般是不额外引入内核供电电源引脚,这样你只输入一路3.3V,FPGA则一般需要1.21。但是说内部具体有多少电压区域,这个数据手册应该会有说明.2-1,stm32这种低成本的控制器不会设计成这么繁琐,其他电压由内部线性稳压获得,ADC的参考电压供电内核电压一般1stm32的供电电压在外部看来一般就是外设的3.3V供电
采纳率:90%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机内部ADC准确度较低,怎么理解?_百度知道
单片机内部ADC准确度较低,怎么理解?
用MSP430这块单片机内部的12位ADC功能,但我要做的这个是一个工业上面的的项目,看到好多人说的单片机内部ADC准确度较低,这具体指的是什么,是误差太大吗?这个误差是不是要用软件程序修正
我有更好的答案
主要是设计准确度要求多高。2,12位ad只能说它的分辨率大小,准确度一般为采集信号而言,因素很多,如干扰了,一般10位ad就足够了,当然更高的ad也很好,但采集速度慢了,分辨率和采集速度成反比。3,软件可以对信号进行回归修正,如多点采集取平均值,还可以拟合最佳曲线等等。都可以消减误差4,做项目,一般12位不差了,我一般都用10位就可以了,采集速率了1,误差大不大和你设计项目有关,具体的还需要全面考虑,误差了,市面的传感器准确度都很低的
采纳率:45%
为您推荐:
其他类似问题
您可能关注的内容
单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 电压基准芯片 的文章

 

随机推荐