OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7021|回复: 2

MAX31856 高精度热电偶至数字输出转换器开发笔记

[复制链接]

16

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2020-2-19
在线时间
10 小时
发表于 2020-3-25 17:27:30 | 显示全部楼层 |阅读模式
MAX31856 高精度热电偶至数字输出转换器开发笔记
【器件概述】
MAX31856可对来自于任何类型热电偶的信号进行冷端补偿和数字化,将输出数据格式化为以摄氏度为单位。转换器的温度分辨率达0.0078125°C,允许读取高达+1800°C以及低至-210°C(取决于热电偶类型)的温度读数,热电偶电压测量精度达±0.15%。热电偶输入具有高达±45V的过压保护。器件包括50Hz和60Hz电网频率滤波,也是热电偶的故障检测频率。SPI兼容接口允许选择热电偶类型以及设置转换和故障检测过程。
【功能框图】
11.png
【关键特性】
提供高精度热电偶温度读数
包括8种热电偶的自动线性度修正
±0.15%(最大值,-20°C至+85°C)热电偶满幅和线性度误差
19位、0.0078125°C热电偶温度分辨率
内置冷端补偿,将系统元件数量降至最少
±0.7°C(最大值,-20°C至+85°C)冷端补偿精度
±45V输入保护,系统性能可靠
简化系统故障管理和诊断
检测热电偶开路
过温和欠温故障检测
50Hz/60Hz噪声抑制滤波,提高系统性能
14引脚TSSOP封装
【备货信息】   硅天下备货编号GXT-MAX31856MUD+T
【应用电路图】
9.png
【寄存器配置】
     芯片内部有16个寄存器,没有什么特别的要求的话(比如自己做冷端补偿),主要关心CR0、CR1、MSAK、LTCBH、LTCBM、LTCBL、SR这几个就好了,其他保持默认值。
10.png
存取寄存器时,使用地址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                 0x80
3 #define          MAX31856_CR1_R_ADDR                  0x01  // 配置1寄存器
4 #define          MAX31856_CR1_W_ADDR                 0x81
5 #define          MAX31856_MASK_R_ADDR               0x02  // 故障屏蔽寄存器
6 #define          MAX31856_MASK_W_ADDR                    0x82
7 #define          MAX31856_CJHF_R_ADDR                 0x03  // 冷端上限故障
8 #define          MAX31856_CJHF_W_ADDR               0x83
9 #define          MAX31856_CJLF_R_ADDR                 0x04  // 冷端下限故障
10 #define               MAX31856_CJLF_W_ADDR                0x84
11 #define               MAX31856_LTHFTH_R_ADDR                  0x05  // 线性化温度上限故障,MSB
12 #define               MAX31856_LTHFTH_W_ADDR                 0x85
13 #define               MAX31856_LTHFTL_R_ADDR                   0x06  // 线性化温度上限故障,LSB
14 #define               MAX31856_LTHFTL_W_ADDR                 0x86
15 #define               MAX31856_LTLFTH_R_ADDR                   0x07  // 线性化温度下限故障,MSB
16 #define               MAX31856_LTLFTH_W_ADDR                 0x87
17 #define               MAX31856_LTLFTL_R_ADDR                   0x08  // 线性化温度下限故障,LSB
18 #define               MAX31856_LTLFTL_W_ADDR                  0x88
19 #define               MAX31856_CJTO_R_ADDR                0x09  // 冷端温度偏移寄存器
20 #define               MAX31856_CJTO_W_ADDR               0x89
21 #define              MAX31856_CJTH_R_ADDR                 0x0A  // 冷端温度寄存器,MSB
22 #define               MAX31856_CJTH_W_ADDR               0x8A
23 #define               MAX31856_CJTL_R_ADDR                 0x0B  // 冷端温度寄存器,LSB  
24 #define               MAX31856_CJTL_W_ADDR                0x8B
25 #define               MAX31856_LTCBH_R_ADDR                    0x0C  // 线性化TC温度,字节2
26 #define               MAX31856_LTCBM_R_ADDR                    0x0D  // 线性化TC温度,字节1
27 #define               MAX31856_LTCBL_R_ADDR                     0x0E  // 线性化TC温度,字节0
28 #define               MAX31856_SR_R_ADDR                            0x0F  // 状态故障寄存器
2. 初始化参数宏定义(max31856.h文件中)
这里将MAX31856设置为连续采样模式,8个采样点取一次平均值,设置为K型热电偶(根据热电偶型号选择,不过芯片也会自动识别),开启所有故障检测,每16个采样点进行一次开路检测。SPI_DELAY是SPI通信的超时大小。
1 #define          MAX31856_INIT_CR0                                 0xA0
2 #define          MAX31856_INIT_CR1                               0x33
……

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-8-15
在线时间
1 小时
发表于 2022-5-10 16:23:47 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-5-15
在线时间
16 小时
发表于 2024-8-13 23:44:58 | 显示全部楼层
能分享完整代码吗?万分感谢!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 09:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表