查看: 2152|回复: 2
打印 上一主题 下一主题

MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

[复制链接]

45

主题

47

帖子

616

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
616
跳转到指定楼层
楼主
发表于 2019-1-14 20:46:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1. 概述

MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC)。器件带有冷端补偿检测和修正、数字控制器、SPI兼容接口,以及相关的控制逻辑,在温度控制器、过程控制或监测系统中设计用于配合外部微控制器(μC)工作。提供多个版本的器件,每个版本针对特定的热电偶类型(K、J、N、T或E型)进行优化和调整。热电偶类型以器件型号后缀表示(例如MAX31855K)。

器件输出14位带符号数据,通过SPI兼容接口、以只读格式输出。转换的温度分辨率为0.25℃,最高温度读数为+1800℃,最低温度读数为-270℃,对于K型热电偶,温度范围为-200℃至+700℃,保持±2℃精度。

2. 特性

  • 冷端补偿
  • 14位、0.25℃分辨率
  • 提供K、J、N、T和E型热电偶器件版本
  • 简单的SPI兼容接口(只读)
  • 检测热电偶对GND或VCC短路
  • 检测热电偶开路

3. 典型应用电路


实际应用电路


4. SPI串口协议及时序

器件处理来自热电偶的读数,并通过串口发送数据。驱动CS为低电平,并在SCK端施加时钟信号,从SO读取结果。器件始终在后台执行转换,只有CS为高电平时才能更新故障状态和温度数据。

驱动CS为低电平时,SO引脚将输出第一位数据。通过串口读取完整的冷端补偿热电偶温度,需要14个时钟周期。读取热电偶和参考端温度需要32个时钟周期。在时钟下降沿读取输出位。第一位D31为热电偶温度符号位。

D[30:18]位包含温度转换数据,顺序为MSB至LSB。D16位正常状态下为低电平,热电偶输入开路或对GND或VCC短路时变为高电平。参考端温度数据从D15开始。

输出转换数据时,CS任何时候均可变为高电平。

5. 存储器映射 — 位加权和功能说明


6. 实际测温效果

小太阳的温度为 542 ℃


7. 程序源码

MAX31855测温程序,分别使用STM32硬件SPI和软件模拟时序两种方式读取温度数据。

源码下载:
max31855.h (1.63 KB, 下载次数: 116)
max31855.c (5.75 KB, 下载次数: 142)


8. MAX31855中英文对照手册
MAX31855冷端补偿热电偶至数字输出转换器.pdf (2.87 MB, 下载次数: 81)


0

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
沙发
发表于 2019-8-23 11:15:15 | 只看该作者
问几个问题,希望有人帮忙解决下
1.FB3跟FB4是必须的吗?为什么手册没有?为什么型号是2A电流的?
2.E8,C39,R64有必要加上吗?
3.为什么我读到的32位数据,差不多都是FF 3F CF F3左右,怎么算温度都不对,我室温大概32度。
4.为什么手一碰到K型电热偶的铁皮,32位数据就没规律乱跳?
5.手册上V OUT = (41.276FV/NC) x (T R - T AMB )这个公式是用来算什么的?没明白

45

主题

47

帖子

616

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
616
板凳
?楼主| 发表于 2019-9-1 12:57:55 | 只看该作者
sky999 发表于 2019-8-23 11:15
问几个问题,希望有人帮忙解决下
1.FB3跟FB4是必须的吗?为什么手册没有?为什么型号是2A电流的?
2.E8,C39 ...
回复 sky999

问题1:FB3和FB4不是必须,主要作用是防干扰。
问题2:C39,R64看你用的是什么单片机,不是必须的,E8的作用是稳压,滤波,让芯片工作更稳定。
问题3、4:归结起来是同一个问题,我在调试过程中也遇到过,请检查各个信号的时序,延时时间是否符合要求(我的单片机是STM32,主频72MHz)。
问题5:是和热电偶特性相关的,芯片内部算法,可以不用深究。如果想知道为什么,请查阅热电偶相关技术资料。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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