I2C Slave not responding
Originally tagged-on to this old thread. Split to new thread for better visibility.
Hello,
I seem to have a similar problem, besides, that DMA is disabled.
I have an STM32H503RB (NUCLEO-H503RB) trying to read out some I2C slave devices. It actually works only for one of the devices. This tells me, that the I2C bus is somehow working correctly.
But for the remaining three IC (Temperature, GPIO & ADC), there is no way for me to even send the register address.
Right after the Device address, the communication ends. See the attached file. This is the communication to an MCP9801T temperature sensor (device address [W] = 0x92).
I actually don't understand the reason, why this happens.
f=100kHz
What I did:
- changing pull-ups: same behaviour for 4.7kOhm & 3.0 kOhm
- soldering the device on an otherwise empty PCB: only the 100nF, the pull-ups and the MCP9801T is there.
- I2C-Deinit as well as I2C-Init.
The source code is as simple as that:
while (1)
{
data[0]=0x00; data[1]=0x01;
HAL_I2C_Master_Transmit(&hi2c1, Temp_ADDR_W, &data, 2, 10);
HAL_Delay(1000);
}
Has anyone at least an idea where to look at? Of course, let me know, what information you are missing.
Thank you very much in advance!
Best regards!

