nRF54L15 I2C target intermittently stops acknowledging until hard reset

We have an nRF54L15 (QFAA) board, acting as an I2C target (TWIS30, P0.00/P0.01, address 0x42, 100 kHz) for an ESP32-S3 through a TCA9406 level translator.

Flow:

  • Between sessions the nRF sleeps in System ON, and TWIS is suspended.
  • To talk to it, the ESP raises a wake line on P1.10 (through a voltage divider). The wake ISR releases a semaphore, the main thread resumes TWIS, and the ESP scans and reads. The ESP then lowers the wake line and the nRF suspends TWIS again.
  • The main loop (of nRF) also wakes on a 300 s timer.

Problem: 

- Sometimes, the link fails permanently: Every ESP session gets a NACK on 0x42 (instead of ACK), while the nRF main loop keeps running on its timer (its other functions keep working). Only the pin reset (reset button) of the nRF restores the communication.

Scope captures (as shown in the image) confirm that the address request reaches the nRF side of the translator, but SDA remains HIGH during the acknowledgement clock.

If the case is that the nRF is not enabling TWIS, what might be the cause for that?

Is there any other recommended recovery sequence without resetting the entire nRF?

Thank you

Parents
  • Also, have you tried debugging the nRF (check logs and events)? Is there something happening on the last time that it worked, and is there anything happening on the first time that it doesn't work? any error messages in the log?

    Is there some way for me to reproduce what you are seeing without an ESP? Can I use another nRF as the TWIM?

    BR,

    Edvin

Reply
  • Also, have you tried debugging the nRF (check logs and events)? Is there something happening on the last time that it worked, and is there anything happening on the first time that it doesn't work? any error messages in the log?

    Is there some way for me to reproduce what you are seeing without an ESP? Can I use another nRF as the TWIM?

    BR,

    Edvin

Children
No Data
Related