Datasheet
www.tektronix.com/oscilloscopes 5
Debugging Serial Buses in Embedded System Designs
the I
2
C bus, so we decide to set up a trigger event to look
for a write to address 18 (the fan speed controller polling the
sensor for the current temperature). The triggered acquisition
is shown in the screenshot Figure 7.
Working with I
2
C
With the optional serial triggering and analysis capability,
Tektronix oscilloscopes become a powerful tool for embedded
system designers working with I
2
C buses. The front panel has
Bus buttons that allow the user to define inputs to the scope
as a bus. The I
2
C bus setup menu is shown in Figure 5.
By simply defining which channels clock and data are on,
along with the thresholds used to determine logic ones
and zeroes, you’ve enabled the oscilloscope to understand
the protocol being transmitted across the bus. With this
knowledge, the oscilloscope can trigger on any specified
message-level information and then decode the resulting
acquisition into meaningful, easily interpreted results. Gone are
the days of edge triggering, hoping you acquired the event of
interest, and then manually decoding message after message
while looking for the problem.
As an example, consider the embedded system in Figure 6.
An I
2
C bus is connected to multiple devices including a
CPU, an EEPROM, a fan speed controller, a digital to analog
converter (DAC), and a couple of temperature sensors.
This instrument was returned to engineering for failure analysis
as the product was consistently getting too hot and shutting
itself off. The first thing to check is the fan controller and the
fans themselves, but they both appear to be working correctly.
The next thing to check for is a faulty temperature sensor.
The fan speed controller polls the two temperature sensors
(located in different areas of the instrument) periodically and
adjusts the fan speed to regulate internal temperature. We
are suspicious that one or both of these temperature sensors
is not reading correctly. To see the interaction between the
sensors and the fan speed controller, we simply need to
connect to the I
2
C clock and data lines and set up a bus.
We know that the two sensors are addresses 18 and 19 on
Figure 5. I
2
C bus set-up menu.
Figure 6. I
2
C bus example.
Figure 7. I
2
C address and data bus waveform decoding.
CPU
SCLK (clock)
SDA (data)
EEPROM
DAC
Fan Speed Controller
Temperature Sensor 1
Temperature Sensor 2