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

 
 
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
Chief

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".