My agx orin pcba board , I2S1 port, with the ES8388, 1khz waveform has distortion.
Another RK3588 pcba board with also the ES8388, 1khz waveform has no distortion.
agx orin command is “i2ctransfer -f -y 8 w2@0x11 0x04 0x30 && amixer -c APE cset name=“I2S1 Mux” ADMAIF1 && aplay -D hw:APE,0 /home/neardi/0db-1khz.wav”
rk3588 board command is “aplay -D hw:0,0 0db-1khz.wav”
The two boards’ wave form as attatched.
Will it be possible to configure Tegra I2S as Slave and Codec ES8388 as Master to check the waveform?. I suspect little bump seen on edge of the bitclock might not be handled properly by ES8388 codec.
The little bump will not the reason, another nano orin board also has the distortion.
My agx orin codec schamtic is same with the nano orin.
Just to re-confirm, is the waveform captured at I2S level or after the Codec output?. Ideally, the I2S DOUT data should be bitmatch with the intput data played.
The wave is captured at R3445/R3446/R3449, with the shortened wire, the little bump disappeared.
Thanks, this is before codec connection. The possible approach I would think off here to root cause is to have I2S DOUT and DIN loopback by shorting it before the codec. Also, disconnect codec from the I2S for this testing. We could capture the data and compare with the input file played. This would confirm the data going via I2S is fine or not.
“We could capture the data and compare with the input file played.“
Then how to do this? pls give me the command, and I do a test, thanks
aplay 0db-1khz.wav
sudo i2ctransfer -f -y 8 w2@0x11 0x03 0x00 && amixer -c APE cset name=“ADMAIF1 Mux” I2S1 && arecord -D hw:APE,0 -r 48000 -c 2 -f S16 -d 10 output.wav
use above command, delete R3445~R3449, and shorten the I2S1_DIN and I2S1_DOUT.
use Adobe Audition CS6, find output.wav no distortion.
Is ES8388 is not configured correctly?
0db-1khz.zip (4.8 MB)
output.zip (1.8 MB)
This confirms the signal from Tegra I2S is proper. Yes, there could be some programming or signal handling issue from codec side.
Could you try making Codec as Master if not already tried.
How to configure Tegra I2S as Slave and Codec ES8388 as Master to check the waveform?
the commands or shell?
I found that you want Tegra as Slave and Codec as Master to check the waveform.
What you want to check, the little bump?
If is the little bump, the shortened waveform, the little bump is not there again.
So, I don’t know why you still want to do the test?
Because, I don’t know how to let the Tegra as slave and Codec as Master.
Can you give me some clue?
$ amixer -c APE cset name=="I2S1 codec master mode" "cbm-cfm"
More details on I2S controls shall be referred @ Audio Setup and Development — NVIDIA Jetson Linux Developer Guide 1 documentation assuming you are usin r36 bsp. The above command will set codec as Master and Tegra I2S expect BCLK and Fs from Codec.
Got it, the issue of bump is not seen with shortened waveform. Considering this, does the codec output is proper?
root@tegra-ubuntu:/home/neardi# amixer -c APE cset name==“I2S1 codec master mode” “cbm-cfm”
amixer: Cannot find the given element from control hw:1
we use r35.2 bsp
root@tegra-ubuntu:/home/neardi# amixer -c APE cset name=‘I2S1 codec master mode’ ‘cbm-cfm’
numid=1559,iface=MIXER,name=‘I2S1 codec master mode’
; type=ENUMERATED,access=rw------,values=1,items=3
; Item #0 ‘None’
; Item #1 ‘cbm-cfm’
root@tegra-ubuntu:/home/neardi# aplay 0db-1khz.wav
Playing WAVE ‘0db-1khz.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
[ 556.485973] tegra210-i2s 2901000.i2s: timeout: failed to reset I2S for playback
[ 556.486219] tegra210-i2s 2901000.i2s: ASoC: PRE_PMU: I2S1 RX event failed: -110
above is the result
Resoldered resistors R3445 through R3449, confirm pcba is ok, aplay 0db-1khz.wav can generate the distortion 1khz waveform.
This confirms the even when clock is generated by codec the distortion is present. As I2S loopback without codec in path is working, am not seeing any issue on Tegra side. Could you cross check on the connections involved between i2s and codec.
This seems like some issue on the codec side.
setup_es8388_master.zip (945 Bytes)
run the setup_es8388_master.sh, it is generated by deepseek.
then,
sudo killall aplay arecast 2>/dev/null
amixer -c APE cset name=‘I2S1 codec master mode’ ‘cbs-cfs’
i2ctransfer -f -y 8 w2@0x11 0x02 0x00
i2ctransfer -f -y 8 w2@0x11 0x03 0xf9
aplay 0db-1khz.wav
the distortion disappeared






