AZIC Education
Component ReferenceTemperature Sensors

LM75A Temperature Sensor

LM75A digital temperature sensor specifications, I2C interface, register map, and testing procedures for cryptocurrency mining hash board repair.

Overview

The LM75A is the most common temperature sensor found in Antminer hash boards. It is a digital temperature sensor with an I2C interface, capable of measuring temperatures from -55°C to +125°C with ±2°C accuracy. Multiple manufacturers produce LM75A-compatible parts (NXP, TI, ON Semiconductor, STMicroelectronics), all following the same register map and protocol.

On Antminer hash boards, LM75A sensors are placed at several positions along the chip array to monitor ASIC die temperatures. The readings are used by firmware to control fan speed, adjust chip frequency, and trigger thermal protection shutdowns.

Specifications

ParameterValue
ManufacturerNXP, TI, ON Semi, ST (multiple sources)
Sensing TypeLocal (on-die)
Temperature Range-55°C to +125°C
Accuracy±2°C (-25°C to +100°C)
Resolution0.5°C (9-bit)
InterfaceI2C / SMBus
Supply Voltage2.8V to 5.5V
Supply Current1mA typical
Conversion Time100ms per reading
PackageSOIC-8, SOT-23-5
I2C SpeedUp to 400kHz (Fast mode)
Alert OutputOS pin (open-drain, active low)

I2C Address Configuration

The LM75A I2C address is configurable via three address pins (A0, A1, A2), allowing up to 8 sensors on a single I2C bus:

A2A1A0I2C Address
GNDGNDGND0x48
GNDGNDVCC0x49
GNDVCCGND0x4A
GNDVCCVCC0x4B
VCCGNDGND0x4C
VCCGNDVCC0x4D
VCCVCCGND0x4E
VCCVCCVCC0x4F

In Antminer hash boards, the most common configuration uses addresses 0x48 through 0x4B (4 sensors per board, with A2 tied to GND).

On Antminer hash boards, the LM75A sensors are connected behind the PIC16F1704 I2C bridge, not directly on the main I2C bus. To read a sensor, the control board sends CMD 0x3C to the PIC with the target sensor address. Direct I2C access to the LM75A is only possible when probing the hash board's internal I2C bus directly.

Register Map

The LM75A has four accessible registers:

RegisterAddressSizeDefaultDescription
Temperature0x002 bytesCurrent temperature reading (read-only)
Configuration0x011 byte0x00Operating mode and alert settings
T_hyst0x022 bytes0x4B00 (75°C)Hysteresis threshold for alert recovery
T_os0x032 bytes0x5000 (80°C)Over-temperature shutdown threshold

Temperature Register (0x00)

The temperature register contains a 9-bit two's complement value in the upper 9 bits of the 16-bit register:

Byte 0 (MSB):  [D8] [D7] [D6] [D5] [D4] [D3] [D2] [D1]
Byte 1 (LSB):  [D0] [x]  [x]  [x]  [x]  [x]  [x]  [x]

Temperature = (Byte0 << 1 | Byte1 >> 7) × 0.5°C

Example readings:

Raw BytesTemperature
0x19 0x00+25.0°C
0x19 0x80+25.5°C
0x00 0x000.0°C
0xE7 0x00-25.0°C
0x50 0x00+80.0°C

Configuration Register (0x01)

BitNameDescription
7:5ReservedAlways 0
4:3OS Fault QueueNumber of faults before OS triggers (00=1, 01=2, 10=4, 11=6)
2OS Polarity0 = active low, 1 = active high
1OS Mode0 = comparator, 1 = interrupt
0Shutdown0 = normal, 1 = shutdown mode

Reading Temperature via PIC Bridge (Antminer)

On Antminer hash boards, temperature sensors are accessed through the PIC16F1704 I2C bridge. The reading sequence is:

Send Sensor Read Command to PIC

Send CMD 0x3C to the PIC at its current I2C address (0x20-0x27):

TX: [55 AA] [05] [3C] [sensor_addr] [02] [00] [checksum]

