Dead Air

STM32 I2C Not Working Debug

Symptom

The terminal stays blank, and the analyzer on SCL and SDA never shows a byte. The registers and bit fields are on the Datasheet tab.

Circuit

Block diagram: U1, an STM32F4, drives SCL on PB6 and SDA on PB7 to U2, a temperature sensor at address 0x48, with pull-ups R1 and R2 to 3V3 and TP1, a logic analyzer, on both lines; PA9 carries USART1 TX to J1, a serial console

Pass condition

Once after reset, USART1 prints TEMP:<value>, one line: the byte in the sensor's register 0x00, in decimal.

Expected output for the room temperature case: on the sensor bus a write of register address 00 to 0x48 and a read of one byte, 1A, from it; then the line TEMP colon 26 on the serial console

Notes

From power-up the bench plays the sensor at 0x48. On a known good board it answers.

Related challenges

Loading the interactive arena.