Skip to main content
Associate III
May 9, 2024
Question

i2c clock stretching

Hi,

now I'm implementing i2c with 1 master(U575ZI-Q) and 3 slave(L432KC) boards.

 

master transmit dataBuf to slave 

HAL_I2C_Master_Transmit_IT(&hi2c1, addr<<1, dataBuf, sizeof(dataBuf));

 

and Slave receive it.

HAL_I2C_Slave_Receive_IT(&hi2c1, dataBuf, sizeof(dataBuf));

 

I already checked slave address and dataBuf, no problem.

 

 The problem is..

eunni_0-1715233400867.png

Master is ready to transmit(write) to slave 0x08, but it doesn't transmit the dataBuf contents.

SCL stay LOW and SDA stay HIGH...

 

IDK what's the problem.

thank you

 
 
This topic has been closed for replies.

3 replies

Associate II
May 9, 2024

did you use a pullup resister?

eunniAuthor
Associate III
May 9, 2024

yes, I pull up SCL and SDA with 4.7kohm pullup resistor and 3.3V

and set GPIO Pull-up/Pull-down to No pullup and no pulldown.

AScha.3
Super User
May 9, 2024

Hi,

vague description...

1. master -> slave transmit works - right ? So : how long, often...when its no more working? 

2. if no slave response or what slave doing , when this 1-byte-transfer happens ? spike on line ? -> error state ?

3. distance to slaves + full lenght of I2C lines ?

4. if you make the pic still a little smaller, could use it as avatar . I can only guess, what it should show.

If you feel a post has answered your question, please click on " Best Answer ".