当前位置:文档之家› LM75数字温度传感器应用

LM75数字温度传感器应用


* 文件名
: main.c
* 描述
: 主程序
******************************************************************************/
/* 头文件 ------------------------------------------------------------------*/ #include "stm32f10x_lib.h" #include <stdio.h>
MSB
LSB
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
0
0
0
0
0
0
P1
P0
详见指针寄存器位 选择表 8-22 简介
表 8-22 指针寄存器位选择简介
指针值
选中
寄存器
P1
P0
名称
描述
字位
读/写 权限
0
0 TEMP 温度寄存器 16 只读
0
0 CONF 配置寄存器 8 读/写
上电默认
R/W
位功能 定义
位 7~4 固定为 1001 A2,A1,A0 位设定状态必须与 STLM75A2,A1,A0 引接输入状态匹配,以便得到 ACK 信号 R/W:读/写操作选择位
STLM75 的 I2C 串行总线数据传输序列图分别如下所示图 9-11 所示。
图 9-11a 典型的从预置指针位置读出 2 字节,如温度,超阀值,滞后寄存器
} }
}
#ifdef DEBUG
/******************************************************************************
I2C 接口温度传感器 LM75A 应用案例
本实例利用 Cortex-M3 处理器 STM32F10xxx 的 I2C 接口对支持 I2C 总线协议的温度传 感器进行操作,读取温度值。
LM75A 设计要求
根据本实例的要求,本实例的设计包含硬件电路设计和软件设计,其中硬件电路设计是 本例的基础,大致划分如下: (1)STM32F10xxx 微处理器与温度传感器 I2C 接口电路设计,此部分是该硬件电路设计的关 键; (2)微处理器通过 I2C 接口读/写温度传感器的软件代码设计。
N/A 00
备注 存贮温度数据
1
0
THYS 滞后寄存器 16 读/写
4B00
默认=75℃
1
1
TOS
超温关闭
16 读/写 5000
设定超温关闭默认=80℃
(2)配置寄存器
配置寄存器 8 位可读/写,是用来存储设备设置的操作模式,比如超阀值温度关闭运行模式,
超温极性和超温故障队列等。如下表所示。
表 8-23 配置寄存器格式及位功能定义
节,设备地址字节(如表 8-26 所示)包括了读/写选择位,每次读/写操作必须由停止状态(STOP)
结束。称作确认(ACK)的约定确认了每个字节的接收。
表 8-26 STLM75 从地址字节定义
MSB
LSB
Byte
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
1
0
0
1
A2
A1
A0
int main(void) { u16 i=0;
#ifdef DEBUG debug();
#endif
/* 系统时钟配置 */ RCC_Configuration();
/* 中断向量配置 */ NVIC_Configuration();
/* GPIO 配置 */ GPIO_Configuration();
数字输出
十六进制码 0FAh 032h 001h 000h 1FFh 1CEh 1B0h 192h
STLM75 工作模式介绍 STLM75 所有的传输都在微处理器的控制下进行,微处理器作为主设备工作并提供给
STLM75 时钟信号,STLM 总是作为从设备身份工作。所有数据传输过程中数据字节都是先 传高位。读/写操作由开始状态(START)开始,紧跟着的是设备地址字节和一个或多个数据字
图 9-11b 典型的指针设置后立即读出 2 字节,如温度,超阀值,滞后寄存器 图 9-11c 典型的指针从带电预置指针的配置寄存器读出 1 字节 图 9-11d 典型的指针设置后立即读配置寄存器
图 9-11e 写配置寄存器 图 9-11f 写超阀值寄存器与滞后寄存器
I2C 接口温度传感器硬件原理图说明
它 函 数 包 含 在 main.c , stm32f10x_it.c , tsensor.c 当 中 。 限 于 篇 幅 cortexm3_macro.s,
stm32f10x_vector.s 省略介绍。
具体的程序代码及其说明(见注释语句)如下。
/******************************************************************************
STLM75 引脚功能描述
图 9-9 STLM75 功能框图
数字温度传感器 STLM75 的引脚示意如图 9-10 所示,相关引脚功能定义如下表。
图 9-10 STLM75 芯片引脚示意图
表 8-20 STLM75 数字温度传感器引脚功能定义
引脚
信号名称 功能定义
1 SDA
串行数据输入/输出
2 SCL
ErrorStatus HSEStartUpStatus;
/* 函数及引用外部函数 -----------------------------------------------*/ void RCC_Configuration(void); void NVIC_Configuration(void); void GPIO_Configuration(void); void USART_Configuration(void); extern void I2C_LM75_Init(void); extern u32 TempCelsius_Value ; extern u16 I2C_LM75_Temp_Read(void); extern ErrorStatus I2C_LM75_Status(void); extern void Thermometer_Temperature(void) ;
位 7:设置为’0’,保留
(3)温度寄存器 温度寄存器是一个由两个字节组成的 16 位“只读”操作寄存器,当温度—数字转换过程中, 温度值存贮于此寄存器,每当温—数转换完成,该寄存器内容将更新。 表 8-24 温度寄存器格式及位功能定义
Byte
HS Byte
LS Byte
MSB
TMSB
TLSB
LSB
TD:温度数据位
注:该寄存器格式兼容于 DS75 等同类芯片。
在温度寄存器,超阀值寄存器,滞后寄存器中,每单位值代表 0.5℃。该值均以二进制补码 表示,因而读 0 0000 0000b 时相当于 0℃。 STLM75 温度数值格式
表 8-26 显示的是外部温度与数字输出数据值之间的关系,温度寄存器,超阀值温度关 闭寄存器,滞后寄存器组成的温度相关数据值用补码表示。左边的数据包含了温度极性信息, 当为’0’时,表示此时的温度是正温;为’1’时,表示此时的温度为负温。
Byte
HS Byte
LS Byte
MSB
TMSB
TLSB
LSB

