0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何构建高分辨率温度监测系统

星星科技指导员 来源:ADI 作者:ADI 2022-12-23 10:11 次阅读

本应用笔记介绍了基于MAXQ2000微控制器、MAX31875高分辨率本地温度传感器和MAX7219八位LED显示驱动器的带LED显示屏的温度监测系统。

介绍

MAX31875为精度为±2°C的本地温度传感器,具有I2C/SMBus 接口。该器件采用4焊球晶圆级封装,平均电源电流<10μA,工作温度范围为-20°C至+150°C。 MAX31875具有纤巧的封装、低功耗和出色的精度,可用于各种温度测量应用,如便携式设备、手持电子设备和工业设备。本应用笔记提出了温度监测系统的想法。系统基于MAXQ2000微控制器、MAX31875高分辨率本地温度传感器和MAX7219 8位LED显示驱动器。MAXQ2000通过I读取温度2MAX31875的C接口和LED显示屏通过串行外设接口(SPI)使用MAX7219 LED驱动器实现。

概述

温度监测系统使用MAXQ2000作为控制器。它用作温度传感器和LED显示屏之间的接口。MAXQ2000通过I接收温度信息2MAX31875的C接口,为MAX7219产生一个SPI,驱动LED显示屏。我2MAXQ2000提供的C接口工作频率为400kHz或100kHz,SPI命令的发送频率可达8MHz。MAXQ2000通过I持续检查环境温度2MAX31875的C接口。一个八位LED以摄氏度为单位显示MAX31875的本地温度。MAX7219为紧凑的串行输入/输出共阴极显示驱动器。只需将其连接到八位七段数字LED显示屏,然后通过SPI从微控制器发送温度信息。

硬件设置

测试程序在Maxim命令模块(CMAXQUSB)上运行。它用作从PC接收命令的接口,并创建SPI或SMBus/I2C兼容接口,用于向MAX31875和MAX7219发送命令。板载电平转换器将MAXQ2000 2.5V逻辑信号转换为外部VDD逻辑电平。VDD逻辑电平可通过跳线选择2.5V、3.3V或5V,由板载超低噪声LDO MAX8511提供。MAX3373为双向电平转换器,专为I级设计。2C总线。板载提供可选的用户可切换 SCL/SDA 上拉电阻。MAX31875评估板带有VDD、GND、SCL和SDA测试点接头,连接至CMAXQUSB上的P7连接器。MAX7219用于驱动8位、7段LED显示屏。MAX7219的SPI连接到CMAXQUSB上的连接器P8。固件通过连接器P5加载到MAXQ2000中。硬件配置如图 1 所示。实际设置如图 2 所示。

poYBAGOlDrmABUe4AAB5ASGRiQk762.png

图1.温度监控系统。

pYYBAGOlDlSAYqPUAAtoS2aCyg8071.png?imgver=1

图2.温度监控设置。

软件功能

温度监测程序包括三个主要功能:从MAX31875到I获取温度读数2C接口,向MAX7219发送SPI命令,并将结果输出到LED显示屏上。

CMAXQUSB模块提供了一个“位撞击”I2C 使用MAXQ2000的GPIO引脚。MAXQ系列微控制器具有高速、灵活的GPIO模块和独立的I/O电源电压,非常适合此类位敲击应用。

选择两个 GPIO 引脚用作 SCL 和 SDA。包括MAXQ2000 I2项目目录中的 C 库文件(maxq2000_i2c.h 和 maxq2000_i2c.c),并为 I 配置所需的 I/O2C 接口。

为 SCL 和 SDA 信号选择 GPIO 引脚的代码如下:

#define SCL_ENABLE PD6 |= 0x01;
#define SCL_DISABLE PD6 &= 0xFE;
#define SDA_ENABLE PD6 |= 0x02;
#define SDA_DISABLE PD6 &= 0xFD;

#define SCL_HIGHPO6 |= 0x01;
#define SCL_LOWPO6 &= 0xFE;
#define SDA_HIGHPO6 |= 0x02;
#define SDA_LOWPO6 &= 0xFD;

要从MAX31875读取温度,请向IC地址0x90发送读取命令,并0x00温度寄存器地址。MAX31875的温度寄存器以二进制补码格式显示;MSB 是符号位。

获取温度的代码如下所示。maxq2000_i2c.c文件中的TxByte用于传输I上的8位字节2C总线,和我2C_RxByte用于从从接收8位字节。要从浮点型 GetTEMP() 读取温度:

{
int temp;
float number=0;
int temp_reg;
// first set the address
I2C_Start();
I2C_TxByte(0x90);
if (!checkForValidAck()) return -1;
I2C_TxByte(0x00);
if (!checkForValidAck()) return -1;
I2C_Stop();
// now read the data
I2C_Start();
I2C_TxByte(0x91);
if (!checkForValidAck()) return -1;
temp=I2C_RxByte();
I2C_TxBit(0);
temp=temp<<8;
temp|=I2C_RxByte();
I2C_TxBit(1);
I2C_Stop();
temp_reg=temp&0X7FFF;//get unsigned bit
temp=temp>>15;//get sign
if(temp)
sign=1;
else
sign=0;
number=(temp_reg-sign*32768)*0.0625/8 ;
return number;
}

从MAX31875接收的温度读数通过SPI和MAX7219的寄存器发送到MAX7219。spi_transmit() 执行如下所示的 SPI 传输。

unsigned int spi_transmit(const unsigned int ch)
{
unsigned int spib;

while(SPICN_bit.STBY);/* Wait until the character can be sent. */
SPICN_bit.SPIC = 0; /* In case it is already set, clear the */
/* transfer complete flag. */
SPIB = ch; /* Send the data. */
while(!SPICN_bit.SPIC); /* Wait for the transfer to complete. */
spib = SPIB; /* Get the data received. */
SPICN_bit.SPIC = 0; /* Clear the tansfer complete flag. */
return spib;
}

