IN THE KNOW
Go to bottomPage: 1
TOPIC:
#1030
Reset of I2C controller on eZ8F1680 8 Months ago Karma: 1
We use eZ8F1680 as an I2C slave. I wonder how do I reset the I2C controller, and how do I know that it is in need of reset. On eZ80F91 I have the I2C_SRR register and "Bus error" status code, but not in eZ8F1680. I think I have found cure for the problem. I put 0 in the IEN bit of I2CCTL, than NOP, NOP, NOP, than restore 1 in there. Is it the right way to reset the I2C controller, and how do I detect bus error?
Alex K (User)
Fresh Boarder
Posts: 19
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#1031
Re:Reset of I2C controller on eZ8F1680 8 Months ago Karma: 4
Alex,
I am not sure why you would need to reset the I2C bus as a slave but clearing/setting the IEN pin is fine. If you are running into issues during transfers that requires a reset, my guess is there is a step missing in your handler.
Some other things to keep in mind:
You can flush the data by setting the bit 1 of the I2CCTL.
You can monitor the I2CISTAT register for different activities on the bus although there is no “bus error” as you noticed.
The F1680 includes the FILTEN bit in the control to turn provide spike suppression and requires the input width to be a clock cycle.
Tom Ormiston (Admin)
Admin
Posts: 168
graph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#1032
Re:Reset of I2C controller on eZ8F1680 8 Months ago Karma: 1
Situations that require reset quite often arise when I run my program under debugger. If the program stops on a breakpoint and then restarts, some times the I2C controller is no longer functioning. In that situation reset helps. Also, the controller hangs up if I take a peace of wire and connect SDA line to GND. This is not real situation, but if there are faulty IC’s on the I2C bus, then who knows what they can do. I was just taking precautions.

Thanks for your time, Tom.
Alex K (User)
Fresh Boarder
Posts: 19
graphgraph
User Offline Click here to see the profile of this user
The administrator has disabled public write access.
 
#1087
Re:Reset of I2C controller on eZ8F1680 5 Months, 1 Week ago Karma: 0
I know this is an old thread, but so am I

I've be away from the forum for a while but have something to offer here I hope. The I2C bus in general, can get locked up for a variety of reasons, particularly during development and debug. If you breakpoint while an I2C bus transaction is in progress and you decide it's best to exit the debugger, edit, recompile, redownload, etc. then it's possible the I2C bus is in an unknown state and requires a reset.

I've dealt with this issue on both Zilog and another architecture. I'm enclosing some references to "other" sites (sorry Zilog) regarding details on reset rationale and methods. Hope they help.

Silicon Labs Forum

Microchip Application Notes AN572 and AN709.

Best regards,
Steve C.
Stephen Ciricillo (User)
Junior Boarder
Posts: 27
graphgraph
User Offline Click here to see the profile of this user
Gender: Male Birthday: 12/12
The administrator has disabled public write access.
Best regards,
Steve C.
 
Go to topPage: 1