Teledyne LeCroy oscilloscopes can be equipped with software-based decoders for a large number of industry-standard serial-data protocols such as I2C, SPI, CAN, USB, and Ethernet, for example. Although many protocols are supported with dedicated decode tools, still many have no decode tools available. Additionally, many designers develop custom or proprietary protocols for which no decode tools exist. Teledyne LeCroy now offers the industry’s first configurable protocol decode capabilities for signals using Manchester and NRZ encoding schemes, enabling unprecedented debug capabilities for systems using a variety of protocols, both standard and custom. What follows is a tutorial in their usage.
Start by acquiring a signal. For purposes of this document, the signal is a 1-Mb/s, NRZ-encoded signal representative of a custom or proprietary protocol, as shown in Figure 1. The steps and process for a Manchester signal are much the same.
Once the signal is acquired and suitably displayed on the oscilloscope screen, use the Analysis drop-down menu at the top of the screen to access the Serial Decode dialog box, as shown in Figure 2.
Pressing the Protocol button in the Decode 1 row brings up a popup menu of different protocols (what appears in the menu is determined by which serial-decode software options are installed in the oscilloscope). The decode options are shown in Figure 3:
Select NRZ in the Protocol popup menu. Next, designate the source of the on-screen trace in the Data column (in this case, the trace is stored in Memory 1 or M1). In the Serial Decode dialog box, assign the on-screen trace to Decode 1 by turning Decode 1 on. Then press the Setup button for Decode 1, which opens the Decode Setup tab in the dialog box.
The Three Tabs: Basic, Decode, and Levels
Upon entering the Decode Setup tab, note its layout as shown in Figure 4:
Be sure to check the View Decode box. Note that Source 1 (Data) is set to M1 and the Protocol to NRZ. The Basic tab will be open on the right by default. Try switching between the Basic, Decode, and Levels tabs and come back to the Basic tab for the next section of the tutorial.
The Basic Tab
The Basic tab, shown at right in Figure 4, provides all of the fundamental controls required to allow proper bitlevel decoding. The configurable Manchester and NRZ decoders support a wide range of bit rates. Input the appropriate Bit Rate using the Bit Rate field in the Physical Layer portion of the Basic tab. The Timeout Definition for the gap between bursts comprises two parameters, Units and # Bits. The former can be set to either Bits or Seconds. If Bits is chosen, the range is from 1 to 100. If Seconds is used, the range is from 1 to 99.99 μs.
The Idle State, which complements the Timeout Definition parameters, may be set to either IdleHigh, IdleLow, or Don’t Care. Setting the Idle State helps to precisely define the separation gap between data bursts.
For NRZ, the Polarity may be set to either Low = 0 or Low = 1. For Manchester, it may be set to either falling = 0 or falling = 1. Manchester protocol logic levels of 0 or 1 are determined by transitions of edges, while NRZ protocol logic levels are determined by voltage levels. In both cases, the Polarity setting determines whether an edge falling through the threshold level is decoded as a logical 0 or a logical 1.
The next section of this tutorial will cover the Decode tab. But to ensure that the bit-level decode is correct, click on the Decode tab and temporarily set the Data Mode to Words. Then zoom in on a portion of the decoded signal by drawing a rectangle around it on the screen. This opens a zoomed view of that portion as shown in the lower portion of the screen capture in Figure 5.
Note that in the zoomed view Z1, which corresponds to the highlighted portion in M1, all of the bit transitions are aligned with the signal transitions and the logical interpretation of the bits is consistent to the settings made at the physical level in the Basic tab. In this case, Polarity is set to physical Low = 1.
Tap the Z1 annotation box and uncheck Trace On at the upper left. Close the Zoom dialog and reopen the Decode Setup dialog by tapping the NRZ data table. On the Decode tab, set Data Mode back to Words.
The Decode Tab
The next series of steps will cover the Decode tab (Figure 6), where decode at the word level is set up. First, note that when the Data Mode is switched to Bits, all of the word-level parameters on the tab are greyed out. Switching the Data Mode back to Words makes them all active.
The First Transition Used (FTU) parameter accounts for items that may precede the actual data payload. These might include such elements as a preamble or a synchronization sequence. The default setting for FTU is zero; it can range in increments of one to a maximum of 400.
The Bit Stretch Tolerance parameter comes into play more directly in Manchester decoding, where transitions often occur at mid-bit. Due to hardware or signal-propagation issues, these mid-bits may not be perfectly equidistant. This parameter is adjusted to better decode jittery signals. After setting the Bit Rate on the Basic tab, the Bit Stretch Tolerance may require adjustment from its default setting of 20% to achieve stable decoding.
At the bottom of the Decode tab is a number of parameters for Grouping of Bits into Words. Figure 7 shows the 1 M-bit/s NRZ-encoded signal grouped into its constituent parts.
The first step in the process is to ensure that the Data Mode is set to Words. Both the NRZ and Manchester provide the same tools and capabilities to group bits into Sync Bits, PrePad, Data Bits, and PostPad. PrePad bits (from zero to 32) might comprise addresses, preambles, subaddresses, or other content. In Figure 7, they are the portions of the bit stream seen with a purple overlay. Data bits, in numbers from 1 to 32, comprise single words. They are seen with a blue overlay. PostPad bits serve to group information following the data bits. Numbering from zero to 32, PostPad bits can represent a CRC, a checksum, or other protocol constructs. PostPad bits are displayed with a yellow overlay.
The Level Tab
The last of the three tabs in the Decode Setup dialog box is the Level tab, shown in Figure 8.
Levels can be set using either percentage or absolute voltage values as determined by the Level Type setting. The Level setting itself determines the threshold that transitions must cross to be counted as transitions. The default value is 50% or 1.5 V for percentage and absolute level types, respectively.
Hysteresis settings are used to account for noisy signals with spikes that may create false transitions if they cross the Level threshold. It appears as a blue-shaded band centered vertically on the Level setting. The default Hysteresis value is 15%, but it may be varied from zero to 50%.
Teledyne LeCroy’s configurable Manchester and NRZ decoders are extremely capable tools, enabling users to explore the intricacies of signals encoded with these schemes. Armed with a bit of foreknowledge of the signal under test, users may exploit the decoders’ nearly unlimited flexibility with respect to signal parameters to cleanly decode and display signals and extract data relative to their physical characteristics.