【技术】EFM8LB 8位单片机如何正确使用温度传感器


SILICON LABS公司推出的8位单片机EFM8LB1系列,拥有72MHz的高速主频,-40℃到 +105℃宽工作温度,丰富的外设资源,低廉的价格,在光模块市场得到广泛运用。
EFM8LB1系列单片机内部集成温度传感器,并且出厂时经过温度校准,可以方便的获得芯片准确的温度,实时监控芯片温度。
但是,在EFM8LB1的运用文档《EFM8LB1_reference_manual》中,只说明了内部温度传感器的使用,并没有详细说明温度传感器的校准值如何使用,导致在使用中出现所测温度偏差较大的情况。本文详细介绍下内部温度传感器的使用,并正确使用校准值。
EFM8LB1系列MCU的温度和电压成线性关系,如图1所示。温度可以通过公式TempC=(VTEMP-Offset)/Slope计算。通过查看EFM8LB1的datasheet可以获得Offset=749mV;Slope=2.835mV/℃。只需要通过ADC测量出对应的电压值VTEMP值就可以计算出测量的温度。这样算出来的值是未校准值,datasheet中有说明,Offset值有19mV的偏差值,导致计算出的温度和实际温度偏差较大,不适用于温度精度要求较高的场所。
图1:EFM8LB1温度和电压的线性关系
为了获得更准确的温度,MCU出厂时对温度传感器进行校准,被把校准后的Offset值存储在0xFFD4和0xFFD5两个寄存器中。0xFFD4存储低字节数据,0xFFD5存储高字节数据。校准值为14位ADC在温度为0℃时,使用16.5V为参考电压获得的ADC采样值。换算为电压值,在700mV到800mV之间的一个数值。将校准值替换datasheet上的Offset值,就可以计算出准确的芯片实际温度。
由于校准值采用16.5V作为参考电压,实际测量ADC时,往往会采用2.4V作为参考电压。所以,测量温度的ADC值时,最好将参考电压Vref设置为1.65V再进行测量。有利于温度的计算,也不会影响其他ADC采集。如果将校准值作为2.4V参考电压转换所得,将得到错误的温度。
计算举例:
1)存储在Flash中的校准值为:7408
2)ADC在1.65V时的温度测量值为:9245
3)温度每变化1℃电压变化2.83mV
4)14位ADC量程:16384
综上,根据公式可计算出芯片的实际温度为:
T=(9245-7408)/((2.83mV/1.65V)*16384)=65.6℃
相关技术文档:
Silicon Labs EFM8LB1 8位MCU数据手册 详情>>>
Silicon Labs AN929:使用EFM8 Laser Bee MCU系列进行精确的温度检测应用笔记 详情>>>
看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。
Silicon Labs Simplicity Studio平台开发工具
Silicon Labs 集成开发环境工具
Silicon Labs 配置向导2开发工具
Silicon Labs FLASH编程开发工具
Silicon Labs 8位MCU Keil PK51 开发工具
Silicon Labs ToolStick 开发工具
Silicon Labs μVision 调试驱动程序开发工具
Silicon Labs 生产编程器开发工具
Silicon Labs .HEX转化.SVF开发工具
Silicon Labs USB复位实用程序开发工具
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 9
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(9)
-
杜仲刚 Lv4. 资深工程师 2018-10-22学习了
-
用户46498170 Lv3. 高级工程师 2018-06-30学习
-
潘帕斯 Lv7. 资深专家 2018-06-26!
-
faw360 Lv6. 高级专家 2018-06-03!!
-
王硕琦 Lv3. 高级工程师 2018-01-24温度精度对我们产品还是很重要的
-
ggss Lv8. 研究员 2017-12-18感谢分享,资料不错
-
Tonyxing Lv8. 研究员 2017-12-15不错
-
嘿仔 Lv6. 高级专家 2017-10-28周末也可以看看
-
luose Lv8. 研究员 2017-10-27不错
相关推荐
安装simplicity studio软件,开发EFM8LB系列8位MCU的代码,请问,可以选用哪些调试器用于在线调试代码?
对于基于simplicity studio软件平台开发8位单片机EFM8LB系列MCU,可以选用的调试器如下: 1、世强的U-EC6; 2、silicon labs的U-EC3; 3、silicon labs的STK上集成的J-LINK。
【经验】8位MCU EFM8内部温度传感器为何要使用1.65V基准?
Silicon Labs EFM8系列8位MCU中带有ADC和Temperature sensor的单片机都有一个1.65V的基准电压,并且例程中对温度传感器的校准也都使用1.65V作为基准,这是为什么呢?
有没有剃须刀,牙刷这类应用的8位单片机型号?
中科芯和雅特力暂时还没有8位MCU,可以看看Silicon Labs的8位mcu,选型可以参考https://www.sekorm.com/doc/1072912.html
为什么在8位MCU C8051F392上运行正常的程序增加了一个全局变量后就无法执行到主程序中?
8位MCU C8051F392芯片内部集成有看门狗功能,这个功能默认是开启的,当全局变量过多时,在C语言的程序初始化没有结束时看门狗已经复位了,所以无法执行到主程序中,解决 办法是将STARTUP.A51添加到项目中,并在STARTUP.A51文件中将看门狗关闭。
【应用】Silicon Labs低功耗8位MCU C8051F340为针式微型打印机微处理器提供解决方案
针式微型打印机因耗材低廉、单据保存时间长等特点,在一些专业领域拥有无可替代的优势。同时,针式微打印机一般打印速度比较慢,可达每秒3~5行,这取决于打印头的工作频率、控制器的处理速度和方法等因素。据此,为了提高针式打印机的打印速度,本文推荐Silicon Labs的单片机C8051F340,采用28引脚QFN、32引脚LQFP或48引脚TQFP封装,为针式微型打印机打印头微处理器提供解决方案。
Silicon Labs公司的8位MCU芯片EFM8LB,1个精度为±3℃温度传感器(出厂已校准),这个是测mcu自己的温度还是外接传感器测板子温度。
EFM8LB芯片内部集成有温度传感器,测量的是芯片自身的温度,这个出厂时会做校准,在3度左右。这个指标不是指的外部的温度传感器。
光模块上使用8位MCU EFM8BB21F16G,使用内部49MHz的RC振荡器作为主时钟,在工作状态温度上升到85度运行正常,但若此时断电后再上电,MCU无法工作,是什么原因?
切换至49MHz内部RC振荡器的程序未按照要求进行配置,正确的配置方法是:先使能PFEN并配置FLRT为SYSCLK<50MHz,待内部24.5MHz的内部RC振荡器工作稳定后再切换至49MHz内部RC振荡器。
Silicon Labs 8位MCU EFM8LB12F32ES0内部温度传感器如何采集0度以下的温度值
Silicon Labs 8位MCU EFM8LB12F32内部温度传感器的工作范围是-40以上,在计算时使用参考手册上的公式就可以,具体的使用方法可以参考应用笔记AN929。
8位MCU EFM8内部温度传感器为何要使用1.65V基准,如果我又要测试VDD(3.3V),而这样VDD测试使用基准源(2.4V) ,这样代码不断切换ADC基准源对ADC测试有什么影响没有?
世强代理的 Silicon Labs的8位MCU EFM8 最多有4种参考电压, 一种是您说的内部高速1.65V,一种VREF管脚外接的参考电压,一种内部1.8VLDO,一种VDD作为参考电压。这四种都可以用,如果你采集多路可以选用一种参考电压,不用来回切换。MCU内部的温度传感器的精度不高,是正负3度的误差,选用内部高速参考电压转换的速度快。
计划选用Silicon Labs8位单片机EFM8LB1做光模块,请问,它自带的温度传感器的精度是多少?该精度是否还可以再提高?
Silicon Labs8位单片机EFM8LB1内部校准温度传感器精度为±3°C;
8位MCU C8051F975如何判断触摸按键?
1开通电容检测通道CS对应到需要检测的IO上,2读取基准值电容值,然后设置电容检测上下阀值,3如果电容值在阀值内则认为是有触摸按键。
【经验】8位单片机EFM8LB的内部温度传感器ADC采集操作
Silicon Labs的8位单片机具有高性能,小封装,低成本的优势在各行业得到广泛应用。EFM8LB系列内置最大偏差只有3℃的温度传感器,可以直接用于高要求环境。温度传感器需要通过ADC读出数据,ADC设计不当,会影响温度传感器精度。为了获得更精确的温度值,可以参考文档中设计代码设计。
8位MCU EFM8LB12F32E用内部温度传感器的精度是多少?
EFM8LB12F32E内部集成的温度传感器在工作温度范围-40~+105度内可以满足±3℃的精度。
8位MCU C8051F975的CSLIB如何设置上下限的阀值?
在cslib_config.h文件里面修改#define DEF_ACTIVE_SENSOR_DELTA的数值是上限的阀值。而#define DEF_INACTIVE_SENSOR_DELTA 的数值是下限的阀值。
Silicon Labs的8位单片机EFM8LB11F16,内部温度传感器校准值如何获取?
EFM8LB11F16单片机在出厂时,温度传感器已经过校准,并把校准值存储在0xFFD4和0xFFD5两个只读地址空间。 可以通过下述代码读取校准值: #define TEMP_CAL_ADDRESS_LOW 0xFFD4 #define TEMP_CAL_ADDRESS_HIGH 0xFFD5 SI_LOCATED_VARIABLE_NO_INIT(TEMPSENSOR_0C_LOW, uint8_t const, SI_SEG_CODE, TEMP_CAL_ADDRESS_LOW); SI_LOCATED_VARIABLE_NO_INIT(TEMPSENSOR_0C_HIGH, uint8_t const, SI_SEG_CODE, TEMP_CAL_ADDRESS_HIGH); tempsensor_0c = (TEMPSENSOR_0C_HIGH << 8) | TEMPSENSOR_0C_LOW; tempsensor_0c为校准值。
电子商城
现货市场
服务

可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>

可来图定制均温板VC尺寸50*50mm~600*600 mm,厚度1mm~10mm,最薄0.3mm。当量导热系数可达10000W/M·K,散热量可达10KW, 功率密度可达50W/cm²。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论