Beagle Data Center Software Manual v2.20

9 MDIO Monitoring

The Beagle I2C/SPI/MDIO Protocol Analyzer is capable of monitoring MDIO at up to 2.5 MHz non-intrusively.

9.1 Performing a MDIO Capture

Here are the steps for starting an MDIO capture.

  1. Start the Beagle Data Center application.

  2. Connect the Beagle I2C/SPI/MDIO analyzer to the analysis computer. Make sure that the green indicator LED has illuminated.

  3. Connect the Beagle I2C/SPI/MDIO analyzer to the MDIO bus. The 10-pin ribbon cable can be connected directly, or the 10-pin split cable can be used to provide individual flying leads.

  4. Click Connection in the toolbar and connect to a Beagle I2C/SPI/MDIO analyzer.

  5. Select MDIO from the capture protocol pull-down menu.

  6. Click Settings in the toolbar and set the MDIO capture settings.

  7. Click on the MDIO tab in the transaction window in order to see MDIO specific data.

  8. Connect the Beagle I2C/SPI/MDIO analyzer to the target device.

  9. Click on Capture to start the data capture. Once the capture has started, the capture indicator will turn green and an informational transaction will appear in the transaction window which notes when the capture was started.

  10. To stop the capture, click on the Stop button.

9.2 MDIO Capture Settings

There are several MDIO capture settings that can be set by the user. These settings can be changed in the MDIO Capture Settings window (Figure 56). To open this window, click on the Settings button or go to Beagle | Settings… or use the keyboard shortcut <Ctrl>+T.

\includegraphics[clip=true]{mdio-settings}
Figure 56: MDIO Settings Dialog Window

Capture Data Limit

This option specifies the maximum amount of memory to allocate for the capture data. Enter a number in the Capture data limit field to set the size of the capture buffer. During capture, once this limit is exceeded, the capture will be automatically stopped.

Total Phase recommends that the maximum size allowed for a capture should be set to no more than half the available memory on the system. On an extremely busy computer, the capture limit should be set even lower to prevent problems. If the application starts swapping memory, incoming capture data may be lost.

Incoming Data Buffer Size

This option will specify the size of the operating system level USB buffer. See Section 4.13 for more information on this option.

Bit-Level Timing

The capture of the bit-level timing is optional. By not capturing bit-level timing data, the Data Center software will have improved performance, reduced memory usage and will be able to capture data for a longer period of time before running into the capture data limit.

To enable or disable the capture of Bit-Level Timing information, simply check or uncheck the box in the Settings window.

Sampling Rate

There are three different sampling rates which can be used to monitor the MDIO bus. As a rule of thumb, it is recommended that the sampling rate should be at least 4 times faster than the data rate of the monitored bus. For a 2.5 MHz MDIO bus, a sampling rate of 10 MHz would suffice.

To select a sampling rate, simply select the desired rate from the pull-down menu.

Target Power

It is possible to power a downstream target, such as an I2C or SPI EEPROM with the Beagle analyzer’s power (which is provided by the USB port). It is ideal if the downstream device does not consume more than 20-30 mA.

To enable or disable target power, check or uncheck the box in the Settings window.

9.3 Transaction Window

The transaction window (Figure 57) displays all the transactions that were captured on the MDIO bus in real time. When a transaction is selected in the transaction window, detailed information about that transaction is displayed in the Detailed window.

\includegraphics[clip=true]{mdio-transactions}
Figure 57: MDIO Transaction Window

In the MDIO transaction window, the transaction table provides the following information:

Index
The transaction index number. The beginning of the capture is considered index 0.

Time
The time that the frame was captured. The time counter starts at 0 when a capture is started. Every time a new capture is started, the time is reset to 0.

The time is provided in the following format: min:sec.ms.µs. The timestamp of the frame is displayed in nanosecond precision in the timing detailed view.

Duration (Dur)
The elapsed time that the frame was in the bus. The duration value displayed is shown in an abridged format. The full duration to nanosecond precision is displayed in the timing detailed view.

Error codes (Err)
Error codes listing abnormal conditions that occurred while capturing the frame. See Table 1 for the possible error codes.

