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 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 // 状态故障寄存器

  1. 初始化参数宏定义(max31856.h文件中)

这里将MAX31856设置为连续采样模式,8个采样点取一次平均值,设置为K型热电偶(根据热电偶型号选择,不过芯片也会自动识别),开启所有故障检测,每16个采样点进行一次开路检测。SPI_DELAY是SPI通信的超时大小。

1 #define MAX31856_INIT_CR0 0xA0
2 #define MAX31856_INIT_CR1 0x33
……

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

  1. MAX31855 热电偶至数字输出转换器

    MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据 转载于:https://www.cnblogs.com/LittleTiger/p/11179790.html

  2. MAX31855热电偶转换器开发流程

    MAX31855热电偶转换器开发流程 一. 准备硬件和相关知识 实验连接图 1.硬件:一块开发板.逻辑分析仪.热电偶(常用的K型热电偶).杜邦线等: 2.相关知识: VHDL基础.SPI通信: 二.m ...

  3. Android开发笔记(一百七十二)第二代翻页视图ViewPager2

    正如RecyclerView横空出世取代ListView和GridView那样,Android也推出了二代翻页视图ViewPager2,打算替换原来的翻页视图ViewPager.与ViewPager相 ...

  4. Android开发笔记(一百三十)截图和录屏

    屏幕捕捉 Android5.0之后开放了屏幕捕捉的API,因此开发者便可以直接通过代码进行截图与录屏,而无需操作系统底层了.屏幕捕捉的功能由MediaProjectionManager媒体投影管理器实 ...

  5. 1. max31855 热电偶至输出转换器 分析

    摘要:这是第一篇关于VHDL的程序,去年学过FPGA大约2星期.因为自己的态度问题,没有认真学起,哎 导致现在重新学习,真是花费好多时间. 因此在这里我将记录自己学习FPGA的过程,牢记! 2016- ...

  6. 嵌入式系统开发笔记0_0:目录

    本系列文章将向大家介绍嵌入式系统开发的各方面知识. 本系列文章所介绍的知识和内容,除电路图设计外,其它均采用开源系统,所以你不会在这个系列文章中看到Keil.IAR等软件. 本系列文章涉及C.C++. ...

  7. MLX90640开发笔记(十)成果展示-红眼睛相机

    最终的成果是一个微型的USB接口红外成像模块(微型红外成像仪30*30mm),可以连接到Android手机或者计算机的USB接口,实时显示热像视频,和手机相机差不多,只不过它是热红外成像,所以叫&qu ...

  8. 九齐单片机NY8B062D开发笔记(一)准备

    九齐单片机开发笔记 前言 过程 1.芯片介绍 2.开发环境: 3.例程template 4.源文件: 参考资料 前言 各位朋友们,由于九齐的仿真器买不到,这个系列暂时停止更新 由于价格和性能的追求,近 ...

  9. 基于STM32F103C8T6开发笔记

    基于STM32F103C8T6开发笔记 GPIO的配置 定时器配置 串口1配置 串口2配置 计数器配置 ADC配置 SPI配置 STM32开发笔记 MDK5小技巧:按ctrl+空格可以自动补全: 1. ...

最新文章

  1. Android音频底层调试-基于tinyalsa
  2. 【04】AngularJS 表达式
  3. PHP+Mysql实现协同办公OA系统源码演示下载
  4. 从关系数据库到Elasticsearch的索引数据– 1
  5. C语言递归算法(一)
  6. javascript基本数据类型与值类型引用类型说明
  7. leetcode 172. Factorial Trailing Zeroes(阶乘的末尾有多少个0)
  8. Educoder关联规则挖掘
  9. 不当 95% 的劣质勤奋者
  10. Java 算法 - 递归算法思想
  11. 一位程序员社畜的2021闲读书单!
  12. 关于Eclipse在servlet中连接数据库时出现驱动加载失败的解决
  13. Android状态栏添加QS快捷开关
  14. 经纬度的多种格式和转换方式
  15. 如何修改文件最后一次修改时间?
  16. 层次分析法(参考:清风)
  17. 如何使用工厂模式让自己的代码更加优雅
  18. C语言实现Base64编码转码
  19. 文档服务器sos,Cliosoft SOS 使用手册
  20. android 熄屏 后台运行,Android进程保活/息屏后后台保持定位、网络运行

热门文章

  1. android 刷机原理,分区。
  2. 如何将EXCEL中同一个工作薄多张工作表合并
  3. WEB 前端开发插件整理
  4. solidworks正版多少钱_SOLIDWORKS 2020、2021正版软件价格是多少钱?SW官方报价_专业版和白金版...
  5. C# Chart 曲线(多曲线展示)
  6. 2022,世界杯,来了
  7. 哈工大软件构造期末复习(根据老师复习提纲整理)
  8. 美国科技大佬们最爱看的书
  9. C语言无符号双字节乘法,华为OJ机试标题:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...
  10. Android反向进度条(ProgressBar)的实现——从右到左的进度条