Introduction

The most basic function of serial channels is proper transfer of data patterns. Often, the first step in debugging these transfers is to ensure that the transmitted data meets expectations. Teledyne LeCroy’s WaveJet Touch oscilloscope provides serial triggering capabilities for the I2C, SPI, and UART protocols to aid in isolation of specific portions of serial packets. Isolation of the data permits verification of proper transfers and allows for further measurements to be made using the oscilloscope’s toolset.

Using Serial Triggering

For this demonstration, Channels 1 and 2 of a WaveJet Touch are fed with an I2C serial data signal. Data is on Channel 1 (yellow) and clock is on Channel 2 (magenta). The initial oscilloscope setup is shown in Figure 1.

Figure 1:

The initial setup for an I2C serial signal. Data is on Channel 1 (yellow) and clock is on Channel 2 (magenta)

Touch the front-panel Trigger Setup button to bring up the corresponding menu on the touch screen. Next, touch the Type button; the Next button at bottom brings up successive pages of trigger types. The fourth page carries the serial protocol triggers. Touching the I2C button brings up a Trigger button where one selects what attribute of the I2C signal to trigger on. Options include:

  • Start
  • Stop
  • No ACK
  • Restart
  • EEPROM Data Read
  • 7-Bit Address & Data
  • 10-Bit Address & Data

At the bottom of the Trigger menu is a button labeled I2C Setting, from which triggering options may be further refined, as shown in Figure 2.

Figure 2:

The I2C-specific portion of the Trigger menu, where signal and channel designations are defined as well as the type of coupling

The Signal button toggles between SDA (data signal) and SCL (clock signal). The Source button provides a choice of all four channels plus a front-panel Ext input (or Ext/10). Coupling options include AC, DC, HF Reject, LF Reject, and DC Noise Reject.

A handy tool on the Trigger menu is the Show Chart button, which brings up a context-sensitive timing chart that is reflective of the trigger setup for the serial protocol in effect. In Figure 3, the timing chart shows that the current trigger is on Restart.

Figure 3:

The Trigger menu’s Show Chart button brings up a context-sensitive timing chart for the trigger setup and serial protocol in effect

In setting up triggering on serial signals such as I2C, it is important to remember to set up trigger levels for both the Data and Clock channels.

Triggering on Specific Packet Content

When using either the 7-bit Address & Data or the 10-Bit Address & Data triggering options, the user may set specific content to be triggered on for either address or data. Addresses can be set to read, write, or R/W for any hex combinations or “don’t care”. For data patterns, the data length can be set from one to five bytes; Byte 0 through Byte 5 can also be set to any hex combination or “don’t care”.

The Show Chart button will now bring up a timing chart that reflects the settings that have been made. Note that the trigger status bar below the graticule captures and displays the current trigger settings. In Figure 4, an I2C signal with known data content (“LeCroy I2C”) is being sent. The oscilloscope is set to trigger on a 10-bit Address & Data with the data values corresponding to the first five characters of the string (“-LeCr”).

Figure 4:

For triggering on 7- or 10-Bit Address and Data, users may dial in specific hex values for either address or data. The Show Chart button now opens a timing chart reflecting these inputs

Conclusion

The WaveJet Touch oscilloscope offers flexible serial triggering options that aid in debugging of UART, SPI, or I2C channels. The oscilloscope can be set to trigger on various signal attributes or on specific 7- or 10-bit address or data values.