Clause (Cls)
The clause of the frame. Will display either 22 or 45.

Opcode (Op)
The opcode of the frame. See Table 7 for the possible opcodes.

Table 7: MDIO opcodes

Code

Meaning

Description

A

Address

Set the register address (Clause 45 only)

W

Write

Write to a register

RI

Post Read Increment Address

Read then increment address counter (Clause 45 only)

R

Read

Read from a register

Address 1 (Ad1)
The first 5-bit address field in the frame. In Clause 22, this would be the PHY address. For Clause 45, this is the port address.

Address 2 (Ad2)
The second 5-bit address field in the frame. In Clause 22, this would be the register address. For Clause 45, this is the device address.

Data
The 16-bit data/address payload of the frame in hexadecimal format.

Register (Reg)
The address of the register accessed in this frame. For Clause 45 frames, the Data Center software will keep track of the address commands and will display the appropriate register address for the port and device addressed. If the frames where the address for the port and device is not in the capture, the Data Center software will not know the address of the register being accessed.

The format of the register address displayed can be toggled between decimal and hexadecimal format, by toggling the Show register as hex checkbox in the filters palette.

Summary
A text description of the opcode and the register address of the frame. Displays the name of the register as defined in the MDIO standard.

Delta Time and Data Payload Display

When moving the mouse over the transaction window, the transaction that the mouse pointer is over will be highlighted. The time difference between this transaction and the currently selected transaction will be displayed as “Delta time” in the status bar at the bottom of the application window. The time displayed will be the time difference between the start times of the two transactions. The summation of the Length (Len) field inclusively between the two selected transactions will be displayed as “Data payload” in the status bar next to the “Delta time”. Moreover, the calculated bandwidth between the selected transactions is also displayed after the “Data payload” in parenthesis.

The delta time and data payload will only be displayed when the two transactions are from the same capture session. So if you start then stop a capture, then start another capture, these statistics will only be displayed when both the selected transaction and the one the mouse is over are from the same capture session.

9.4 Detailed View

Details Mode

\includegraphics[clip=true]{mdio-details}
Figure 58: MDIO Details Pane - Details Mode

The Details mode (Figure 58) displays the fields of the MDIO frame. The display will show the value of each field and the interpretation of the value.

For Clause 22, the fields displayed are:

Start of Frame
The value of the start of frame field (ST) in binary form and the what clause the value indicates.

Opcode
The value of the opcode field in binary form and the meaning of the value.

PHY Address
The value of the PHY address field in hexadecimal.

Register Address
The value of the register address field plus the name on the register. This field is displayed in decimal or hexadecimal depending on the setting of the Show register as hex checkbox in the filters palette.

Turnaround
The value of the turnaround field (TA) in binary form plus whether the value is valid or not.

Data
The value of the 16-bit data field in hexadecimal.

For Clause 45, the fields displayed are:

Start of Frame
The value of the start of frame field (ST) in binary form and the what clause the value indicates.

Opcode
The value of the opcode field in binary form and the meaning of the value.

Port Address
The value of the port address field in hexadecimal.

Device Address
The value of the device address field in hexadecimal and the name of the device.

Register Address
The register address being accessed plus the name on the register. The register address is displayed in decimal or hexadecimal depending on the setting of the Show register as hex checkbox in the filters palette.

Turnaround
The value of the turnaround field (TA) in binary form plus whether the value is valid or not.

Data/Address
The value of the 16-bit data field (address field for Address opcodes) in hexadecimal.

Data Mode

The Data mode (Figure 59) provides a general hexadecimal and ASCII dump of the data payload of the transaction.

\includegraphics[clip=true]{mdio-data}
Figure 59: MDIO Details Window - Data Mode

The data is displayed in a standard hexdump format which includes:

Offset
The offset position of the first byte in a row in hexadecimal notation.

0 to F
Bytes 0 through 15 of the row in hexadecimal format.

ASCII
The bytes from the row displayed as ASCII characters. If the equivalent ASCII character is a non-printing character, a “.” is printed instead.

Timing Mode

