本應(yīng)用筆記介紹了基于MAXQ2000微控制器、MAX31875高分辨率本地溫度傳感器和MAX7219八位LED顯示驅(qū)動(dòng)器的帶LED顯示屏的溫度監(jiān)測(cè)系統(tǒng)。
介紹
MAX31875為精度為±2°C的本地溫度傳感器,具有I2C/SMBus 接口。該器件采用4焊球晶圓級(jí)封裝,平均電源電流<10μA,工作溫度范圍為-20°C至+150°C。 MAX31875具有纖巧的封裝、低功耗和出色的精度,可用于各種溫度測(cè)量應(yīng)用,如便攜式設(shè)備、手持電子設(shè)備和工業(yè)設(shè)備。本應(yīng)用筆記提出了溫度監(jiān)測(cè)系統(tǒng)的想法。系統(tǒng)基于MAXQ2000微控制器、MAX31875高分辨率本地溫度傳感器和MAX7219 8位LED顯示驅(qū)動(dòng)器。MAXQ2000通過(guò)I讀取溫度2MAX31875的C接口和LED顯示屏通過(guò)串行外設(shè)接口(SPI)使用MAX7219 LED驅(qū)動(dòng)器實(shí)現(xiàn)。
概述
溫度監(jiān)測(cè)系統(tǒng)使用MAXQ2000作為控制器。它用作溫度傳感器和LED顯示屏之間的接口。MAXQ2000通過(guò)I接收溫度信息2MAX31875的C接口,為MAX7219產(chǎn)生一個(gè)SPI,驅(qū)動(dòng)LED顯示屏。我2MAXQ2000提供的C接口工作頻率為400kHz或100kHz,SPI命令的發(fā)送頻率可達(dá)8MHz。MAXQ2000通過(guò)I持續(xù)檢查環(huán)境溫度2MAX31875的C接口。一個(gè)八位LED以攝氏度為單位顯示MAX31875的本地溫度。MAX7219為緊湊的串行輸入/輸出共陰極顯示驅(qū)動(dòng)器。只需將其連接到八位七段數(shù)字LED顯示屏,然后通過(guò)SPI從微控制器發(fā)送溫度信息。
硬件設(shè)置
測(cè)試程序在Maxim命令模塊(CMAXQUSB)上運(yùn)行。它用作從PC接收命令的接口,并創(chuàng)建SPI或SMBus/I2C兼容接口,用于向MAX31875和MAX7219發(fā)送命令。板載電平轉(zhuǎn)換器將MAXQ2000 2.5V邏輯信號(hào)轉(zhuǎn)換為外部VDD邏輯電平。VDD邏輯電平可通過(guò)跳線選擇2.5V、3.3V或5V,由板載超低噪聲LDO MAX8511提供。MAX3373為雙向電平轉(zhuǎn)換器,專為I級(jí)設(shè)計(jì)。2C總線。板載提供可選的用戶可切換 SCL/SDA 上拉電阻。MAX31875評(píng)估板帶有VDD、GND、SCL和SDA測(cè)試點(diǎn)接頭,連接至CMAXQUSB上的P7連接器。MAX7219用于驅(qū)動(dòng)8位、7段LED顯示屏。MAX7219的SPI連接到CMAXQUSB上的連接器P8。固件通過(guò)連接器P5加載到MAXQ2000中。硬件配置如圖 1 所示。實(shí)際設(shè)置如圖 2 所示。
圖1.溫度監(jiān)控系統(tǒng)。
圖2.溫度監(jiān)控設(shè)置。
軟件功能
溫度監(jiān)測(cè)程序包括三個(gè)主要功能:從MAX31875到I獲取溫度讀數(shù)2C接口,向MAX7219發(fā)送SPI命令,并將結(jié)果輸出到LED顯示屏上。
CMAXQUSB模塊提供了一個(gè)“位撞擊”I2C 使用MAXQ2000的GPIO引腳。MAXQ系列微控制器具有高速、靈活的GPIO模塊和獨(dú)立的I/O電源電壓,非常適合此類位敲擊應(yīng)用。
選擇兩個(gè) GPIO 引腳用作 SCL 和 SDA。包括MAXQ2000 I2項(xiàng)目目錄中的 C 庫(kù)文件(maxq2000_i2c.h 和 maxq2000_i2c.c),并為 I 配置所需的 I/O2C 接口。
為 SCL 和 SDA 信號(hào)選擇 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讀取溫度,請(qǐng)向IC地址0x90發(fā)送讀取命令,并0x00溫度寄存器地址。MAX31875的溫度寄存器以二進(jìn)制補(bǔ)碼格式顯示;MSB 是符號(hào)位。
獲取溫度的代碼如下所示。maxq2000_i2c.c文件中的TxByte用于傳輸I上的8位字節(jié)2C總線,和我2C_RxByte用于從從接收8位字節(jié)。要從浮點(diǎn)型 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接收的溫度讀數(shù)通過(guò)SPI和MAX7219的寄存器發(fā)送到MAX7219。spi_transmit() 執(zhí)行如下所示的 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驅(qū)動(dòng)8位、7段LED顯示屏。MAX7219提供BCD碼B解碼器。但是,為了顯示攝氏符號(hào),我們使用無(wú)解碼模式。MAX7219的寄存器數(shù)據(jù)被分配一個(gè)數(shù)字模式,因此,每個(gè)LED可以顯示相應(yīng)的數(shù)字。
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
測(cè)試結(jié)果
將此溫度監(jiān)測(cè)器放入福祿克?油浴校準(zhǔn)器內(nèi),收集 -20°C 至 +150°C 的溫度讀數(shù)。 監(jiān)視器在整個(gè)溫度范圍內(nèi)的精度(圖3)低于1°C。
圖3.精度與溫度的關(guān)系。
結(jié)論
MAX31875為精確的本地溫度傳感器。使用MAXQ2000的SPI和I2C接口,該溫度監(jiān)測(cè)系統(tǒng)可通過(guò)MAX7219顯示實(shí)時(shí)溫度,作為低成本溫度監(jiān)測(cè)器工作。
-
微控制器
+關(guān)注
關(guān)注
48文章
7555瀏覽量
151431 -
連接器
+關(guān)注
關(guān)注
98文章
14521瀏覽量
136558 -
接口
+關(guān)注
關(guān)注
33文章
8605瀏覽量
151197
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論