Datasheet

Application Note
www.tektronix.com/oscilloscopes8
Working with SPI
Using the front panel Bus buttons we can define an SPI
bus by simply entering the basic parameters of the bus
including which channels SCLK, SS, MOSI, and MISO are on,
thresholds, and polarities (see Figure 10).
As an example, consider the embedded system in Figure 11.
An SPI bus is connected to a synthesizer, a DAC, and some
I/O. The synthesizer is connected to a VCO that provides a
2.5 GHz clock to the rest of the system. The synthesizer is
supposed to be programmed by the CPU at startup. However,
something isn’t working correctly as the VCO is stuck at its rail
generating 3 GHz. The first step in debugging this problem is
to inspect the signals between the CPU and the synthesizer
to be sure the signals are present and there are no physical
connection problems, but we don’t find anything wrong. Next
we decide to take a look at the information being transmitted
across the SPI bus to program the synthesizer. To capture
the information we set the oscilloscope to trigger on the
synthesizer’s Slave Select signal going active and power up
the DUT to capture the start up programming commands. The
acquisition is shown in Figure 12.
Channel 1 (yellow) is SCLK, channel 2 (cyan) is MOSI and
channel 3 (magenta) is SS. To help determine if we’re
programming the device correctly we take a look at the data
sheet for the synthesizer. The first three messages on the
bus are supposed to initialize the synthesizer, load the divider
ratio, and latch the data. According to the spec, the last nibble
(single hex character) in the first three transfers should be 3, 0,
and 1, respectively, but we’re seeing 0, 0, and 0.
Figure 12. Acquiring synthesizer configuration messages off the SPI bus.
Figure 11. Synthesizer controlled via SPI.
Figure 10. SPI bus setup menu.
Synthesizer
VCO
SCLK
MOSI
MOSI
MOSI
SS1
DAC
SCLK
I/O
SCLK
SS2
SS3
8 bit CPU
(Master)
SS1
SS2
SS3
SCLK
MOSI