cancel
Showing results for 
Search instead for 
Did you mean: 

i2c clock stretching

eunni
Associate III

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, dataBufsizeof(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 discussion is locked. Please start a new topic to ask your question.
3 REPLIES 3
sonja
Associate II

did you use a pullup resister?

eunni
Associate III

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

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 "Accept as Solution".