I am using an Aardvark I2C/SPI Host Adapter as an I2C slave and another device as a master. I am using 7-bit addressing. After every write command to the Aardvark I2C slave device, the master device tries to read what it has written. The Aardvark is sending a NACK after the master executes a Read command immediately after the Write command. I have some questions about this:
Thanks for your questions! The Aardvark I2C/SPI Host Adapter's behavior, as a master and a slave, follow theI2C standard specifications. These specifications are described in detail in section 2.3 of the Aardvark Host Adapter User Manual.
What you have observed in your setup is the normal behavior of the Aardvark I2C/SPI Host Adapter as an I2C slave device. Following are examples of setting Max Rx bytes and how the Aardvark I2C slave responds.
To answer your questions, the Aardvark adapter, as a slave, gives a NACK for a read command because it is unable to accept data. It will not occur after every write operation, only when it is unable to accept data. The reason the Aardvark adapater is unable to accept data is due to “Max Rx Bytes” setting in the Control Center Software as shown below.
For additional information, please refer to the following documents:
We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.