网联高温仪表专用传感器MAX31856
MAX31856 高精度热电偶至数字输出转换器开发笔记【器件概述】MAX31856可对来自于任何类型热电偶的信号进行冷端补偿和数字化,将输出数据格式化为以摄氏度为单位。转换器的温度分辨率达0.0078125°C,允许读取高达+1800°C以及低至-210°C(取决于热电偶类型)的温度读数,热电偶电压测量精度达±0.15%。热电偶输入具有高达±45V的过压保护。器件包括50Hz和60Hz电网频率滤波,也是热电偶的故障检测频率。SPI兼容接口允许选择热电偶类型以及设置转换和故障检测过程。 【功能框图】 【MAX31856关键特性】提供高精度热电偶温度读数包括8种热电偶的自动线性度修正 ±0.15%(最大值,-20°C至+85°C)热电偶满幅和线性度误差 19位、0.0078125°C热电偶温度分辨率内置冷端补偿,将系统元件数量降至最少转换器的温度分辨率达0.0078125°C,允许读取高达+1800°C以及低至-210°C(取决于热电偶类型)的温度读数±0.7°C(最大值,-20°C至+85°C)冷端补偿精度±45V输入保护,系统性能可靠 简化系统故障管理和诊断检测热电偶开路 过温和欠温故障检测50Hz/60Hz噪声抑制滤波,提高系统性能 14引脚TSSOP封装 【备货信息】 硅天下备货编号GXT-MAX31856MUD+T 【应用电路图】 【寄存器配置】 芯片内部有16个寄存器,没有什么特别的要求的话(比如自己做冷端补偿),主要关心CR0、CR1、MSAK、LTCBH、LTCBM、LTCBL、SR这几个就好了,其他保持默认值。 存取寄存器时,使用地址0Xh为读操作,地址8Xh为写操作。CR0和CR1主要配置芯片工作模式,推荐设置连续采样模式和采样点平均,我把CR0设置为0xA0,CR1设置为0x33。MASK设置为0x00,开启所有的故障检测,故障检测周期在CR0寄存器里配置。LTCBH、LTCBM、LTCBL存放最后的测温结果,做一些转换就能计算出来。芯片计算好一次温度结果后会把DRDY引脚设为低电平,推荐采用DRDY引脚触发中断来测量温度。SR寄存器放置故障检测的结果。基本的流程就是,配置CR0、CR1、MASK三个寄存器,然后读取LTCBH、LTCBM、LTCBL、SR的值,获取温度结果和测温过程中的故障。 【编写程序】 利用CubeMX生成Keil 5的工程后,新建并添加max31856.h和max31856.c文件,存放与其相关的代码。这里摘出主要代码: 1. 列出各寄存器地址(.h文件中) 1 #define MAX31856_CR0_R_ADDR 0x00// 配置0寄存器2 #define MAX31856_CR0_W_ADDR 0x803 #define MAX31856_CR1_R_ADDR 0x01// 配置1寄存器4 #define MAX31856_CR1_W_ADDR 0x815 #define MAX31856_MASK_R_ADDR 0x02// 故障屏蔽寄存器6 #define MAX31856_MASK_W_ADDR 0x827 #define MAX31856_CJHF_R_ADDR 0x03// 冷端上限故障8 #define MAX31856_CJHF_W_ADDR 0x839 #define MAX31856_CJLF_R_ADDR 0x04// 冷端下限故障10 #define MAX31856_CJLF_W_ADDR 0x8411 #define MAX31856_LTHFTH_R_ADDR 0x05// 线性化温度上限故障,MSB12 #define MAX31856_LTHFTH_W_ADDR 0x8513 #define MAX31856_LTHFTL_R_ADDR 0x06// 线性化温度上限故障,LSB14 #define MAX31856_LTHFTL_W_ADDR 0x8615 #define MAX31856_LTLFTH_R_ADDR 0x07// 线性化温度下限故障,MSB16 #define MAX31856_LTLFTH_W_ADDR 0x8717 #define MAX31856_LTLFTL_R_ADDR 0x08// 线性化温度下限故障,LSB18 #define MAX31856_LTLFTL_W_ADDR 0x8819 #define MAX31856_CJTO_R_ADDR 0x09// 冷端温度偏移寄存器20 #define MAX31856_CJTO_W_ADDR 0x8921 #define MAX31856_CJTH_R_ADDR 0x0A// 冷端温度寄存器,MSB22 #define MAX31856_CJTH_W_ADDR 0x8A23 #define MAX31856_CJTL_R_ADDR 0x0B// 冷端温度寄存器,LSB24 #define MAX31856_CJTL_W_ADDR 0x8B25 #define MAX31856_LTCBH_R_ADDR 0x0C// 线性化TC温度,字节226 #define MAX31856_LTCBM_R_ADDR 0x0D// 线性化TC温度,字节127 #define MAX31856_LTCBL_R_ADDR 0x0E// 线性化TC温度,字节028 #define MAX31856_SR_R_ADDR 0x0F// 状态故障寄存器 2. 初始化参数宏定义(max31856.h文件中) 这里将MAX31856设置为连续采样模式,8个采样点取一次平均值,设置为K型热电偶(根据热电偶型号选择,不过芯片也会自动识别),开启所有故障检测,每16个采样点进行一次开路检测。SPI_DELAY是SPI通信的超时大小。 1 #define MAX31856_INIT_CR0 0xA02 #define MAX31856_INIT_CR1 0x33……感谢分享!
页:
[1]