MAX6675使用笔记


前言

MAX6675执行冷端补偿,并数字化K型热电偶的信号。 数据以SPI™兼容的12位分辨率,只读格式输出。
该转换器分辨率为0.25°C,允许读数高达+ 1024°C,并且在0°C至+ 700°C的温度范围内具有8LSB的热电偶精度。


一、MAX6675框图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、MAX6675详细介绍

MAX6675是一款精密的热电偶数字转换器,内置12位模数转换器(ADC)。 MAX6675还包括冷端补偿检测和校正,数字控制器,SPI兼容接口以及相关的控制逻辑。MAX6675设计用于在恒温,过程控制或监控应用中与外部微控制器或其他智能器件配合使用。

1.温度转换

MAX6675包括信号调节硬件,可将热电偶的信号转换为与ADC输入通道兼容的电压。T +和T-输入连接到内部电路,可减少热电偶导线引入的噪声误差。

在将热电电压转换为等效温度值之前,必须补偿热电偶冷端(MAX6675环境温度)与0°C虚拟基准之间的差异。对于K型热电偶,电压变化为41µV /°C,可通过以下线性方程式近似热电偶特性:在这里插入图片描述
VOUT是热电偶输出电压(µV)。TR是远端热电偶结的温度(°C)。TAMB是环境温度(°C)。

2.冷端补偿

热电偶的功能是感应热电偶线两端之间的温度差。 热电偶的热端可以读取0°C至+ 1023.75°C的温度。冷端(安装MAX6675的电路板的环境温度)只能在-20°C至+ 85°C的范围内变化。当冷端温度波动时,MAX6675继续准确地感应另一端的温差。

MAX6675利用冷端补偿来检测并校正环境温度的变化。该设备使用温度感应二极管将环境温度读数转换为电压。为了进行实际的热电偶温度测量,MAX6675测量来自热电偶输出和检测二极管的电压。器件的内部电路将二极管的电压(感测环境温度)和热电偶电压(感测远端温度减去环境温度)传递到ADC中存储的转换函数,以计算热电偶的热端温度。当热电偶冷端和MAX6675处于相同温度时,可实现MAX6675的最佳性能。避免在MAX6675附近放置发热设备或元件,因为这可能会产生与冷端有关的错误。

3.数字化

ADC将冷端二极管的测量值与放大后的热电偶电压相加,并将12位结果读出到SO引脚上。全零序列表示热电偶读数为0°C。全部为1的顺序表示热电偶读数为+ 1023.75°C。

三、应用信息

1.串行接口

典型应用电路显示MAX6675与微控制器接口。在本例中,MAX6675处理热电偶的读数,并通过串行接口传输数据。强制CS为低电平,并在SCK处施加时钟信号以读取SO处的结果。 强制CS为低电平将立即停止任何转换过程。 通过强制CS高电平来启动新的转换过程。

强制CS为低电平以输出SO引脚上的第一位。 完整的串行接口读取需要16个时钟周期。在时钟的下降沿读取16个输出位。第一位D15是伪符号位,始终为0。D14–D3位包含从MSB到LSB的转换温度.当热电偶输入断开时,D2位通常为低电平,而变为高电平。 D1为低电平,为MAX6675提供器件ID,D0为三态。图1a是串行接口协议,图1b显示了串行接口时序。 图2是SO输出。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.开放式热电偶

D2位通常为低,如果热电偶输入断开,则位为高。为了允许打开的热电偶检测器工作,T-必须接地。 接地应尽可能靠近GND引脚。

3.噪音考虑

MAX6675的精度容易受到电源耦合噪声的影响。 通过在器件的电源引脚附近放置一个0.1pF陶瓷旁路电容器,可以最大程度地减小电源噪声的影响。

4.散热考虑

在某些应用中,自热会降低MAX6675的温度测量精度。温度误差的大小取决于MAX6675封装的导热系数,安装技术以及气流的影响。 使用较大的接地层可提高MAX6675的温度测量精度。遵循以下预防措施也可以提高热电偶系统的精度:

  • 使用尽可能大的电线,该电线不会使热量远离测量区域。
  • 如果需要细线,则仅在测量区域内使用,对没有温度梯度的区域使用延长线。
  • 避免机械应力和振动,以免拉紧电线。
  • 使用长热电偶导线时,请使用双绞线延长线。
  • 避免陡峭的温度梯度。
  • 尽量在温度范围内使用热电偶线。
  • 在恶劣的环境中使用合适的护套材料来保护热电偶线。
  • 仅在低温且梯度小的区域内使用延长线。
  • 保留事件日志并连续记录热电偶电阻。

5.降低噪声的影响

输入放大器(A1)是低噪声放大器,旨在实现高精度输入感测。 保持热电偶和连接线远离电气噪声源。
在这里插入图片描述

STM32 HAL库参考程序

#define Cs_Down()   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET)
#define Cs_Up()     HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET)
double ReadMax6675()
{
	uint8_t tmp[2];
	Cs_Down();
	uint8_t txData[1]={0xff};
	
	HAL_SPI_TransmitReceive(&hspi1,&txData[0],&tmp[0],1,0xff);
	HAL_SPI_TransmitReceive(&hspi1,&txData[0],&tmp[1],1,0xff);
	Cs_Up();
	__IO double temp=0;
	__IO uint16_t tmp1=0;
	tmp1=(tmp[0]<<8)+tmp[1];
	tmp1=tmp1>>3;
	temp=tmp1*0.25;
	return temp;
}

参考资料


总结

  • 15
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值