A64 I2S除錯
通過A64 的I2S匯流排與迴音消除模組連線,在A64中需要使能並配置daudio功能。
Daudio 為A64 的數字音訊介面,可配置成i2s/pcm格式標準音頻介面。
核心配置在lichee/linux-3.10/ 下執行make ARCH=arm64 menuconfig 選中
“AsoC support for daudio platform” 和 “AsoC support daudio0 machine”.
在sys_config.fex 配置daudio的特性;
關於daudio的原始碼在linux-3.10/sound/soc/sunxi/
sunxi_tdm_utils.c |
tdm 處理的公共函式 |
sunxi_daudio.c |
在asoc框架中設計的cpu_dai模型,i2s及pcm的引腳配置也在該檔案中 |
sunxi_snddaudio0.c |
處理daudio0部分,在asoc框架中設計為machine模型 |
測試工具 alsa-utils 或tinyalsa , arm-linux-gcc
編譯alsa-lib-1.1.6
./configure --host=arm-linux CC=arm-linux-gcc --disable-Python --prefix=/tmp make make install |
編譯alsa-utils-1.1.6
./configure --host=arm-linux CC=arm-linux-gcc --disable-alsamixer --disable-xmlto CPPFLAGS=-I/tmp/include LDFLAGS=-L/tmp/lib --with-alsa-prefix=/tmp/lib --with-alsa-inc-prefix=/tmp/include make |
tinyalsa 修改Makefile gcc路徑編譯即可。
拷貝alsa-lib 及alsa-utils 相關lib和share到裝置上,執行aplay
#ln aplay arecord # ./aplay -l **** List of PLAYBACK Hardware Devices **** card 0: snddaudio0 [snddaudio0], device 0: SUNXI-TDM0 snd-soc-dummy-dai-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 #./arecord -Dhw:0,0 -d 20 -f cd -r 16000 -c 1 -t wav test.wav # ./aplay -Dhw:0,0 test.wav |
關於暫存器的具體配置可參考Allwinner_A64_User_Manual_V1.1.pdf 的”7.6. I2S/PCM” 。