Datasheet
Application Note
www.tektronix.com/oscilloscopes6
attempting to write to the temperature sensor. It then checked
the temperature sensor at Address 19 and received back
the desired information. So, why isn’t the first temperature
sensor responding to the fan controller? Taking a look at the
part on the board we find that one of the address lines isn’t
soldered correctly. The temperature sensor was not able to
communicate on the bus and the unit was overheating as
a result. We’ve managed to isolate this potentially elusive
problem in a matter of a couple minutes due to the I
2
C trigger
and bus decoding capability of the oscilloscope.
In the example in Figure 7 we triggered on a write, but the
oscilloscope's powerful I
2
C triggering includes many other
capabilities:
Start - triggers when SDA goes low while SCL is high.
Repeated Start - triggers when a start condition occurs
without a previous stop condition. This is usually when a
master sends multiple messages without releasing the bus.
Stop - triggers when SDA goes high while SCL is high.
Missing Ack - slaves are often configured to transmit an
acknowledge after each byte of address and data. The
oscilloscope can trigger on cases where the slave does not
generate the acknowledge bit.
Address - triggers on a user specified address or any of the
pre-programmed special addresses including General Call,
Start Byte, HS-mode, EEPROM, or CBUS. Addressing can
be either 7 or 10 bits and is entered in binary or hex.
Data - triggers on up to 12 bytes of user specified data
values entered in either binary or hex.
Address and Data - this allows you to enter both address
and data values as well as read vs. write to capture the
exact event of interest.
These triggers allow you to isolate the particular bus traffic
you’re interested in, while the decoding capability enables you
to instantly see the content of every message transmitted over
the bus in your acquisition.
In this case, channel 1 (yellow) is connected to SCLK and
channel 2 (cyan) to SDA. The purple waveform is the I
2
C bus
we’ve defined by inputting just a few simple parameters to
the oscilloscope. The upper portion of the display shows the
entire acquisition. In this case we’ve captured a lot of bus idle
time with a burst of activity in the middle which we’ve zoomed
in on. The lower, larger portion of the display is the zoom
window. As you can see, the oscilloscope has decoded the
content of each message going across the bus. Buses use
the colors and marks in Table 1 to indicate important parts of
the message. Taking a look at the acquired waveforms, we
can see that the oscilloscope did indeed trigger on a Write to
address 18 (shown in the lower left of the display). In fact, the
fan speed controller attempted to write to address 18 twice,
but in both cases it did not receive an acknowledge after
Table 1. Bus conditions.
Bus Condition Indicated by:
Starts are indicated by vertical green bars. Repeated
starts occur when another start is shown without a
previous Stop.
Addresses are shown in yellow boxes along with a
[W] for write or [R] for read. Address values can be
displayed in either hex or binary.
Data is shown in cyan boxes. Data values can be
displayed in either hex or binary.
Missing Acks are indicated by an exclamation point
inside a red box.
Stops are indicated by red vertical bars.