【技术】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不错
相关推荐
【技术】预安装BOOT的新一代的8位MCU
Silicon labs的EFM8系列MCU是C8051F的升级换代产品。较C8051F不同的是,其在出厂时已经固化好BOOT程序。
技术探讨 发布时间 : 2019-07-11
光模块MCU利器:出厂预置带I2C下载的Bootloader
在EFM8全系列8位MCU出厂时预置带I2C、UART或USB等多种方式下载功能的Bootloader进行程序更新,并提供源代码方便用户进行定制Bootloader。
技术探讨 发布时间 : 2016-03-11
【经验】如何正确使用8位MCU的PortMatch功能
Silicon Labs的8位MCU(C8051和EFM8)都具有PortMatch功能,此功能允许一个或多个端口IO引脚上的逻辑电平变化触发系统事件。
设计经验 发布时间 : 2018-02-08
8位单片机EFM8的烧录器有哪些?
8位单片机EFM8系列采用C2调试接口,常见的烧录器有:1,官方的EFM8 STK、USB Debug Adapter、ToolStick。2,第三方的U-EC2/6、WizPro200EFM(支持EFM8和EFM32)等。
技术问答 发布时间 : 2016-10-25
【应用】这款8位MCU“一手包办”空气净化器的容性触摸按键
芯科推出的一款MCU产品EFM8SB10F8,以其特有的功能、性能及价格的优势,在空气净化器产品中,有着非常独到的应用。
新应用 发布时间 : 2019-09-05
【经验】PCB布线技巧:8位单片机端口Crossbar功能的使用及配置
如果单片机自带Crossbar功能,只要软件配置调整一下各端口功能,PCB布线就会畅通。
设计经验 发布时间 : 2017-08-09
8位单片机EFM8系列中芯片上的UID是什么?
UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID。有两类获取UID的方式,一种通过读取RAM的特定地址获得,一种通过读取Flash的特定地址获得。在早期引入此ID的MCU上(比如EFM8BB1/SB1/SB2)这个ID为32位,在芯片复位时(PC指针被复位至0之前)被复制至RAM中特定位置,用户程序可以读取其值。此位置的RAM仍然可以由用户使用。需要注意的是如果此位置被编译器分配了变量,那么当函数执行至main()时此位置的内容会被初始化代码覆盖。EFM8UB2的UID也是此类,但其位数为128位。在新的EFM8系列MCU上(比如EFM8BB3/LB1/UB1),UID位数为128位,存储在Flash上。
技术问答 发布时间 : 2017-05-05
【应用】超低功耗8位MCU在远程无线联网报警系统中的应用
节点设备对于MCU的性能要求不是太高,8位MCU就能满足需求,一般更看重MCU的小体积和低功耗。
新应用 发布时间 : 2019-07-16
EFM8LB低功耗8位MCU在使用BOOTLOADER时,如何让程序进入BOOTLOADER?
EFM8LB的芯片进入BOOTLOADER有三种方法。第一种:上电后如果0X0000地址的数据为0XFF,程序会直接进入BOOTLOADER. 第二种:在上电复 位时,如果C2D引脚保持低电平超过50uS,程序会进入BOOTLOADER.第三种: 应用程序将R0赋值为0XA5,然后执行软启动,启动后程序会自动进入 BOOTLOADER。
技术问答 发布时间 : 2017-10-10
8位单片机EFM8在线烧录时,使用烧录软件Flash Programming Utility每次更换芯片都需要重新连接,请问是否有不需要重新连接的在线烧录软件?
除了Flash Programming Utility烧录软件,Silicon Labs还提供MCUProductionProgrammer烧录软件,后者更换芯片时无需再重新连接。
技术问答 发布时间 : 2016-10-25
8位单片机EFM8LB11,既有I2C,也有SMBus,那么,I2C与SMBus的主要差别是什么?
SMBus和I2C的主要差别是与各种时序要求相关。下面列举最重要的方面:SMBus定义一个最小总线时钟频率FSMB,10KHz。I2C没有明确任何最小总线时钟频率。除了维持有效的总线吞吐量,该SMBus协议参数还可作为一个简单的检测总线空闲条件(除了或代替检测每个STOP条件)和实现比特位超时的方法。SMBus定义一个数据保持时间,即从SMBCLK下降沿之后,SMBDAT仍然必须维持至少300ns有效。这在I2C协议中定义的保持时间为0。SMBus时钟最大频率定义为100KHz。I2C提供多种不同速率模式操作,Standard模式最高频率达到100KHz,Fast模式为400KHz,Fast Plus为1MHz,而High-speed高达到3.4MHz。SMBus定义一个时钟低电平超时 TTIMEOUT,最大为35ms。I2C并没有明确指定任何超时限制。SMBus明确TLOW:SEXT,即SMBus从设备的累积时钟低扩展时间。I2C没有类似的规定。SMBus明确 TLOW:MEXT,即SMBus主设备的累积时钟低扩展时间。I2C没有类似的规定。
技术问答 发布时间 : 2017-05-05
在无人机项目上的固定翼上需要一颗MCU进行电调,要求Flash大于16KB,至少具有一路输入捕获和一路PWM输出,最好有温度传感器,是否有合适的型号推荐?
推荐使用8位高性价比MCU EFM8BB2,具有16KB Flash,内置温度传感器和电压调整器,支持宽范围电压供电,3个可编程阵列支持辅入捕获和PWM输出,低功耗小封装,非常适合无人机电调部分使用。
技术问答 发布时间 : 2017-05-05
【应用】Silicon Labs低功耗8位MCU C8051F340为针式微型打印机微处理器提供解决方案
针式微型打印机因耗材低廉、单据保存时间长等特点,在一些专业领域拥有无可替代的优势。同时,针式微打印机一般打印速度比较慢,可达每秒3~5行,这取决于打印头的工作频率、控制器的处理速度和方法等因素。据此,为了提高针式打印机的打印速度,本文推荐Silicon Labs的单片机C8051F340,采用28引脚QFN、32引脚LQFP或48引脚TQFP封装,为针式微型打印机打印头微处理器提供解决方案。
应用方案 发布时间 : 2018-11-29
推荐一款带ADC的小封装8位MCU,适用于对模拟性能、MCU性能以及电路板尺寸有比较高要求的场合。
推荐EFM8LB11系列8位MCU,该系列MCU内部集成了高精度ADC(14位)、4个12位DAC、内置温度传感器、模拟比较器以及丰富的数字外设和通信接口,FLASH大小为16/32KB,RAM为1.25/2.25KB,封装包括QFN24、QFN32、QFP32以及QSOP24,最小封装3x3mm,具有高性能、低功耗、小封装等特性,非常适用于高性能、低功耗、小封装,对模拟外设有更高要求的应用设计。
技术问答 发布时间 : 2017-05-05
对于8位单片机EFM8LB10,在使用ADC功能时,如何计算ADC详细的转换时间以及速率?
根据EFM8LB1 Datasheet,ADC转换总所需时间为:Total ConverSion Time=RPT×(ADTK+NUMBITS+1)×T(SARCLK)+(T(ADCCLK)×4);where RPT is the number of converSions represented by the ADRPT field and ADCCLK is the clock selected for the ADC;在高速模式下,以最快的SARCLK为18MHz 计算,跟踪时间至少需230ns( =T(SARCLK)x4),若RPT为累计一个样本,ADCCLK为系统时钟72MHz,那么ADC的转换速率约为:14 Bit Mode:1/[230ns+(14+1)/18MHz+4/72MHz]=0.9Mbps;12 Bit Mode:1/[230ns+(12+1)/18MHz+4/72MHz]=1Mbps;10 Bit Mode:1/[230ns+(10+1)/18MHz+4/72MHz]=1.1Mbps。
技术问答 发布时间 : 2017-05-05
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
定制水冷板尺寸30*30mm~1000*1000 mm,厚度1mm~50mm,散热能力最高50KW,承压可达3MPA;液冷机箱散热能力达500W~100KW。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论