这款测温方案可以吗
MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据
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. 程序源码 MAX31855测温程序,分别使用STM32硬件SPI和软件模拟时序两种方式读取温度数据。
/**
******************************************************************************
* @file : max31855.c
* @brief : MAX31855 cold-junction compensated thermocouple-to-digital
* converter program body.
******************************************************************************
*
* Copyright (c) respeke, www.etdev.net
* All rights reserved.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "max31855.h"
#include "stm32f1xx_hal.h"
/* External variables --------------------------------------------------------*/
SPI_HandleTypeDef hspi1;
/* Private variables ---------------------------------------------------------*/
float tcTemp = 0, cjTemp = 0;
bool tcError = false;
/* Private function prototypes -----------------------------------------------*/
/**
* @brief Delay about 11ns per NOP (72MHz*1.25MIPS/MHz=90MIPS)
* @param None
* @retval None
*/
static void SPI_Delay(uint32_t counter)
{
for(int i=0; i<counter; i++)
{
__NOP();
}
}
……
|