Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I2S interface sample size configuration issue #570

Open
kitsunami opened this issue Aug 30, 2017 · 2 comments
Open

I2S interface sample size configuration issue #570

kitsunami opened this issue Aug 30, 2017 · 2 comments

Comments

@kitsunami
Copy link

kitsunami commented Aug 30, 2017

The only sample size it is supporting is 32 bit right now.

Master/Slave Transmit/Receive Comments
Master Transmit Curie drives the I2S in 32 bit sample size only.
    Have not found a Slave device that could not take 32 bit sample size.
Master Receive Could not find a transmitter that operates in Slave mode to test this combination.
Slave Transmit Could not find a receiver that operates in Master mode.
Slave Receive Curie works with variable sample size input.
    Curie put the captured sample in 32 bit format with upper unused bits set to 0's.
@kitsunami
Copy link
Author

Streaming audio sample via DMA to the I2S Controller ran into underrun condition which resulted in glitching the I2S Serial Clock. The I2S output was connected to an amplifier to drive a pair of speakers. Due to the glitching of the I2S clock, the audio output was distorted.

@kitsunami
Copy link
Author

Indeed, the emptying of the I2S FIFO causes the I2S h/w interface to go into error mode and resetting the h/w module is required thereafter. As a consequent, the physical I2S connection is disrupted and the target device(s) has to re-sync on the following transaction. This process causes the losing of data samples.
The DMA streaming implementation eliminated the disruption of the I2S connection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant