Audio Recording From I2S3#

The following diagram describes the audio recording from I2S3 flow.

Diagram showing four ADMAIF blocks connected to an ADX block, which then links to an I2S block.
  • ADX connection:

// Route the I2S3 output to ADX1
amixer –c 0 cset name="ADX1 Mux" "I2S3"
// Route ADX Output 1 to ADMAIF1 (hw:0,0)
amixer –c 0 cset name="ADMAIF1 Mux" "ADX1 TX1"
// Route ADX Output 2 to ADMAIF2 (hw:0,1)
amixer –c 0 cset name="ADMAIF2 Mux" "ADX1 TX2"
// Route ADX Output 3 to ADMAIF3 (hw:0,2)
amixer –c 0 cset name="ADMAIF3 Mux" "ADX1 TX3"
// Route ADX Output 3 to ADMAIF4 (hw:0,3)
amixer –c 0 cset name="ADMAIF4 Mux" "ADX1 TX4"

Note

Assuming that the channel configurations for both ADX Input and I2S instances are identical. For instance, in the case of Thor, I2S5 should be used instead of I2S3.

  • Testing commands

arecord -D hw:0,0 -r 48000 -c 2 -f S16_LE sample_rec1.wav
arecord -D hw:0,1 -r 48000 -c 2 -f S16_LE sample_rec2.wav
arecord -D hw:0,2 -r 48000 -c 2 -f S16_LE sample_rec3.wav
arecord -D hw:0,3 -r 48000 -c 2 -f S16_LE sample_rec4.wav