i2s pll setting incorrect for 176400/2/16
Posted: Fri Aug 09, 2019 5:38 am
Hi - Still in latest dev IDF, when using apll, the sdm0/1/2/odir choice is incorrect at least for 176400/2channels/16bits (despite a change that does a re-assessment of sdm2 after selection of odir).
The i2s_apll_calculate_fi2s() selects sdm2=7,odir=1,sdm1=sdm0=255 which is 156249 (totally off) where sdm2=5,odir=0,sdm1=2,sdm0=222 would have give precisely 176400.
This seems to be because the choice of sdm2 is the highest value possible which is not always the best/only option.
The i2s_apll_calculate_fi2s() selects sdm2=7,odir=1,sdm1=sdm0=255 which is 156249 (totally off) where sdm2=5,odir=0,sdm1=2,sdm0=222 would have give precisely 176400.
This seems to be because the choice of sdm2 is the highest value possible which is not always the best/only option.