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

Related