Bus Transactions
Overview
The Transactions view provides real-time monitoring and analysis of bus communications including I2C, SPI, UART, and Socket transactions. This is essential for debugging communication issues, verifying protocol correctness, and understanding device behavior.
Accessing Transactions
-
Click Transactions in the navigation panel
-
Transaction log displays all recent bus activity
-
Filter by transaction type or other criteria
Supported Transaction Types
I2C (Inter-Integrated Circuit)
Common Uses:
-
Sensor communication
-
EEPROM access
-
PMBus power management
-
RTC (Real-Time Clock)
-
I/O expanders
Transaction Details:
-
Address: 7-bit or 10-bit device address
-
Operation: Read, Write, or Combined
-
Data: Bytes transmitted/received
-
Status: ACK/NACK, success/failure
-
Timing: Start, stop, duration
SPI (Serial Peripheral Interface)
Common Uses:
-
Flash memory
-
ADC/DAC chips
-
Display controllers
-
SD cards
-
Wireless modules
Transaction Details:
-
Chip Select: Which SPI device
-
Mode: Clock polarity/phase
-
Data: MOSI (Master Out Slave In)
-
Data: MISO (Master In Slave Out)
-
Clock Speed: SCK frequency
-
Bit Order: MSB/LSB first
UART (Universal Asynchronous Receiver-Transmitter)
Common Uses:
-
Serial console
-
GPS modules
-
Bluetooth modules
-
Debug interfaces
-
AT command devices
Transaction Details:
-
Direction: TX (transmit) or RX (receive)
-
Data: Bytes sent/received
-
Baud Rate: Communication speed
-
Settings: Data bits, parity, stop bits
-
Errors: Framing, parity, overrun
Socket (Network)
Common Uses:
-
TCP/IP communication
-
UDP packets
-
Network protocols
-
Remote control
-
Data streaming
Transaction Details:
-
Protocol: TCP or UDP
-
Address: IP address and port
-
Direction: Send or receive
-
Data: Packet contents
-
Status: Connection state
Transaction Log View
Grid Columns
|
Column |
Description |
|---|---|
|
Timestamp |
Time of transaction |
|
Type |
I2C, SPI, UART, Socket |
|
Direction |
Read, Write, Send, Receive |
|
Address/Channel |
Device address or channel name |
|
Data |
Hexadecimal bytes |
|
Status |
Success, Error, ACK, NACK |
|
Duration |
Time elapsed |
|
Details |
Additional information |
Auto-Scroll
-
Enabled: Log automatically scrolls to newest transactions
-
Disabled: Stay at current position for analysis
-
Toggle with checkbox or button in toolbar
Transaction Limit
-
Log maintains recent transactions (configurable)
-
Oldest transactions removed automatically
-
Prevents memory issues with long-running sessions
-
Adjust limit in settings (default: 1000 transactions)
Filtering Transactions
Filter by Type
Show only specific bus types:
-
Use filter dropdown or context menu
-
Select I2C, SPI, UART, or Socket
-
Or check/uncheck type checkboxes
Example Uses:
-
Debug I2C sensor without SPI noise
-
Monitor UART console separately
-
Track network traffic independently
Filter by Address/Channel
Show transactions for specific device:
-
Enter address or channel name in filter
-
Use hexadecimal (0x3C) or decimal (60)
-
Or use channel name (I2C_BUS_0)
Example:
Filter: 0x3C → Shows only I2C address 0x3C transactions
Filter: I2C_BUS_0 → Shows all transactions on I2C_BUS_0
Filter: UART_DEBUG → Shows UART debug port activity
Filter by Direction
Read vs Write:
-
Filter Read to see device responses
-
Filter Write to see host commands
-
Show both for complete picture
Filter by Time
Show transactions in time range:
-
Enter start time
-
Enter end time
-
Apply filter
Or use relative time:
-
Last 1 minute
-
Last 5 minutes
-
Last hour
Search Data Content
Find specific byte patterns:
-
Enter hex pattern (e.g.,
AA BB CC) -
Transactions containing pattern highlighted
-
Use for finding specific commands or responses
Transaction Details
View Full Transaction
Expand transaction:
-
Double-click transaction row
-
Or click expand icon
-
Detailed view shows:
-
Complete byte sequence
-
Timing diagram (if available)
-
Error information
-
Related transactions
-
I2C Transaction Details
Read Transaction:
START → ADDRESS + W → ACK → REGISTER → ACK → RESTART → ADDRESS + R → ACK → DATA → NACK → STOP
Write Transaction:
START → ADDRESS + W → ACK → REGISTER → ACK → DATA → ACK → STOP
Displayed Information:
-
Address: 7-bit address (displayed as 8-bit with R/W bit)
-
Repeated Start: Indicated if present
-
Clock Stretching: If device held SCL low
-
Errors: NACK on address, NACK on data
SPI Transaction Details
Transaction:
CS LOW → CLOCK PULSES → DATA EXCHANGE → CS HIGH
Displayed Information:
-
MOSI Data: Bytes sent from master
-
MISO Data: Bytes received from slave
-
Mode: SPI mode (0-3) indicating clock polarity/phase
-
Speed: Actual SCK frequency
-
Bit Order: MSB or LSB first
UART Transaction Details
Frame Format:
START BIT → DATA BITS → PARITY BIT (optional) → STOP BITS
Displayed Information:
-
Baud Rate: Communication speed (9600, 115200, etc.)
-
Format: 8N1, 8E1, 7N1, etc. (data-parity-stop)
-
Direction: TX or RX
-
Errors: Frame error, parity error, overrun
Socket Transaction Details
TCP/UDP Packet:
Displayed Information:
-
Protocol: TCP or UDP
-
Source: IP:Port
-
Destination: IP:Port
-
Payload: Data bytes
-
Flags: SYN, ACK, FIN, etc. (TCP)
-
Length: Packet size
Transaction Analysis
Timing Analysis
Measure bus performance:
-
Select transactions
-
View timing column
-
Identify slow transactions
-
Check for delays between transactions
Common Issues:
-
Clock Stretching: Slave not ready (I2C)
-
Timeouts: No response from device
-
Slow Responses: Device processing delay
Error Detection
Transaction errors highlighted:
-
NACK (I2C): Device didn't acknowledge
-
Timeout: No response within expected time
-
Framing Error (UART): Invalid start/stop bits
-
Parity Error (UART): Checksum mismatch
-
Connection Lost (Socket): Network disconnection
Error Indicators:
-
Red text or background
-
Error icon in status column
-
Details in error column
Pattern Recognition
Identify communication patterns:
-
Watch for repeated transactions
-
Identify command-response pairs
-
Recognize polling intervals
-
Detect protocol violations
Examples:
-
Sensor read every 100ms
-
Configuration write followed by readback verify
-
Heartbeat messages
-
Burst transfers
Sending Custom Commands
I2C Commands
Send I2C transaction via channel:
-
Use Channel List to find I2C channel
-
Configure transaction parameters:
-
Address: Device I2C address
-
Data to write
-
Read length (if reading)
-
Via AccordionShell:
# I2C write
AccordionShell i2c --channel "I2C_BUS_0" --address 0x3C --data "01 02 03"
# I2C read
AccordionShell i2c --channel "I2C_BUS_0" --address 0x3C --read --length 4
# I2C write-read
AccordionShell i2c --channel "I2C_BUS_0" --address 0x3C --write "10" --read --length 2
SPI Commands
Send SPI transaction:
Available via AccordionShell or custom modules.
Example:
# SPI transfer (write and simultaneously read)
# Typically requires custom module or channel implementation
UART Commands
Send UART data:
-
Find UART TX channel
-
Set value to string or byte array
-
Data transmitted on UART
Or use byte stream channel:
AccordionShell stream --channel "UART_TX_STREAM" --file "data.bin"
Socket Commands
Send network data:
-
Find socket channel
-
Write data to send
-
Monitor response in transaction log
Transaction History
Save Transaction Log
Export transactions:
-
Right-click transaction grid
-
Select "Export to Excel" or "Export to CSV"
-
Choose filename
-
All visible transactions exported
Use Cases:
-
Archive for later analysis
-
Share with team
-
Import into analysis tools
-
Documentation
Clear Transaction Log
Remove old transactions:
-
Click "Clear History" button
-
Or right-click grid → "Clear All"
-
Confirms before clearing
-
New transactions continue to appear
Transaction History Limit
Configure retention:
-
Ribbon → Chart → Lookback Points (applies to transactions too)
-
Enter number of transactions to keep
-
Default: 1000 transactions
-
Increase for longer sessions, decrease for performance
Real-Time Monitoring
Live View
Monitor bus activity in real-time:
-
Ensure auto-scroll enabled
-
Watch transactions as they occur
-
Filter to focus on relevant transactions
-
Pause scrolling to examine specific transaction
Performance Impact
Considerations:
-
High Traffic: May impact GUI responsiveness
-
Filtering: Reduces displayed transactions, improves performance
-
Disable When Not Needed: Turn off transaction monitoring if not required
Trigger on Event
Alert on specific transaction:
Not directly supported in GUI. Use external monitoring or custom code to watch transaction log and trigger alerts.
Advanced Features
Transaction Grouping
Group related transactions:
-
Drag "Channel" column to group area
-
Transactions organize by bus/channel
-
Expand/collapse groups
-
Easier to track multiple buses
Transaction Timing Diagram
Visual representation:
Some transaction types may support timing diagram view:
-
Shows signal levels over time
-
Indicates clock and data
-
Highlights start/stop conditions
Protocol Decoding
Higher-level interpretation:
For some protocols, raw bytes decoded to meaning:
-
PMBus: Register names and values
-
SMBus: Commands and parameters
-
Custom Protocols: If decoder loaded
Common Workflows
Debug I2C Communication
1. Navigate to Transactions
2. Filter: I2C
3. Enable auto-scroll
4. Trigger I2C operation from Channels
5. Watch for transaction
6. Check for ACK/NACK
7. Verify data bytes
Verify SPI Flash Write
1. Filter: SPI, Chip Select = Flash
2. Clear transaction log
3. Perform write operation
4. Verify write command (e.g., 0x02)
5. Verify address bytes
6. Verify data bytes
7. Check for correct CS timing
Monitor UART Console
1. Filter: UART, Channel = DEBUG_UART
2. Filter Direction: RX (receive)
3. Watch console output
4. Look for error messages
5. Export log for analysis
Analyze Network Protocol
1. Filter: Socket, Port = 1234
2. Group by Direction
3. Identify command packets (TX)
4. Identify response packets (RX)
5. Verify protocol sequence
6. Check timing between packets
Troubleshooting
Transaction Log Empty
Problem: No transactions appear
Solutions:
-
Verify connection to device
-
Check that bus activity is occurring
-
Ensure transaction monitoring enabled
-
Check filter settings (may be hiding all)
-
Verify module with bus support loaded
Too Many Transactions
Problem: Log fills quickly, hard to find relevant data
Solutions:
-
Use filtering to show only needed bus
-
Filter by address/channel
-
Reduce transaction history limit
-
Export and clear periodically
-
Disable monitoring when not debugging
Missing Transaction Details
Problem: Transaction shows but details incomplete
Solutions:
-
Expand transaction for full details
-
Check if protocol decoder available
-
Verify hardware captured full transaction
-
Review logs for errors
Performance Degradation
Problem: Application slow with transactions enabled
Solutions:
-
Reduce transaction history limit
-
Increase polling interval on Channels page
-
Filter to show fewer transactions
-
Clear transaction log
-
Close transaction view when not needed
Tips and Best Practices
-
Filter Aggressively: Show only what you need
-
Clear Regularly: Don't let log grow indefinitely
-
Export Before Clearing: Save important sessions
-
Use Auto-Scroll Wisely: Disable when analyzing past transactions
-
Group by Channel: Easier to track multiple buses
-
Watch for Errors: Red highlighted transactions indicate issues
-
Correlate with Channels: Trigger from channel, watch in transactions
-
Time Sync: Use timestamp to correlate with external events