Where sensor_addr is the LM75A address (e.g., 0x48), 02 is the number of bytes to read, and 00 is the register address (temperature register).

Wait for Conversion

Wait approximately 50ms for the PIC to perform the I2C transaction with the sensor.

Read Response from PIC

Read the response from the PIC (byte-by-byte — the PIC requires individual byte reads):

RX: [06] [3C] [01] [MSB] [LSB] [checksum]

The MSB and LSB bytes contain the raw temperature value.

Convert to Temperature

raw = (msb << 8) | lsb
if raw & 0x8000:  # Negative temperature
    raw = raw - 65536
temp_celsius = (raw >> 7) * 0.5

Critical: The PIC16F1704 requires byte-by-byte I2C reads. Attempting to read multiple bytes in a single I2C transaction causes shift register underrun, resulting in bit-shifted garbage data. See the PIC16F1704 reference for details.

Common Failure Modes

1. Sensor Not Responding

Symptoms: Miner reports "temp sensor error", temperature shows as 0°C or -1°C.

Causes:

  • Failed LM75A IC (internal failure)
  • Broken I2C trace (SDA or SCL) between the sensor and the PIC bridge
  • Missing 3.3V supply to the sensor
  • PIC bridge failure (appears as sensor failure but affects all sensors)

Diagnosis: Check 3.3V at the sensor VCC pin. If power is present, check I2C continuity. If multiple sensors fail simultaneously, suspect the PIC bridge rather than individual sensors.

2. Inaccurate Reading

Symptoms: Temperature reading is significantly higher or lower than actual board temperature.

Causes:

  • Sensor not in good thermal contact with the monitoring area
  • Sensor operating at incorrect supply voltage
  • Environmental interference (nearby hot component affecting the reading)

3. Stuck at Power-On Value

Symptoms: Temperature reads a constant value that never changes.

Causes:

  • Sensor in shutdown mode (configuration register bit 0 set)
  • I2C bus partially broken (reading cached data)
  • Clock line (SCL) stuck, preventing new conversions

Testing Procedures

Check Power Supply

Measure voltage between the LM75A VCC pin and GND:

  • Expected: 3.0V to 3.6V
  • If 0V: Trace the 3.3V rail back to the LDO regulator

Check I2C Pull-ups

Measure voltage on SDA and SCL lines with the board powered but idle:

  • Expected: Both lines should be HIGH (near 3.3V) when idle
  • If SDA or SCL is stuck LOW: A device on the bus has failed — disconnect sensors one at a time to identify the culprit

Component-Level Check (Unpowered)

With the board unpowered, use diode mode to check the LM75A:

  • Probe from VCC to GND: should read 0.5V to 0.7V (internal protection diode)
  • Probe from GND to VCC: should read OL (open)
  • A reading of 0V in both directions suggests a shorted IC

Scan the Bus

Connect an I2C scanner (Bus Pirate, Saleae logic analyzer, or ESP32 with scanner firmware) to the hash board's internal I2C bus.

Scan for devices at addresses 0x48 through 0x4F.

Read Temperature Register

For each detected sensor, read register 0x00 (2 bytes):

  • Values should correspond to ambient or board temperature
  • Compare readings across all sensors — they should be within 5°C of each other at room temperature

Thermal Response Test

Apply gentle heat (warm air) to one sensor while reading its temperature:

  • Reading should increase within 1-2 seconds
  • If reading does not change, the sensor conversion is not functioning

Replacement Notes

  • The LM75A is available in SOIC-8 and SOT-23-5 packages — verify the package type before ordering replacements
  • Match the address pin configuration (A0, A1, A2) to the original sensor — incorrect addressing means the firmware cannot find the sensor
  • LM75A parts from different manufacturers (NXP, TI, ST) are interchangeable
  • Use a soldering iron for SOIC-8 or fine-tip for SOT-23-5
  • After replacement, verify the sensor responds at the correct I2C address and reads a reasonable temperature

Found In These Miners