![]() |
Slave not acknowledging FAQ (Frequently Asked Questions) |
My Slave is not acknowledging, what's wrong?
Whenever a master and slave talk to each other, problems could arise
in either device.
Slave Not Acknowledging Possible Problems:
1. It could be that a bug in your code causes the wrong address to go out across the bus.
2. It could also be that under certain circumstances, the slave device stops acknowledging its address.
3. There may be other undetermined things happening.
Suggestions:
1. Use the iPort DLL Log File
You should turn on the iPort (#MIIC-201) DLL logging feature in your program. Set the logging level to 2 or 3. This would allow you to collect a log of the commands sent to the iPort DLL from your application, so you could see if your program sends the wrong address. If you make your program stop sending messages when it gets the first Slave Not Acknowledging, the last message sent would be near the end of the log file.
2. Investigate Bus Activity
Investigate what actually goes across the bus. Our I2C Bus Monitor (#MIIC-101) or I2C Bus Monitor Plus (# MIIC-102) will allow you to see what goes across the bus, so you can determine if your program is sending a bad address.
If you are ONLY master transmitting to the slave, you could attach a second iPort to the bus to act as a slave receiver in parallel with your slave device. The iPort Message Manager software would display all received messages.
3. Slave Device Stops Acknowledging
It is possible that there are timing problems. Perhaps the slave device gets busy doing other things and stops acking its address. Again, our I2C Bus Monitor (#MIIC-101) or I2C Bus Monitor Plus (# MIIC-102) will provide the answer.
Can't find the answer to your question here? Then e-mail your question to us at support@mcc-us.com
I2C is just a mouse click away TM