The Timing Mode (Figure 60) provides bit-level timing for the data of the frame. Each byte of the frame appears as a row in this mode. All the bytes from the frame will be displayed in this mode, including start and stop conditions.

The first line of the table displays the frame timestamp as well as the frame duration, both to nanosecond precision.

Each row contains the following information:

\includegraphics[clip=true]{mdio-timing}
Figure 60: MDIO Details Window - Timing Mode

Offset
The offset position of the byte

Time
The time in nanoseconds from the start of the frame to the start of the byte.

Value
The hexadecimal value of the byte.

Timing
A graphic display of each individual bit of a byte. Each bit is displayed as being either high or low with the time in nanoseconds from the start of the current bit to the start of the subsequent bit.

The lengths of the timing blocks in the graph are not drawn to scale and are intended merely to provide a hint to the relative time scale of one bit time to the next.

There are a couple of things to note:

  • MDIO data is sent MSB first and LSB last. In the column header for the Timing column, the bit order is indicated to be b7 …b0.

  • The time displayed for the last bit of the frame is always zero. This is due to the fact that the bit times are measured between rising edges of the MDC line. The first bit time is measured from the first rising edge of the MDC line to the next rising edge. For the last bit of a frame, there may not be a subsequent rising edge of the MDC line until the next frame. Therefore, no bit time value can be determined for final bit of a frame.

9.5 Filtering a MDIO Capture

A MDIO capture can be filtered in real-time or after it has been completed. The Data Center software offers an extensive list of filters to help developers filter out extraneous data. All filters are non-destructive; developers are free to apply filters multiple times without losing data.

\includegraphics[clip=true]{mdio-filters}
Figure 61: MDIO Filters Palette

Show Register As Hex
Check this option to display the register addresses in the transaction window and in the Detail view in hexadecimal format. If this option is unchecked, the register addresses are displayed in decimal format. The Apply Filters button must be clicked for the setting of this option to take effect.

Minimum Index
The transaction index number must be greater than or equal to this integer in order to appear in the transaction window.

Maximum Index
The transaction index number must be less than or equal to this integer in order to appear in the transaction window.

Minimum Duration
An integer number that filters the transactions based on a minimum transaction duration in nanoseconds. If the user enters 8000, then a transaction’s duration must be greater than or equal to 8 microseconds in order to be included in the transaction window.

Maximum Duration
An integer number that filters the transactions based on a maximum transaction duration in nanoseconds. If the user enters 20000, then a transaction’s duration must be less than or equal to 20 microseconds in order to be included in the transaction window.

Addr1
The frame must be addressed to one of the specified MDIO PHY/port addresses in order to appear in the transaction window. Multiple addresses can be specified, separated by spaces.

The addresses shoud be specified in hexadecimal format.

Addr2
The frame must be addressed to one of the specified MDIO register/device addresses in order to appear in the transaction window. Multiple addresses can be specified, separated by spaces.

The addresses shoud be specified in hexadecimal format.

Register
The frame must be addressed to one of the specified register addresses in order to appear in the transaction window. Multiple register addresses can be specified, separated by spaces.

The addresses shoud be specified in decimal or hexadecimal format, depending on what the current register display setting is.

Data Pattern
The data payload of the transaction must match the given data pattern in order for the transaction to be included in the transaction window.

Please note that this filter may affect the performance of the application during a capture. Therefore, it may be necessary to wait until the capture is complete to use the data pattern filter.

See Section 5.2 for details on the syntax of the data pattern field.

Show Info
When checked, the transaction window will display all the information entries. These information entries include when the capture was started and stopped.

Clause
Filter the transactions based on the clause type. Unknown/Error clauses are partial frames where the complete start of frame was not captured so the clause could not be determined.

Opcode
Filter the transactions based on the opcode of the frame. Error opcodes are where the opcode field contains an unknown value (0x0 and 0x3 in Clause 22). Unknown opcodes are where only a partial frame was captured and the complete opcode field was not captured.

© 2008 Total Phase, Inc. All rights reserved.
Terms of Use | Privacy Notice
HOME | PRODUCTS | SALES | SUPPORT | COMPANY | CONTACT