TC358743 I2S Audio Output

I’m trying to read the TC358743’s I2S audio output, however I’m not able to get the board to output anything but noise. The closest I have gotten is noise overlaying the true underlying audio so I suspect the sample format or sample rate is incorrect? In either case, I followed this guide: A Jetson Device For All Your Audio Applications | by SmartCow | Medium

Assigning pins SCK 12, WFS 35, SD 38, and GND 40 I configured I2S4 via sudo /opt/nvidia/jetson-io/jetson-io.py.

Then,

$ alsactl init tegrasndt210ref
$ amixer -c tegrasndt210ref cset name="MVC1 Vol" 13500
$ amixer -c tegrasndt210ref cset name="ADMAIF1 Mux" I2S4

I tried

$ arecord -D hw:tegrasndt210ref,0 -r 48000 -f S32_LE -c 1 -d 30 test.wav

as well as

$ arecord -D hw:tegrasndt210ref,0 -r 48000 -f S16_LE -c 2 -d 30 test.wav

but I only received noise. I have confirmed with the oscilloscope that data is reaching the board, and additionally the closest I have gotten (hearing the correct audio with noise on top) is -r 44100 -f S16_LE.

Is there something else I’m missing to pull the I2S audio?

Hi kevmo314,

Does TC358743 serve as bitclock master and frame master or send signal on data line alone?

If TC358743 acts as clock master, need to set the same via below mixer setting

amixer -c 1 cset name="I2S4 codec master mode" "cbs-cfs" 

Have you ensured that FS, BCLK are operating at approriate rates (Sampling rate, Sampling Rate * Channel count * Sample width) ? Also, please refer to the datasheet and codec driver to check if sample width is supported.

On a side note, setting Vol via below command has no effect

amixer -c tegrasndt210ref cset name="MVC1 Vol" 13500

unless you include MVC1 in the capture path via below commands

amixer -c tegrasndt210ref cset name="ADMAIF1 Mux" MVC1
amixer -c tegrasndt210ref cset name="MVC1 Mux" I2S4

Thanks

Thanks for your reply. The TC358743 serves as clock master according to the specification.

image

I tried setting the mixer setting, however I still get a lot of noise in the recording:

Have you ensured that FS, BCLK are operating at approriate rates (Sampling rate, Sampling Rate * Channel count * Sample width) ?

Do you mean via an oscilloscope? I can check.

Hi kevmo314,

Mixer setting in my earlier comment has a mistake. Please use below instead and try once

If TC358743 acts as clock master, need to set the same via below mixer setting

amixer -c 1 cset name="I2S4 codec master mode" "cbm-cfm" 

Thanks

Thank you, when setting that mixer setting, this is the closest I am able to get to functional audio:

Do you know what might be causing the remaining noise? Here’s what the same microphone sounds like when recording through a Camlink 4K instead of a TC358743:

Oh nevermind, turns out I had the wrong sample format.

arecord -D hw:tegrasndt210ref,0 -r 48000 -f S16_LE -c 2 -d 5 test.wav

works after setting that mixer setting, for anyone else who finds this post :)

Glad to hear that you got it working

Thanks