I2S
首先根据I2S用的是哪组 GPIO,在 SSD201HWChecklistV6.xlsx 中确认 mode 的值。如果选取 PAD_SD 组,则 mode 值为3;如果选择 PAD_GPIO0-3 组,则mode值为1:
然后修改 dts 的 sound 节点 i2s-padmux 的值(等于mode的值):
sound {
compatible = "sstar,audio";
// reg = <0x1F000000 0x1000000>;
interrupts=<GIC_SPI INT_IRQ_BACH IRQ_TYPE_LEVEL_HIGH>;
playback-volume-level=<64>; //0~94
capture-volume-level=<64>;
// micin-pregain-level=<1>; //0~3
micin-pregain-level=<0>; //0~3
micin-gain-level=<3>; //0~7
linein-gain-level=<2>; //0~7
amp-gpio = <PAD_FUART_RX 1>;
clocks = <&CLK_upll_384m>;
// playback-dma-buffer=<98304>; //512(ms)*48(kHz)*2(ch)*2(16bits)
// capture-dma-buffer=<122880>; //640(ms)*48(kHz)*2(ch)*2(16bits)
digmic-padmux = <2>;
i2s-padmux = <1>;
keep-i2s-clk = <0>;
status = "ok";
}
接着还需要将该组 GPIO 配置为 I2S 模式:
<PAD_GPIO0 PINMUX_FOR_I2s_MODE_1 MDRV_PUSE_I2s_WCK >,
<PAD_GPIO1 PINMUX_FOR_I2s_MODE_1 MDRV_PUSE_I2s_BCK >,
<PAD_GPIO2 PINMUX_FOR_I2s_MODE_1 MDRV_PUSE_I2s_SDI >,
<PAD_GPIO3 PINMUX_FOR_I2s_MODE_1 MDRV_PUSE_I2s_SDO >,
这样配置后,和 AMIC/DMIC 一样,使用 audio_all_test_case 程序来测试:
./audio_all_test_case -t 20 -I -o /tmp -d 2 -m 0 -c 2 -s 48000
将会在/tmp/目录下生成Chn0_I2SRx_48K_16bit_MONO.wav和Chn1_I2SRx_48K_16bit_MONO.wav。如果有LineOut接口,可以直接播放该录音文件,判断是否录音成功。
文档更新时间: 2021-05-19 16:55 作者:Aeeditor