芯片型号:stm32l051c8(其它型号请参考datasheet,仅供参考)
使用ADC采集电压时若使用外部参考电压,如果外部电压变化,且低于正常LDO工作电压时,输出的电压将发生改变,导致基准电压改变而导致ADC电压出现偏差,因此在该芯片上查看datasheet后得知,厂家已经为我们考虑到这种情况,并在出厂时将类似于基准电压的值写在flash中。该值的环境:25°C, VDD = 3V时的情况,可以直接地址访问读取,我读取了两个芯片的值,大概在1670值左右。通过该值我们就有一个标准。
接下来看参考手册中对该款芯片的介绍,
我们可以看到,通过读取ADC IN17可以获得内部参考电压值,假设我们现在要读取电池电量,需要读取两个通道的值:
1、ADC IN17内部参考电压原始数据,也就是下图公式中的 VREFINT_DATA
2、读取电池电量连接通道原始数据,也就是下图公式中的ADC_DATAX值,我在板子上接的是ADC IN4
下图的计算公式就是利用内部参考的校准电压值和实际读取的内部参考电压值作一个线性关系,将这个斜率对应到我们需要测量的通道值。
说明:VREFINT_CAL:内部参考电压校准值,直接地址读取。比如该款芯片地址:0X1FF80078,那么我们可以这么做:
VREFINT_CAL = *(__IO uint16_t *)(0X1FF80078);
FULL_SCALE:根据我们设置的ADC分辨率而定,12位ADC分辨率值:2^12 - 1 = 4096 - 1.
实测数据:
VREFINT_CAL:1669 VREFINT_DATA: 1716
ADC_DATAX: 2046 FULL_SCALE: 4095
根据公式计算到电压值: VOL = 3 * 1669 * 2046 / (1716 * 4095) = 1.4578
电池电量: 1.4578 * 2 = 2.915 V
用万用表测量的电压值:1.44~ 1.45V波动, 校验成功。
*******************************************************************************
2019-08-10补充
最近在项目中使用到ADC电压采集,由于使用的模拟量输出,所以对精度要求较高,使用上文的方式精度还不错,不过怎么调节都会与实际测量电压有偏差,为了降低这个误差,在软件上做处理。由于工程使用的是CubeMx生成的代码,经过调试,在采集电压前进行ADC校准会得到更好的精度。所以在采集前可加入这么一句代码:
HAL_ADCEx_Calibration_Start(&hadc); //校准ADC
上一篇:记一次在STM32开发踩过得坑(ADC采集、电流大小的影响)
下一篇:stm32f103zet6芯片及其单片机(硬件)的总结
推荐阅读
史海拾趣
Fujitsu America作为Fujitsu Limited在北美地区的子公司,其发展历程与Fujitsu全球公司紧密相连。Fujitsu最初成立于1935年,最初是一家电信设备制造商,以生产电话交换机起家。随着技术的不断进步,Fujitsu逐渐扩展到信息与通信技术(ICT)领域,成为全球领先的ICT企业。Fujitsu America在这一过程中发挥了重要作用,不仅继承了Fujitsu在技术创新上的优良传统,还根据北美市场的需求特点,提供了定制化的ICT解决方案和服务,推动了公司在北美市场的快速发展。
常州星海电子有限公司,自1990年成立以来,便以生产中英合资的各类二极管为起点,逐渐在电子行业中崭露头角。随着公司业务的不断发展和市场需求的增长,2016年,公司正式更名为常州星海电子股份有限公司,完成了从合资到股份制的转变。这一转变不仅标志着公司管理结构的升级,也预示着公司在未来市场中的更大发展。
随着市场需求的不断变化和消费者需求的多样化,常州星海电子不断调整和优化产品结构。公司现已形成了包括普通整流、开关、快速恢复、高效率、超快速、肖特基、双向触发管、整流桥、高反压以及瞬间突波电压吸收、稳压等多种系列、多种封装形式的二极管产品。这些产品广泛应用于电脑、家电、邮电通讯等行业,为公司赢得了广阔的市场空间。
随着全球环保意识的不断提高,博林公司积极响应号召,将绿色环保理念融入到产品设计和生产过程中。公司采用环保材料和节能技术,努力降低产品的能耗和排放。同时,博林公司还加强了对废弃电子产品的回收和处理工作,实现了资源的循环利用。这些举措不仅提升了博林公司的品牌形象,也为其在可持续发展的道路上奠定了坚实基础。
需要强调的是,以上故事是基于一般性的行业知识和假设构建的,并不直接代表博林公司的实际发展经历。博林公司的具体发展历程和故事可能涉及更多的细节和复杂性,需要进一步的了解和研究。
面对日益激烈的国际竞争,Eastron Corp决定走全球化发展的道路。公司先后在亚洲、欧洲和北美等地设立了研发中心和生产基地,通过本地化生产和研发,快速响应市场需求。同时,Eastron还积极寻求与国际知名企业的合作,共同开发新技术和产品,提升了公司的国际竞争力。
随着电子行业的不断发展,客户对电子元器件的需求也在不断变化。Elprotronic Inc.紧跟市场趋势,不断推出具有创新性的产品和技术。其中,一项名为“高速数据传输技术”的创新成果引起了业界的广泛关注。这项技术可以大幅提高数据传输速度,同时保证数据的稳定性和安全性。这一突破性的技术创新为Elprotronic Inc.赢得了更多客户的信赖和支持,也进一步巩固了公司在行业中的地位。
设计loop filter需要知道VCXO的input capacitance,但是手册上只有一个output load=30pF。还请知道的兄弟说说output load是什么意思。… 查看全部问答∨ |
|
在build plateform后为什么没有NB.bin文件 在PUBLIC下的相应的工程文件里为什么没有NB.BIN文件啊.. 但上面没有显示编译有问题啊 而且后来我在上面做了些修改,比如旋转什么的后 再make image后,也没有出现问题 但就是见不到NK.BIN文件啊… 查看全部问答∨ |
|
看完卲贝贝的经典ucos教程后 按照教程那张碟的例子 用bc45编译例一 虽然能编过去 但是就是有很多警告 多达48个 warring ucos/core.c: constant is long in function OS_InitTaskIdle ..... warring test.c: mixing p ...… 查看全部问答∨ |
【传感器资料】给大家分享个温湿度传感器SHT21中文资料及代码:https://bbs.eeworld.com.cn/thread-107984-1-3.html【资料集】C8051F320开发评估板资料:https://bbs.eeworld.com.cn/thread-110748-1-4.html【原理图及器件清单】C8051版原理图及PCB: ...… 查看全部问答∨ |
PC机中的bootloader是用于引导加载程序内核用的、而嵌入式中的bootloader是用于和PC机中的BIOS使用类似的功能的同时也包括了PC机中的bootloader的功能。。我这样理解对么?… 查看全部问答∨ |
问个debussy的nWave看波形的问题。我加信号后都没有层次结构的名称啦。都是:signal_name1, signal_name2, signal_name3 等等,能不能把它配置到 hie_0/signal_name1, hie_0/signal_name2, 或是 hie_top/.../hie_0/signal_name1 等等啊… 查看全部问答∨ |
本帖最后由 ddllxxrr 于 2016-1-7 17:09 编辑 替同学问问坛子里有没有人出C8051开发板的 有的给我发短消息就行 推荐也可以啊~ 本站强荐:185娱乐]城.足球]真_人.彩票齐全]手机可投]注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc … 查看全部问答∨ |
问题如下: 有一外部中断源,接入INT0非端,当其中有中断请求时,要求CPU把一个从内部RAM30H单元开始的50个字节的数据块传送到外部RAM从1000H开始的连续存储区。请编写对应的程序。 另注:题目没有给出相应的电路图,也没有给出外部存储 ...… 查看全部问答∨ |