I2S自收发测试

  1. 配置dts的I2S对应引脚复用,确保复用引脚没有被配置成优先级高于I2S Mode的其他Mode(tmux表中要配置的I2S Mode左边的Mode)。以下为I2S 4-wire方式举例。

    mercury6-ssc019a-s01a-dispcam-padmux.dtsi

    mercury6.dtsi

  2. 编译kernel,将kernel烧写到板子,短接BCLK和MCLK,短接DI和DO。

  3. 用Audio Demo来验证,进入sdk\verify\mi_demo\source\audio_all_test_case修改audio_all_test_case.c

    附:修改过的audio_all_test_case.c

    添加对应chip的宏,以下为268举例。

    修改initAi()中I2S部分内容,其中I2S mode要设置成MASTAER,SyncClock要开启。

    修改initAo()中I2S部分内容,其中I2S mode要设置成SLAVE,SyncClock要开启。

    进入sdk/verify/mi_demo/source/make audio_all_test_case,把生成的app文件拷贝到mount的windows共享文件夹下,拷贝一个音频文件到此文件夹下。

  4. 板子上运行app文件,同时开启I2S的AO和I2S的AI,由于前面我们将DI和DO进行了短接,AO通过I2S OUT播放的音频信号会被AI通过I2S IN采集。

    板子上在共享文件夹下执行命令./prog_audio_all_test_case -I -o ./ -d 2 -c 2 -s 48000 -O -i ./48K_16bit_MONO_60s.wav -D 1

    注意:采样率设置要和播放音频文件的频率一至,否则会导致采集到的音频和播放音频速度不一样,如此举例是48K的音频。

  5. 执行完上述指令后会产生两个采集到的音频文件,播放两文件会和原文件播放的声音相同。