15
14 13 2 11 10 9 8 7 6 5 4 3 2 1 0
STLM75
9Bit
SB
TMSB TD TD TD TD TD TD
0
0
0
0
0
0
0
TLSB
SB:补码符号位,’0’表正温度,’1’表负温度
位功能 定义
TMSB:温度值最高位 TLSB:温度值最低位
LM75A 硬件电路设计
本实例硬件电路所用的 ARM Cortex-M3 核心处理器为 STM32F103VBH6, I2C 数字温 度传感器芯片为 STLM75,其详细介绍如下文。 LM75A 主要器件
在本章的实例设计中,选择 ST 公司的 STLM75 器件,它是一种含 9 位 ADC、温度分 辨率高达 0.5℃的数字温度传感器,测量范围能够达到-55℃~125℃。它提供两条线支持 I2C 总线协议的接口来监测温度,并具备自校准功能。上位机可以随时要求 STLM75 去读取温 度,当温度超过设定的温度时,芯片系统会自动输出一个超温报警信号,可用于上位机的监 控操作。主机可以通过程序来控制温度警报器(TOS)及温度。A0、A1、A3 这三只引脚可以设 定地址。下图是 STLM75 功能方框图。
表 8-25 温度与数字输出关系表
温度
+125℃ +25℃ +0.5℃
0℃ -0.5℃ -25℃ -40℃ -55℃
二进制码 0 1111 1010 0 0011 0010 0 0000 0001 0 0000 0000 1 1111 1111 1 1100 1110 1 1011 0000 1 1001 0010
TD0~8:温度数据位
(4)超阀值温度寄存器(TOS) 超温寄存器是由两个字节组成的 16 位可读/写操作的寄存器,存储了温度报警值的高位。默 认为 80℃。如下表 8-25 所示。 (5)迟滞温度寄存器(THYS) 迟滞温度寄存器是由两个字节组成的 16 位可读/写操作寄存器,存储用户设定的温度报警值 低位,默认设置为 75℃。超温寄存器及滞后温度寄存器格式如下表所示。 表 8-25 超温寄存器及滞后温度寄存器格式及位功能定义
相关主题