Protocol Decoding
The ACTIVE-PRO software decodes protocols in two layers. Hardware-decoded protocols are framed by the FPGA inside the hardware pod, at full sample rate, before data is even sent to the PC. Software-decoded protocols are decoded by the host application from the captured logic or analog samples after they arrive.
On top of either layer, the PacketPresenter engine provides a third layer — application-level packet parsing with named fields, lookup tables, and graphing.
Assigning a Decoder to a Device Port
Open the Settings tab on the right-side panel. Each Active Debug Port device has its own decoder mode selector.
Active Debugger: One selector — AMode
ACTIVE-PRO and ACTIVE-PRO Ultra: Four selectors — AMode, BMode, CMode, DMode
Not all decoder modes are available on every port. SPI variants, LIN, DS101, and RS232 appear only in the AMode and CMode selectors. Ports B and D offer the full Active Debug Port, I2C, UART, EE101, CHSI, 1-Wire, and MDIO modes. The reason is hardware-level: LIN, DS101, and RS232 route through the analog input channels (CH1/CH2), which are only wired to ports A and C on the pod.
Select a mode from the drop-down. The waveform area updates immediately to show the appropriate channel rows for that port. To stop decoding on a port, set its mode to OFF.
Helpful Hint: To maximize capture performance, make sure that any channels not necessary for a trace are turned off.
Hardware-Decoded Protocols
These protocols are decoded by the FPGA at full sample rate. No host CPU is involved in framing — the FPGA sends complete decoded bytes to the PC.
Active Debug Port (2-Wire)
The recommended mode for the Active Debug Port. Uses a dedicated clock line and a data line. Data rate up to 80 Mbps. Compatible with the SPI peripheral on most microcontrollers.
Decoder mode: Active Debug Port (2-Wire)
With this mode selected, the device port shows named text channels and graphable value channels populated by your firmware's ACTIVE library calls. Channel names come from your firmware's ACTIVELabel() calls.
Active Debug Port (1-Wire UART)
Single-wire variant of the Active Debug Port. Uses your MCU's existing UART TX pin — no dedicated clock pin needed. Works at any baud rate that is an exact divisor of 30 MHz.
Decoder mode: Active Debug Port (1-Wire UART)
When to use: When you cannot spare a second GPIO pin for the clock signal, or when the only available debug output pin is a UART TX.
Active Debug Port (1-Wire SWV)
Active Debug Port data carried over the ARM Serial Wire Viewer (SWV/ITM) output — the dedicated debug output pin on ARM Cortex-M processors.
Decoder mode: Active Debug Port (1-Wire SWV)
When to use: On ARM Cortex-M targets where the SWV pin is available and you want to reserve all GPIO pins for other use.
I2C / SMBus
Decodes standard I2C and SMBus transactions. Displays the 7-bit address (R/W), data bytes, and ACK/NAK state for every transaction. SMBus devices operate correctly under the I2C decoder — no separate mode is needed.
Decoder mode: I2C
UART
The following UART decoder modes are available:
| Decoder mode | Description |
|---|---|
UART 8,N,1 |
Standard 8-bit, no-parity, 1-stop-bit UART |
UART 8,N,1 Inverted |
Inverted polarity — for RS-232 on single-ended logic pins |
UART 9,N,1 |
9-bit UART used in multi-drop/address-mode networks |
UART 9,N,1 Inverted |
Inverted 9-bit UART |
Baud rate: Enter the baud rate in the settings field next to the mode selector. Set to 0 to enable automatic baud-rate detection. The Auto-Detect button measures the baud rate from the currently captured signal — click it after capturing with mode set to 0 and it fills in the detected rate. The Auto-Baud feature captures inputs for 1 second and computes the baud rate from the signal.
Tip: Auto-baud works well for standard rates (9600, 115200, etc.). For custom rates, enter the exact value for best results.
SPI
Decodes SPI bus transactions. Four variants cover the common SPI mode combinations:
| Decoder Mode | Chip Select Polarity | Clock Active Edge |
|---|---|---|
| SPI (SS active low, SCK rising edge) | Active low | Rising |
| SPI (SS active low, SCK falling edge) | Active low | Falling |
| SPI (SS active high, SCK rising edge) | Active high | Rising |
| SPI (SS active high, SCK falling edge) | Active high | Falling |
How to choose: Check your device's datasheet for CPOL (clock polarity) and CPHA (clock phase). Most common devices use SS active low and rising edge (SPI mode 0).
Note: You must have SS enabled in the channel settings for SPI chip-select events (SS Active, SS Inactive) to be generated. These events are used by PacketPresenter definitions to detect packet boundaries.
EE101 Debug Protocol
Decodes EE101 legacy debug protocol frames.
Decoder modes: EE101 (2-Wire) and EE101 (1-Wire)
Software-Decoded Protocols
These protocols are decoded in the host application from the logic or analog sample data captured during the capture session. They require the corresponding logic or analog channels to be enabled and capturing.
Available on: ACTIVE-PRO · ACTIVE-PRO Ultra (require logic or analog inputs)
1-Wire (Dallas/Maxim)
Decodes Dallas/Maxim 1-Wire bus transactions including ROM commands, function commands, and read/write data.
Decoder mode: 1-Wire
LIN Bus
Decodes LIN bus frames. Requires an analog input — connect the LIN bus signal to Analog CH1.
Decoder mode: LIN (connect to Analog CH1)
RS-232
Decodes RS-232 serial signals through the analog input channels. RS-232 uses inverted, bipolar signaling (typically ±12 V). Connect the RS-232 signal to Analog CH1 and CH2 (differential pair, if used).
Decoder mode: RS232 (connect to Analog CH1 and CH2)
MDIO
Decodes MDIO (Management Data Input/Output) transactions used for Ethernet PHY register access.
Decoder mode: MDIO
CHSI
Decodes the CHSI clock-plus-data protocol.
Decoder mode: CHSI
DS101
Decodes the DS101 protocol using analog inputs in differential configuration.
Decoder mode: DS101 (connect to Analog CH1 and CH2)
Decoder Settings Reference
| Protocol | Setting field | Notes |
|---|---|---|
| UART (all variants) | Baud rate (0 = auto-detect) | Click Auto-Detect to measure from captured signal |
| I2C | None needed | Also handles SMBus devices |
| SPI | None (mode is in the decoder selection) | Choose the appropriate SPI variant |
| 1-Wire, LIN, RS232, MDIO, CHSI, DS101 | None |
List Tab Display Format
Decoded bytes in the List tab can be shown in several formats. Right-click a column header in the List tab to change the display format for that port's column:
| Format | Example |
|---|---|
| Hex | 0x41 |
| Decimal | 65 |
| ASCII | A |
| Binary | 01000001 |
| ASCII + Hex | A (0x41) |
This format setting is per-column and is saved in the capture file.
Waveform and List Synchronization
Clicking a decoded item in the waveform area scrolls the List tab to the corresponding row. Clicking a row in the List tab scrolls the waveform to that event's timestamp.
This bidirectional synchronization is always active — you never need to do anything to enable it. It is especially useful when you have a long bus trace and need to correlate specific events between the visual waveform display and the numeric/text data in the list.