资讯详情

EFM32JG系列MCU内部温度传感器使用方法

在许多电子应用中,我们经常需要收集产品工作的周围环境温度,通常有两种方法:

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平台开发工具

标签: 730系列温度传感器ts4温度传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台