在很多电子类应用场合中,我们经常需要采集产品工作的周围环境温度,一般采取的方式有两种:

1)外加温度传感器

2)采用MCU内部温度传感器

外加温度传感器会增加产品的成本以及布板空间,所以在很多场合,我们只要使用内部温度传感器就可以了,今天给大家介分享一下自带内部温度传感器EFM32JG系列MCU的使用方法和步骤。

基本原理:

EFM32JG的内部ADC集成在模拟模块部分,内部温度传感器上面的电压随着温度变化,需要通过12bit ADC采集温度传感器的ADC值,把ADC值换算成为温度值。

第一步:ADC采集

设置需要采集内部温度传感器的ADC通道,这里需要注意,ADC采用精度需要设置为12bit,参考源选择内部Vref 1.25V,采集信号源选择内部温度传感器。

第二步:读取内部出厂校准值

需要读取两个值:

1)校准的温度值

calTemp0 = ((DEVINFO->CAL & _DEVINFO_CAL_TEMP_MASK)

/  >> _DEVINFO_CAL_TEMP_SHIFT);

2)校准温度在46度下的ADC值

calValue0 = ((DEVINFO->ADC0CAL3

/* _DEVINFO_ADC0CAL3_TEMPREAD1V25_MASK is not correct in

current CMSIS. This is a 12-bit value, not 16-bit. */

& 0xFFF0)

>> _DEVINFO_ADC0CAL3_TEMPREAD1V25_SHIFT);

第三步:根据实际环境ADC采用的值,与校准值之间进行运算补偿,得出环境温度值

计算公式为:

TCELSIUS = CAL_TEMP-(ADC0CAL3_TEMPREAD1V25 - ADC_result)×VFS /(4096× V_TS_SLOPE)

具体代码实现:

readDiff =calValue0/2 - adcSample;

temp=((float)readDiff * 1250);

temp/=(4096 * -1.835);

/* Calculate offset from calibration temperature */

temp =(float)calTemp0-temp;

相关技术文档:

Silicon Labs EFM32JG12 Jade Gecko 32位MCU数据手册 详情>>>

Silicon Labs EFM32JG1 32 bit MCU 详细数据手册(英文) 详情>>>

看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。

Silicon Labs Simplicity Studio平台开发工具

最新文章

  1. 25个 Git 进阶技巧
  2. JS:事件对象1
  3. [置顶] Android 2016新技术
  4. 【9-7】XML学习笔记01
  5. java利用zxing编码解码一维码与二维码
  6. CodeForces 496B Secret Combination
  7. Google Code Pretiffy 代码 着色 高亮 开源 javascript(JS)库
  8. C语言中时间调用处理的相关函数介绍
  9. HDU4865 Prince and Princess 强连通分量+二分图判定
  10. 一些web编程能用到的小知识
  11. mui.pushToRefresh组件下拉回调函数中this指向问题
  12. 查看linux/AIX系统内存及CPU占用百分比
  13. robotframework环境搭建问题
  14. python基础5--输入输出、错误与异常
  15. flask基础一
  16. JavaScript中该如何[更好的]做动效
  17. Cobalt Strike 学习
  18. linux系统时间不同步解决办法(同步本地时间)
  19. PHP流程控制 - if 语句
  20. select 语句的执行顺序

热门文章

  1. ChemDraw绘制DNA结构的技巧
  2. node中的require和exports
  3. Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"问题
  4. pc端和移动端的区别
  5. HTML、DOM和JS的了解
  6. 超哥带你学网络编程部分blog
  7. Taylor series
  8. 聊聊 Java 中日期的几种常见操作 —— 取值、转换、加减、比较
  9. Shell正则表达式和文本处理工具
  10. 初识python (一)