You're right, that mobile device above probably uses at least one I2C bus.  If you are an engineering student or teacher, an engineer, an embedded software developer, hobbyist, or TV repair specialist, you know that many devices today depend on I2C.  And when something goes wrong, trying to use a scope to troubleshoot I2C is almost impossible.

Where can you turn?  Protocol Analyzers are the answer.  They're sometimes also called Bus Monitors, or Bus Analyzers. In a nutshell, these helpful tools interpret the activity on the bus and help you find out exactly what is going wrong,  The high-end units for I2C can cost $3,000 just for starters.  While these may have some fancy bells and whistles, those features are probably rarely used, if ever.

There are two main uses for an I2C protocol analyzer:  figuring out why your design isn't working as expected (if you are creating something new that uses an I2C bus), or troubleshooting a broken product by looking for communication failures on the bus (which can help pinpoint where the problem is).

Note that I2C is essentially identical to SMBus, which is used in virtually every laptop made in the last 10 years for battery and power management.  Some manufacturers call their I2C-compatible interfaces by the name TWI, but rest assured that it's the same as I2C.

Here's a link to the NXP specification itself:
Xtreme Engineering LLC offers a low-cost device ($99) called EasyI2C(TM) that provides quick answers by reporting all normal bus traffic, as well as a multitude of error conditions.  These errors can indicate, for example, unresponsive devices, or could indicate an illegal bus condition (such as clocking of data without having first seen a valid START signal).  At that price, no engineer or student should be without one.  And of course, it can be used to work on TWI and SMBus as well.

I used an EasyI2C(TM) unit recently to troubleshoot a 70" Sony HDTV.  The set had a blinking error light that hinted at an unresponsive I2C device somewhere deep inside, but gave no other information.  I first located the schematics for the set on the Web.  This helped me identify exactly where I could tap into the (several) I2C buses running throughout the set.  By simply attaching ground, SCK (clock) and SDA (data) from EasyI2C(TM) to each I2C bus, I was able to capture all bus traffic.  Bingo, it identified a bus that had unresponsive devices; specifically, EasyI2C(TM) told me that it saw START plus an address, but got a NAK back, meaning there was no working device available at that address.  Armed with that information, I was able to pinpoint the exact source of the problem in just a few minutes.

Something else that was great about EasyI2C(TM) was that it handles 400KHz bus speed without introducing clock-stretching and without missing a beat.  The Sony set actually had both 100KHz and 400KHz buses, so support for 400KHz turned out to be mission-critical (and the root cause).

Give the EasyI2C(TM) unit a try.  I've found it to be an invaluable tool and a real time saver for my engineering and repair work.  just $99 !

All Site contents Copyright (C) 2010, 2011 Xtreme Engineering LLC