MAX7219驱动8位、7段LED显示屏。MAX7219提供BCD码B解码器。但是,为了显示摄氏符号,我们使用无解码模式。MAX7219的寄存器数据被分配一个数字模式,因此,每个LED可以显示相应的数字。

char digit_pattern[] =
{ 0x7E, // 0
0x30, // 1
0x6D, // 2
0x79, // 3
0x33, // 4
0x5b, // 5
0x5F, // 6
0x70, // 7
0x7F, // 8
0x7B, // 9
0x77, // A
0x1F, // b
0x4E, // C
0x3d, // d
0x4f, // E
0x47 // F
};
max7219_writeregister(MAX7219REG_Degree,digit_pattern[12],LENGTH_16);// Display Celsius sign

测试结果

将此温度监测器放入福禄克®油浴校准器内,收集 -20°C 至 +150°C 的温度读数。 监视器在整个温度范围内的精度(图3)低于1°C。

poYBAGOlDlaAbxhrAAAl_6Yg080496.png?imgver=1


图3.精度与温度的关系。

结论

MAX31875为精确的本地温度传感器。使用MAXQ2000的SPI和I2C接口,该温度监测系统可通过MAX7219显示实时温度,作为低成本温度监测器工作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7547

    浏览量

    151331
  • 连接器
    +关注

    关注

    98

    文章

    14488

    浏览量

    136449
  • 接口
    +关注

    关注

    33

    文章

    8580

    浏览量

    151044
收藏 人收藏

    评论

    相关推荐

    增强高分辨率图像捕获的选择

    来计算一个规则球场的高尔夫球数量,在检验电子或监测大面积如机场终端时提供所需的关键成像细节。虽然它可能不是我们最高分辨率的器件(最高分辨率的是5000万像素的KAF-50100),但它结合极
    发表于 10-25 09:04

    所谓“鹰眼”,即为高分辨率测量模式

    情况。  当熔接完成时,实时测量的光纤末端会越过我们设置的检查点,这时AQ7280给出提示信息(信息提示和报警声)表示安装已经结束。  2“鹰眼”  所谓“鹰眼”,即为高分辨率测量模式。将仪表的采样点
    发表于 01-25 14:40

    如何设计高速高分辨率ADC电路?

    影响ADC信噪比因素有哪些?如何设计高速高分辨率ADC电路?基于AD6644AST一65的高速高分辨率ADC电路设计实例
    发表于 04-23 06:01

    如何实现DCP的高分辨率控制?

    实现高分辨率的原理是什么如何使用X9241实现高分辨率
    发表于 04-27 06:54

    如何利用先进的热电偶和高分辨率Δ-ΣADC实现高精度温度测量?

    如何利用先进的热电偶和高分辨率Δ-ΣADC实现高精度温度测量?
    发表于 05-12 07:01

    高速高分辨率数据采集系统

    高速高分辨率数据采集系统
    发表于 04-30 13:44 45次下载

    高分辨率图像实时显示系统设计

    自行设计的超高分辨率图像实时显示系统由图形系统处理机、超高分辨率显示器组成, 其核 心是图形系统处理机, 显示
    发表于 07-09 14:36 19次下载

    采用TNETV1700的高分辨率IP电话系统设计

    采用TNETV1700的高分辨率IP电话系统设计 本文介绍一种基于双核处理器TNETV1700的高分辨率IP数字电话语音系统。该系统以TN
    发表于 03-29 15:10 1016次阅读
    采用TNETV1700的<b class='flag-5'>高分辨率</b>IP电话<b class='flag-5'>系统</b>设计

    如何优化高分辨率DAC的DC测量

    如何优化高分辨率DA
    发表于 01-09 12:13 43次下载
    如何优化<b class='flag-5'>高分辨率</b>DAC的DC测量

    高分辨率信号空调系统的浅析

    本文介绍了高分辨率信号的空调系统
    发表于 11-23 15:22 22次下载
    <b class='flag-5'>高分辨率</b>信号空调<b class='flag-5'>系统</b>的浅析

    高分辨率数字调光器

    高分辨率数字调光器
    发表于 11-15 19:36 3次下载
    <b class='flag-5'>高分辨率</b>数字调光器

    宽带视频开关解决高分辨率视频设计挑战

    宽带视频开关解决高分辨率视频设计挑战
    发表于 11-15 19:56 0次下载
    宽带视频开关解决<b class='flag-5'>高分辨率</b>视频设计挑战

    如何构建高分辨率温度监测系统

    发表于 11-16 21:01 0次下载
    如何<b class='flag-5'>构建</b><b class='flag-5'>高分辨率</b><b class='flag-5'>温度</b><b class='flag-5'>监测</b><b class='flag-5'>系统</b>

    高管洞察:高分辨率音乐需要高分辨率扬声器

    所有关于高分辨率音乐传输和无损音频或空间音频格式的讨论都为时过早。很少有人能分辨出其中的区别——除非他们通过高分辨率、固态扬声器聆听。 作者: MIKE HOUSHOLDER,xMEMS 营销和业务
    发表于 03-21 14:57 876次阅读
    高管洞察:<b class='flag-5'>高分辨率</b>音乐需要<b class='flag-5'>高分辨率</b>扬声器

    什么是高分辨率示波器?它有哪些优势?

    高分辨率示波器是一种在信息与系统科学相关工程与威廉希尔官方网站 领域中广泛应用的科学仪器,其设计旨在提供更高的信号分辨率和更精细的信号分析能力。以下是对高分辨率示波器的详细解析,包括其定义、优势以及
    的头像 发表于 08-08 11:49 947次阅读