two different chips connected to one I2C bus. is any delay/reset/cycle needed?
Hi at all,
I'm facing a ‘tag lost’ problem with two different chips connected to one I2C bus. I didn’t find a similar scenario, so here is mine:
- One chip is a ST25DV04K
- The other chip is another Memory-EEPROM
- Both have the same device identifier, but different bits in the chip enable address
=> AFAIK this should be possible, correct me if I’m in the wrong here
I’m using an Android app for NFC communication. The mailbox in the ST25DV04K is used to exchange chunks of data in both directions.
Since RF and I2C is not supported at the same time, delays/timeslots are added to avoid access the ST25DV04K at the same time. The MCU using the GPO with an interrupt.
=> As long as there is only exchange between the Android app and the MCU (STM32) it works just fine.
If there is a write access to the other Memory-EEPROM (save data between 100B and ~16kB), the Android app detects a ‘tag lost’ in most cases.
The exchange can be seen like this:
- Chunks are sent from app to MCU via ST25 mailbox
- MCU checks data
- MCU saves data in Memory-EEPROM
- Delay for sync on both sides (avoid parallel access)
- MCU sends back one chunk via mailbox
- App starts polling status of mailbox
- App detects ‘tag lost’
After the ‘tag lost’ was detected, the app starts a retry. It reads back the bits for ‘HOST_PUT_MSG’ and ‘HOST_CURRENT_MSG’ in the mailbox status.
Different timings were tested. Different clock speeds (100kHz and 200kHz) were tested. Different ST25DV04K chips were tested. Voltage signals seems to be ok.
- I wonder if there is any delay/reset/cycle I missed in the datasheet. Do you have any clues?
- Is there any low level NFC communication, I’m not aware of, that causes usage RF and I2C at the same time?
Thank you very much for your help!
BR,
Jan
