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

drivers: sai: the 1st frame synchronization signal lost in slave side #490

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Raymond0225
Copy link

According the RM document, RT1170 58.3.3 (should be same for other MCU which has a similiar SAI IP):
"A valid frame sync is also ignored (slave mode) or not generated (master mode) for the first four bit clock cycles after enabling the transmitter or receiver."
but in fact, we found master side send out a valid frame sync at the 3rd bit clock cycles which cause this frame sync is ignored by the slave side and frame data lost.
To workaround this issue, bit clock is enabled before TE/RE.

@decsny
Copy link
Member

decsny commented Dec 17, 2024

Has this change been submitted to the SDK ? All PRs to this repo that change SDK code need to be upstreamed to the SDK so that we don't need to keep repatching after updating to new SDKs (this repo is a "public downstream" of the "internal upstream" SDK)

@Raymond0225
Copy link
Author

Has this change been submitted to the SDK ? All PRs to this repo that change SDK code need to be upstreamed to the SDK so that we don't need to keep repatching after updating to new SDKs (this repo is a "public downstream" of the "internal upstream" SDK)

I am submitting to internal upstream at the same time.

According the RM document, RT1170 58.3.3 (should be same for other MCU
which has a similiar SAI IP):
"A valid frame sync is also ignored (slave mode) or not generated (master
mode) for the first four bit clock cycles after enabling the transmitter
or receiver."
but in fact, we found master side send out a valid frame sync at the 3rd
bit clock cycles which cause this frame sync is ignored by the slave
side and frame data lost.
To workaround this issue, bit clock is enabled before TE/RE.

Signed-off-by: Raymond Lei <[email protected]>
@Raymond0225 Raymond0225 force-pushed the i2s_rx_1st_frame_sync branch from 429891d to a505c5b Compare December 19, 2024 22:38
@Raymond0225 Raymond0225 marked this pull request as draft December 20, 2024 16:56
@dleach02 dleach02 self-assigned this Jan 7, 2025
@Raymond0225 Raymond0225 marked this pull request as ready for review January 8, 2025 17:17
@Raymond0225
Copy link
Author

This patch has been submitted to internal SDK repo and got merged.

@dleach02
Copy link
Member

there needs to be a Zephyr side PR to update the manifest. I see that it has been mentioned though in a couple.

Copy link
Member

@dleach02 dleach02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add Zephyr side manifest update

@Raymond0225
Copy link
Author

Add Zephyr side manifest update

it is here: zephyrproject-rtos/zephyr#83718

@Raymond0225 Raymond0225 requested a review from dleach02 January 13, 2025 19:42
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

Successfully merging this pull request may close these issues.

4 participants