1 分钟阅读 次阅读

芯片简介

LM75 是一款低功耗、易于使用的数字温度传感器,支持 I2C 接口通信。它能够测量芯片本身的温度,输出分辨率为 0.5°C,同时支持可编程温度阈值和报警功能。该芯片适用于环境温度监测、热保护系统等应用场景。

点击快速跳转到快速上手步骤{#explained}


1. 芯片基本特性

  • 测量范围:-55°C 至 +125°C
  • 分辨率:0.5°C(9 位数据格式)
  • 通信接口:I2C(支持标准模式和快速模式)
  • 电源电压:+2.7V 至 +5.5V
  • 功耗
    • 正常模式:300µA
    • 关机模式:4µA
  • 报警输出(OS 输出)
    • 开漏输出,需外部上拉电阻。
    • 可配置为 比较器模式中断模式
    • 支持可编程故障队列,防止误触发。
  • 可编程温度阈值
    • TOS(超限报警温度)
    • THYST(滞回温度)

2. I2C 通信特性

  • 从设备地址
    • 地址为 7 位,由固定的高 4 位(1001)和 3 位可配置的硬件地址(A2, A1, A0)组成。
    • 地址范围:1001 A2 A1 A0
    • 支持读/写操作。
  • 寄存器功能
寄存器名称 地址(hex) 上电默认值 功能 读/写
Temperature 00 0000 0000 当前温度,只读寄存器 Read only
Configuration 01 00 配置寄存器,设置芯片工作模式 R/W
THYST 02 4B(75°C) 滞回温度寄存器 R/W
TOS 03 50(80°C) 超限温度寄存器 R/W

3. 配置寄存器(Configuration Register)

配置寄存器用于设置芯片的工作模式和功能。寄存器位的定义如下:

功能 说明
D7–D5 保留位 必须设置为 0
D4–D3 Fault Queue 设置触发 OS 输出所需的连续故障次数(见下表)。
D2 OS Polarity 设置 OS 输出极性:0 为低电平有效,1 为高电平有效。
D1 Comparator/Interrupt 设置 OS 工作模式:0 为比较器模式,1 为中断模式。
D0 Shutdown 设置芯片工作状态:0 为正常模式,1 为关机模式(降低功耗)。

Fault Queue 设置(D4–D3 位):

D4 D3 故障次数
0 0 1(默认值)
0 1 2
1 0 4
1 1 6

4. 温度数据格式

  • 温度数据存储在 Temperature 寄存器(地址 0x00)中,长度为 16 位。
  • 数据格式:
    • 9 位有效数据(Bits D15–D7)。
    • D15:符号位(0 为正温度,1 为负温度)。
    • D7:最低有效位,表示 0.5°C。
    • D6–D0:无效位(忽略)。
UPPER BYTE D15 (Sign bit) D14 D13 D12 D11 D10 D9 D8 D7 (LSB 0.5°C) D6 D5 D4 D3 D2 D1 D0
Description Sign bit (1 = Negative, 0 = Positive) MSB 64°C 32°C 16°C 8°C 4°C 2°C 1°C LSB 0.5°C X X X X X X X

X = Don’t care


5. OS 输出功能

  • 输出类型:开漏输出(需外部上拉电阻)。
  • 工作模式
    • 比较器模式
      • 温度 > TOS 时,OS 输出触发。
      • 温度 < THYST 时,OS 输出复位。
    • 中断模式
      • 温度 > TOS 或 < THYST 时,OS 输出触发。
      • 必须通过一次读取操作复位 OS 输出。

6. 快速使用步骤

点击跳转回详解

  • 作为一个简单的IIC温度传感器,LM75的使用非常简单,所以很适合作为IIC功能的验证器件。
  • IIC 器件的使用无非就以下几个方面
    1. 连线
    2. 器件地址
    3. 寄存器地址
    4. 初始化
    5. 读取温度

下面就围绕着这几个方面逐一讲解。

6.1 连线

  • 我使用的是如下搭载了LM75的模块,有5个引脚,其中一个是OS引脚
  • 要实现最简单的温度读取功能,只需要接其中4个引脚就够了VCC(2.7V-5.5V)、GND、SCL、SDA alt text

6.2 器件地址

  1. I2C 器件地址结构
    • I2C 的器件地址通常由 高 7 位器件地址最低 1 位读写位 组成:
      • 读操作:最低位为 1
      • 写操作:最低位为 0
  2. LM75 的器件地址
    • 固定部分:高 4 位为 1001
    • 可配置部分:低 3 位由硬件地址引脚 A2, A1, A0 决定。
    • 通常情况下,硬件地址引脚配置为 000
    • 如下图,使用焊锡进行跳线即可 alt text
  3. 完整地址
    • 当硬件地址为 A2 = 0, A1 = 0, A0 = 0 时,7 位器件地址为:1001000
    • 根据 I2C 地址规则:
      • 写操作地址1001 0000(十六进制为 0x90)。
      • 读操作地址1001 0001(十六进制为 0x91)。

6.3 寄存器地址

最简单的使用只需要关注两个寄存器地址

  • 配置寄存器(用于芯片初始化)
  • 温度寄存器(用于温度读取)

6.4 初始化

  • 读取温度前,首先需要进行初始化。
  • 往配置寄存器0x01处,写入0x00即可
  • 初始化成功后,该模块会亮灯
# 设置器件地址
device_address = 0x90

# 写入配置寄存器
iic_write_byte(device_address, register=0x01, data=0x00)

6.5 读取温度

  • 读取0x00温度寄存器处的数据,LM75会首先传输温度的高字节的高位
  • 由于低7位数据无效,读取出的原始数据直接右移 7 位即可
  • 右移 7 位后,由于最低位表示的是 0.5℃的分辨率,所以还要除以2才得到真实的温度数据
# 设置器件地址
device_address = 0x90

# 读取温度寄存器
raw_temperature = iic_read_byte(device_address + 1, register=0x00)

# 数据处理
temperature = (raw_temperature >> 7) / 2.0

留下评论