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.
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.
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.
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”).
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.