2023-10-13 11:38 AM
Hello, i am dealing with an i2c issue.
I am trying to trasnmit from my NucleoF401RE (as master) to an ESP32 (as slave). I cant make to ESP32 respond the device address.
I take some measures off the SDA and SCL signals
I realized that SDA has cero hold time and i am not quite sure if it is okey.
I make also some measure but now using my ESP32 as master and those are the signals:
i am not quite sure but i think this is the problem beacuse de ESP32 does not send the acknowledge.
Is there a way to put some hold time to my nucleo F401RE ?
Right now i am using the I2C in polling mode. I add my config and code:
Solved! Go to Solution.
2023-10-13 12:23 PM
You have very slow edges. Likely the external pullup is insufficient or not present at all and you're relying on internal pullups instead.
You can lower the clock speed to get better looking edges.
Note that HAL expects left-aligned slave addresses. So 2x the 7-bit address.
2023-10-13 12:23 PM
You have very slow edges. Likely the external pullup is insufficient or not present at all and you're relying on internal pullups instead.
You can lower the clock speed to get better looking edges.
Note that HAL expects left-aligned slave addresses. So 2x the 7-bit address.
2023-10-13 01:50 PM
Thanks for your comment @TDK , the edges get better but the problem is the same. I doble check the adress shift and its okey. You know if is posible to change hold time? i really think that is the problem.
2023-10-13 02:29 PM
@TDK well, i give up and put the resistors ( the signal was good edges enough), and all start working. They went 6 hours of lost time .
So never trust in internal pull up.
Thanks