Part Number: CC2642R
Hello,
I am working with a CC2642R1F as the I2C master and an ADC3140 as the I2C slave.
The I2C bus is configured at 100 kHz and uses 2.2 kOhm pull-up resistors on SDA and SCL.
I am experiencing an intermittent communication issue. Sometimes the I2C transaction is successful, but other times it fails.
When the transaction fails, the logic analyzer shows that the ADC3140 does not acknowledge the slave address (0x4C). The transaction stops with a NACK immediately after the address byte.
When the transaction succeeds, the ADC3140 acknowledges the address, register address, and data correctly.
For example:
Successful transaction:
Address 0x4C -> ACK
Register 0x02 -> ACK
Data 0x81 -> ACK
Failed transaction:
Address 0x4C -> NACK
To investigate the issue, I created a loop that continuously sends the same write command. In many cases, the ADC3140 only responds after the 6th, 8th, or 10th attempt.
The software sequence is:
-
Initialize I2C.
-
Set SHDNZ high.
-
Wait using Task_sleep().
-
Start writing ADC3140 registers.
Since the NACK occurs during the address phase, it appears that the ADC3140 is not responding on the bus at that moment.
Has anyone seen similar behavior with the ADC3140? Are there any startup timing requirements or special initialization steps before the first I2C access?
Thank you.