Skip to main content
Visitor II
December 11, 2017
Solved

m24sr64 - i2c problem - token release sequence

  • December 11, 2017
  • 1 reply
  • 763 views
Posted on December 11, 2017 at 10:20

hello

i use the nfc memory m24sr64 with the dedicated source code ('STM32CubeExpansion_NFC1_V1.6.0').

I have an issue using the i2c token release sequence, supposed to close the i2c session.

In fact, our micro sends the start condition and the slave adress, but then, the ms24sr blocks the SCL line to low level for 28ms before releasing it.

Then the stop condition occurs.

So, during the i2c token release sequence, our micro sends 8 clock period for the start and the slave adress, and the 9th appears 28ms later.

So, the token release sequence seems not being correct, compared to the sequence on the m24sr64 datasheet.

Do you have an idea why the m24sr64 should block the SCL line during the token release sequence, although we send its correct adress ?

thank you !

    This topic has been closed for replies.
    Best answer by Rene Lenerve
    Posted on December 14, 2017 at 09:51

    Hi Catheline,

    Normally the I2C Token release is supposed to put the SCL line Low for 40ms in the BSP driver. For that it uses the HAL_Delay function based on the HAL Systick timer. Did you modify the TimeBase of the Systick, it should be set to 1ms.

    Best Regards.

    1 reply

    ST Employee
    December 14, 2017
    Posted on December 14, 2017 at 09:51

    Hi Catheline,

    Normally the I2C Token release is supposed to put the SCL line Low for 40ms in the BSP driver. For that it uses the HAL_Delay function based on the HAL Systick timer. Did you modify the TimeBase of the Systick, it should be set to 1ms.

    Best Regards.