Total Phase Center Software Manual v4.20

7 I2C Monitoring

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

Please note that captured I2C data is 9 bits wide because the ninth bit is the ACK/NACK bit to indicate whether the data was received properly. For this reason, I2C data will appear differently in the General views.

7.1 Performing an I2C Capture

Here are the steps for starting an I2C capture.

  1. Start the Data Center application.

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

  3. Connect the Beagle I2C/SPI analyzer to the I2C 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 the Connect to Analyzer… button in the toolbar and connect to a Beagle
    I2C/SPI analyzer.

  5. Make sure I2C is selected in the Protocol Lens pull-down menu under the Transaction window.

  6. Click Device Settings in the toolbar and set the I2C capture settings. Make sure I2C is selected in the Capture Protocol pull-down menu.

  7. Connect the Beagle I2C/SPI analyzer to the target device.

  8. Click the Run Capture button 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.

  9. To stop the capture, click on the Stop Capture button.

7.2 I2C Device Settings

The I2C device settings described below can be configured in the Device Settings dialog (Figure 49). To open this dialog, click on the Device Settings… button.

The Device Settings dialog can also be accessed through Analyzer | Device Settings….

\includegraphics[clip=true]{i2c-device-settings}
Figure 49: I2C Tab of the Device Settings Dialog

Sampling Rate

There are three different sampling rates which can be used to monitor the I2C 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 400 kHz I2C 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.

I2C Pull-ups

There is a 2.2K resistor on each I2C line (SCL, SDA). The lines are effectively pulled up to 3.3V, so that results in approximately 1.5 mA of pull-up current. For more information about the pull-up resistors, please consult the Beagle I2C/SPI Protocol Analyzer datasheet.

To enable or disable the I2C pull-ups, check or uncheck the box in the Settings window.

7.3 Transaction Window

The I2C Transaction window (Figure 50) displays all the transactions that were captured on the I2C bus in real time. When a transaction is selected in the Transaction window, detailed information about that transaction is displayed in the Info pane.

\includegraphics[clip=true]{i2c-transactions}
Figure 50: I2C Transaction Window

For a general description of the Transaction window, see Section 5.1. The general description encompasses the behavior of the I2C Transaction window, with the following modifications:

Start/Stop (S/P)
This column is unique to the I2C Transaction window. It indicates whether the start and stop conditions were observed for each record. S indicates the start condition; P indicates the stop condition. Transactions that have no stop condition (in the case of repeated start conditions) will have only S displayed.

Address (Addr)
The I2C address of the slave device that was the target of the transaction. This number is in hexadecimal. “None” is displayed for transactions that are zero bytes long, and thus have no address field. An asterisk (*) following the address indicates that the address byte was NACK’ed. In certain situations, an I2C transaction may not specify the lowest 8 bits of a 10-bit slave address. In these situations, the Address (Addr) column will render the incomplete addresses as 0XX, 1XX, 2XX, or 3XX, depending on the value of the first two address bits.

Data
In the I2C Data column, NACK’ed bytes are followed by an asterisk (*) to differentiate them from ACK’ed bytes.

7.4 Details Window

The Details window has some extra features to accommodate the I2C protocol. Refer to section 5.2 for an overview of the Details View, including the Data and Timing panes.

Data Pane

The I2C Data pane (Figure 51) provides a hexadecimal and ASCII dump of the contents of the transaction. Please note that it does not include the byte(s) which are composed of the slave address and read/write bit. In the I2C Data pane, NACK’ed bytes are rendered in red text to differentiate them from ACK’ed bytes.

\includegraphics[clip=true]{i2c-data}
Figure 51: I2C Details Window - Data Pane

Timing Pane

In the I2C Timing pane (Figure 52), all the bytes from the transaction will be displayed in the pane, including start and stop conditions.

\includegraphics[clip=true]{i2c-timing}
Figure 52: I2C Details Window - Timing Pane

There are a few additional things to note:

  • I2C 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 timing display for I2C actually shows 9 bits. The last bit is the ACK/NACK bit.

7.5 Filtering an I2C Capture

The following is a description of the parameters that are specific to the I2C protocol. For a description of the General parameters, or for information on how to operate the Filter pane, refer to Section 5.5. The I2C Filter pane (Figure 53) has protocol-specific filtering options under the Bus caption in the pane.

\includegraphics[clip=true]{i2c-filter-panel}
Figure 53: I2C Filter Pane

7-bit Addresses

Filter the transactions based on the I2C slave address of the message. The addresses should be specified in hexadecimal format. Multiple device addresses should be separated by commas or spaces. Note that this parameter only filters transactions that were addressed to slaves with 7-bit addresses.

10-bit Addresses

Filter the transactions based on the I2C slave address of the message. The addresses should be specified in hexadecimal format. Multiple device addresses should be separated by commas or spaces. Note that this parameter only filters transactions that were addressed to slaves with 10-bit addresses.

Partial 10-bit addresses can be specified as well using the 0XX, 1XX, 2XX, or 3XX notation as seen in the Transaction window.

Read

Unchecking this option will hide all Read transactions.

Write

Unchecking this option will hide all Write transactions.

Address ACKed

Unchecking this option will hide all transactions in which the address was ACK’ed.

Address NACKed

Unchecking this option will hide all transactions in which the address was NACK’ed.

Unknown Address

Unchecking this option will hide all transactions that have an unknown address. An unknown address can occur when a transaction did not contain any data or encountered an error while transmitting the address.

© 2010 Total Phase, Inc. All rights reserved.
Terms of Use | Privacy Notice | Site Map
HOME | PRODUCTS | SOLUTIONS | SALES | SUPPORT | BLOG | COMPANY | CONTACT