1.MAX31865
(1)簡介
MAX31865是簡單易用的熱敏電阻至數(shù)字輸出轉(zhuǎn)換器,優(yōu)化用于鉑電阻溫度檢測器(RTD)。外部電阻設(shè)置RTD靈敏度,高精度Δ- Σ ADC將RTD電阻與基準(zhǔn)電阻之比轉(zhuǎn)換為數(shù)字輸出。MAX31865輸入具有高達(dá)±45V的過壓保護,提供可配置的RTD及電纜開路、短路條件檢測。
(2)特點和優(yōu)點
集成更低系統(tǒng)功耗,簡化設(shè)計,減少設(shè)計周期:
簡便的RTD鉑電阻之?dāng)?shù)字轉(zhuǎn)換器;
支持100Ω至1kΩ (0°C時)鉑電阻RTD (PT100至PT1000);
兼容于2線、3線和4線傳感器連接;
SPI兼容接口;
20引腳TQFN和SSOP封裝;
高精度設(shè)備滿足誤差預(yù)算:
15位ADC分辨率,標(biāo)稱溫度分辨率為0.03125°C (隨RTD非線性變化);
整個工作條件下,總精度保持在0.5°C (0.05%滿量程);
全差分VREF輸入;
轉(zhuǎn)換時間:21ms (最大值);
集成故障檢測,增加系統(tǒng)穩(wěn)定性:
±45V輸入保護;
故障檢測(RTD開路、RTD短路到量程范圍以外的電壓或 RTD元件短路)。
(3)引腳圖和引腳說明
(4)SPI讀寫數(shù)據(jù)傳輸時序圖
(5)轉(zhuǎn)換溫度原理
(6)內(nèi)部寄存器
(7)典型應(yīng)用電路
(8)實際電路圖(三線制)
2.PT100溫度傳感器
圖中的兩個紅線中的任意一個和藍(lán)線之間即為PT100電阻,二線制時只需要將兩根紅線中的一根和藍(lán)線接入到電路即可,三線制時需要將三根線都接入電路。
3.液晶顯示屏顯示
使用TB1621驅(qū)動LCD進行顯示。
4.程序代碼
主函數(shù):
[cpp] view plain
#include “stm32f10x.h”
#include “usart.h”
#include “max31865.h”
#include “HT1621.h”
#include “stm32f10x_gpio.h”
#include “spi.h”
extern uint8_t Data_Buffer[8];
extern uint8_t DRDY_Status(void);
//extern void Inital_MAX31865(void) ;
extern uint8_t MAX31865_Config;
extern float Temperature;
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_DeInit();
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PA.8
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽式輸出
GPIO_Init(GPIOA, &GPIO_InitStructure);
//用PB0讀取MAX31865的狀態(tài)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //PB.0
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ; //浮空輸入
GPIO_Init(GPIOB, &GPIO_InitStructure);
uart_init(9600);
printf(“ Detect ”);
GPIO_ResetBits(GPIOA, GPIO_Pin_8);//set 0
delay_init();
ht1621_GPIO_Init();
ht1621_Init();
lcd_clear();//清屏
“white-space:pre”》 SPI1_Init();
Max31865_Init();
while(1)
{
Temperature = Get_Temperature();
printf(“temp=%f ”,Temperature);
ht1621_TempDisplay(Temperature);
}
}
5.總結(jié)
(1)PA4、PA5、PA6、PA7端口可以復(fù)用重映像為SPI的CS、SCK、MISO、MOSI,只需要將這四個端口配置為復(fù)用推挽輸出GPIO_Mode_AF_PP即可:
[cpp] view plain
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
(2)三線制中MAX31865的5引腳和6引腳應(yīng)該是連接起來的,之前的PCB上由于馬虎未連接;
(3)端口的輸入模式
GPIO_Mode_AIN:模擬輸入模式
GPIO_Mode_IN_FLOATING:浮空輸入模式(復(fù)位后的狀態(tài))
GPIO_Mode_IPD:下拉輸入模式
GPIO_Mode_IPU :上拉輸入模式
(4)端口的輸出模式
GPIO_Mode_Out_OD :通用開漏輸出模式
GPIO_Mode_Out_PP:通用推挽輸出模式
GPIO_Mode_AF_OD :復(fù)用開漏輸出模式
GPIO_Mode_AF_PP: 復(fù)用推挽輸出模式
(5) 在輸出模式下,有2M、10M、50MHz三種輸出速度可選擇,這個速度是指I/O端口驅(qū)動電路的響應(yīng)速度而不是輸出信號的速度,輸出信號的速度與程序有關(guān)。
GPIO_Speed_10MHz,
GPIO_Speed_2MHz,
GPIO_Speed_50MHz
評論
查看更多