Using the I2S / PCM Analyzer

Using the I2S / PCM Analyzer

The Saleae Logic software includes a software protocol analyzer for the I2S digital audio protocol.

The specification for the I2S audio protocol can be found from Sparkfun's website (document by Philips Semiconductors) below:

I2S bus specification

Decoding More Than Two Audio Channels at Once

The Saleae analyzer is designed to decode two-channel audio in the I2S format. It is possible to decode additional channels by using more than one instance of the I2S analyzer at the same time and by sharing the clock and frame signal between analyzers. Each instance of the analyzers can decode two channels of audio.

Mono Mode

The Saleae I2S analyzer does not support any Mono formats.

Common Problems

  • Unable to display results in a signed decimal format, even when the I2S settings have signed number selected. Unsigned numbers are always shown.

unsigned problem
  • This issue is solved by changing the display radix from ascii to decimal. Although a decimal number is shown, the single quotes indicate that the ascii display mode is active, but the number is considered a non-displayable character (in this case, outside of the low ascii range completely) so the text string defaults to unsigned decimal. Changing the display radix to decimal will show the signed number.

  • Decoder displays "Error: bits don't divide evenly between subframes" or decoder does not display the data correctly as shown below.

i2s error
  • In the figure above, the data bits are transitioning during the clock falling edge, but the I2S/PCM Analyzer is also set to read on the clock falling edge. That means the bits are being decoded at the exact moment the bits are changing. That will cause errors and will be very sensitive to changes in the sample rate. Change the I2S/PCM Analyzer setting to "Data is valid and should be read on the CLOCK rising edge."

Converting I2S/PCM Captures into WAV Files

For more information on this, please see the link below.