本文介绍了MAX31856这款热电偶采集芯片的驱动程序设计
1、MAX31856热电偶采集芯片介绍
MAX31856 是 原美信(Maxim Integrated,现被 ADI 收购),生产的一种冷端补偿数字温度传感器,主要用于与热电偶一起使用来测量温度。它支持多种类型的热电偶,并且能够提供高精度的温度测量。MAX31856 集成了冷结补偿、故障检测和一个可配置的看门狗定时器等功能。
这种器件通常用于需要精确温度测量的应用中。它通过 SPI 接口与微控制器或其他主机系统通信,并且可以处理 K、J、N、T、E、R、S、B 和 C 类型的热电偶。
2、不同类型的热电偶简介
热电偶是温度测量中常用的传感器,它基于塞贝克效应(Seebeck effect),即两种不同金属接触时,在温度差异下会产生电压差。根据所使用的材料不同,热电偶可以分为多种类型,每种类型的热电偶都有其特定的温度范围、精度和应用场合。以下是几种常见类型的热电偶介绍:
J型(铁-铜镍)
特点:价格低廉,适合在氧化性或惰性环境中使用,但在还原气氛中不稳定。
K型(镍铬-镍铝)
特点:最常用的一种热电偶,具有较宽的工作温度范围,适用于大多数工业应用。
E型(镍铬-铜镍)
特点:在低温区有较高的灵敏度,适合精确测量。
T型(铜-铜镍)
特点:常用于低温测量,如冷冻设备或超导实验。
R型(铂铑13%-铂)
特点:高温性能良好,适合高精度要求的测量。
S型(铂铑10%-铂)
特点:与R型类似,但对温度变化更敏感,通常用于实验室环境下的精密测量。
B型(铂铑30%-铂铑6%)
特点:适用于极高温度测量,不推荐用于低温,因为其输出信号在低温区域非常低。
N型(镍铬硅-镍硅)
特点:改进了K型在某些温度下的稳定性问题,减少了磁干扰的影响。
选择热电偶类型时,需要考虑测量温度范围、精度需求、环境条件(如是否存在腐蚀性气体)、成本以及安装便利性等因素。此外,不同的热电偶可能需要配对相应的补偿导线以确保准确的温度读数。
类型 | 负极材料 | 正极材料 | 温度范围 |
---|---|---|---|
B | 铂/铑 | 铂/铑 | 250°C 到 1820°C |
E | 铜镍 | 镍铬 | -200°C 到 +1000°C |
J | 铜镍 | 铁 | -210°C 到 +1200°C |
K | 铝镍 | 镍铬 | -200°C 到 +1372°C |
N | 镍硅 | 镍铬硅 | -200°C 到 +1300°C |
R | 铂 | 铂/铑 | -50°C 到 +1768°C |
S | 铂 | 铂/铑 | -50°C 到 +1768°C |
T | 铜镍 | 铜 | -200°C 到 +400°C |
类型 | 灵敏度 | 冷端温度范围 |
---|---|---|
B | 10.086 (+500°C 到 +1500°C) | 0°C 到 125°C |
E | 76.373 (0°C 到 +1000°C) | -55°C 到 +125°C |
J | 57.953 (0°C 到 +750°C) | -55°C 到 +125°C |
K | 41.276 (0°C 到 +1000°C) | -55°C 到 +125°C |
N | 36.256 (0°C 到 +1000°C) | -55°C 到 +125°C |
R | 10.506 (0°C 到 +1000°C) | -50°C 到 +125°C |
S | 9.587 (0°C 到 +1000°C) | -50°C 到 +125°C |
T | 52.18 (0°C 到 +400°C) | -55°C 到 +125°C |
3、驱动程序实现
在数据手册的表6中列出了该芯片的所有寄存器:
常规应用使用最多的几个寄存器如下:
- 0x00/0x80 CR0 配置0
- 0x01/0x80 CR1 配置1
- 0x02/0x82 FMASK 错误输出配置
- 0x0C-0x0E 温度值寄存器
- 0x0F FS 错误状态寄存器
3.1、主要配置功能:
采集模式相关配置:
MAX31856可以使用单次采样模式,收到指令后采样;也可以设置成连续采样模式,芯片自动每隔一段时间采集一次温度数据并更新到温度寄存器。
- 连续采集模式,需要将CR0寄存器的bit7置1,使能自动模式
- 单次采集,每次向CR0寄存器bit6置1,触发芯片进行一次采集,采集完成后bit6自动清零。(如果使能了自动模式,该功能无效)
多次采集均值,CR1寄存器的bit6-bit4可以配置至多16次采样求平均值;此外,CR1寄存器的bit3-bit0可以配置外接热电偶的类型(K、J…)
开路错误识别的类型:
MAX31856可以自动识别热电偶开路故障,需要配置CR0寄存器的bit5-bi4,配置表如下:
如图,可以关闭开路检测功能,也可以使能,开启的情况有三种,可以根据实际应用选择,通产来讲需要测量一下使用的热电偶的电阻,然后选择配置01和配置10或者11,而配置10和配置11的区别在于对识别准确度的要求,检测时间越长,准确度越高。
冷端补偿相关配置:
MAX31856支持冷端补偿,当然也可以手动关闭,CR0寄存器的bit3可以使能冷端补偿(0:Enable)默认是开启的;冷端补偿的开启会增加每次温度采样转换的时间。
错误输出配置:
FMASK寄存器可以选择哪些错误触发FAULT引脚的输出,默认是全部关闭的;FS状态寄存器指示错误情况;一般只需关注FS寄存器的bit1和bit0,电压错误和开路错误。
实际上在有外部控制器的情况下,MAX芯片自带的一些温度上下限报警,冷端温度上下限报警等功能是使用不到的。我们基于K型热电偶,实现MAX31856的驱动程序设计。
代码初始化:
1 | /** |
3.2、读取温度数据:
温度数据的格式如下:
如果以32位数据读取后,需要按位右移5位,确保数据右对齐,32位数据表示的整型数据是实际数据的2的7次方倍,所以整型数据除以128就是实际得到的温度数据,代码如下:
1 | /** |
上述代码中的spi接口依据硬件平台,本例测试用的STM32,可作参考,定义如下:
1 |
4、演示效果:
在室温18℃的环境下,将热电偶移动到茶杯(刚泡不久的茶)上方,可以发现温度立刻上升了;