- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We are working on a design with the CapSense CY8CMBR3108. We are experiencing issues communicating with this device from our iMX application processor. We have found the following:
If we try and read from the device a single time, it usually fails. Occasionally (~25%) it will return the correct value.
If we quickly send a read command with less than 200ms delay, the second read always (100%) works and returns as expected.
If we increase the delay between reads to 4sec, we go back to failures most of the time.
We've tried changing the speed of teh I2C bus from the host, but this make no difference.
I suspect there may be a timing issue? Maybe the device is going to a lower power state and repsonds slower? However, the STATE_TIMEOUT = 10. We tried setting it to 0 with no change.
Any ideas why we get intermittent read results on our fist attempt but always works on the second try?
Thanks,
James
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @ejb068
This behavior is expected as the MBR3 NACKs the I2C communication whenever it is in low power mode. Please see point 2 under I2C communication guidelines from the datasheet
MBR3 goes into low power mode whenever there is no active scan so that power is saved. So, the host needs to be programmed such that it tries a second time whenever a NACK is received.
Best regards,
Hari
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @ejb068
This behavior is expected as the MBR3 NACKs the I2C communication whenever it is in low power mode. Please see point 2 under I2C communication guidelines from the datasheet
MBR3 goes into low power mode whenever there is no active scan so that power is saved. So, the host needs to be programmed such that it tries a second time whenever a NACK is received.
Best regards,
Hari