Jump to content
  • 0

Are these I2S errors data acquisition errors, or real I2S errors?


Question

Posted

Hello,

I'm using the Digilent AD3 to analyze I2S for the first time.  So far, I've only used to as an oscilloscope.  The I2S feature of the logic analyzer looks very cool, but I'm still working to figure everything out.

I've attached 3 files:

  1. I2S_capture_for_digilent.dwf3logicacq - this is the data I captured with the AD3.
  2. I2S_captured_with_DA3.jpg - this is a screenshot of the I2S captured with the AD3.  I've attached this incase in case I2S_capture_for_digilent.dwf3logicacq isn't loadable (this is my first time saving a capture).
  3. sinetone.jpg - this is a screenshot of a sine table (from my source code), which I'm playing out over I2S.  I couldn't fit the entire sine table in the screenshot, but it's symmetric about zero, so the missing negative values are obvious, given that all of the positive values are there.

I have a couple of questions:

  1. Occasionally the decoded 2s compliment values show up as "Error".  Is this a data capture issue or a real error with my I2S data?
  2. The I2S values don't match the the hard-coded values that I have in my source code for the sine table.  For example, my sine table has values 6420363, 4342263, 2189866, 0.....  The corresponding I2S values captured with AD3 are 6420224, 4342016, 2189824, 0.  Is this to be expected?

Aside from these questions, any other helpful tips related to capturing I2S with the AD3 (or pointers to videos on the topic) are appreciated!

Thanks for your help,
Rob


 

sinetone.jpg

I2S_captured_with_DA3.jpg

I2S_capture_for_digilent.dwf3logicacq

8 answers to this question

Recommended Posts

  • 0
Posted

Hi @wolfie

The interpreter seems to me correct.
For instance the following 32bit sample is 2189824 0x216A00 b00000000001000010110101000000000
The corresponding sample in the code is  2189866 0x216A2A b00000000001000010110101000101010

Your generator masks the last 8 bits to 0, so instead of 2189866 it outputs 2189824

image.png

image.png

  • 0
Posted

Hi @attila,

Thanks very much for your reply.  Any thoughts about why the tool is showing "error" for some of the samples?

Kind regards,
Rob

  • 0
Posted

Hi @attila,
I think I figured out why the errors were showing up in the data.  In ESS Suite, I clicked on the little notepad icon to adjust the I2S settings and switched the Clock from Falling to Rising.  Now I don't have any errors.

I still have the bottom byte being masked to zeros, but that seems like it's a real issue with my I2S source device, which I'm looking into now.

Thanks for your help,
Rob

  • 0
Posted

Hi @attila,

My I2S source device is generating a sine tone.  I hear dropouts on my receiving device.  Therefore, I'm using the AD3 logic analyzer to monitor the I2S data that the source transmits.  Is there a way to log 5 seconds of data to a file so that I could plot the data in excel or matlab?  I've the "record to file" options (using CSV), but it's only saving very small values to the file.

Thank you,
Rob
 

  • 0
Posted

Hi @wolfie,

If you are exporting the data, choosing the 4th or 5th configuration of the Analog Discovery 3 will double the amount of memory buffer allocated to the Logic Analyzer so you you can capture a longer I2S timeframe within a single acquisition (usually somewhere around the size of the screen)

In terms of recording the data, either through Mode: Record (records up to 200 M samples to the host computer's RAM and be visible in WaveForms) or "Rec." option directly next to the Export (record data directly to a file on the host computer) operate up to about 10 MB/s.
However, the csv and txt file formats are about 5x slower compared to recording the data (either analog or digital) as a .bin file; the formatting of the binary data is described in the dialog text for the record to file mode.

Let me know if you have any questions.

Thanks,
JColvin

  • 0
Posted

Hi @wolfie

This sample rate is on the limit to work with data streaming.
You could try Sync mode, specify I2C CLK either edge and informative rate for representation, but capture may be corrupt.

image.png

  • 0
Posted

Hi @wolfie

The latest version improves a bit the maximum record/sync rate, so you should be able to stream-capture with the following setup.
The entered 6.25MHz is only informative, for representation, I saw you clock rate is 3.125MHz
Then, File/Export/Source: I2S

image.png

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...