Fix software PLL not locked in FFVA-INT (AEC not converge in FFVA-INT) #393
+18
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In FFVA-INT example, software PLL is used to phase lock MCLK with BCLK to eliminate the need of external MCLK.
However, sw_pll_lut_do_control in the original code is called every 240 I2S frame instead of every I2S frame.
This causes the software PLL failed to lock, thus the AEC not converge in FFVA-INT.
This PR put the sw_pll_lut_do_control call in I2S restart callback; this make sure it is called in every I2S frame.
This PR rely on the PR#256 on fwk_rtos, PR#256 need to be merged before this PR can compile.