主题:TLV320AIC3106中讨论的其他器件
工具/软件:
尊敬的 TI 支持部门:
我 目前正在开发基于 AM62Lx 处理器的定制电路板、它使用通过 I2C 和 I2S 接口连接的 SGTL5000音频编解码器。 编解码器已正确初始化、并已启用 defconfig 和器件应力中所需的所有配置。 使用aplay命令进行音频播放工作正常、我们能够听到清晰的音频输出。 但是、我们在使用arecord命令录制音频时遇到了问题。 下面给出了问题期间观察到的打印件。
root@am62lxx-ig69m:~#^C
root@am62lxx-ig69m:~# arecord -D plughw:0、0 -d 10 -f S16_LE test.wav
录音波形'test.wav ':有符号的16位小端字节序,速率8000 Hz,单声道
A 记录:PCM_READ:2272:读取错误:输入/输出错误
root@am62lxx-ig69m:~#
root@am62lxx-ig69m:~#
root@am62lxx-ig69m:~# arecord -D plughw:0、0 -d 10 -f S16_LE -r 44100 test.wav
录音波形'test.wav ':有符号16位小端字节序,速率44100 Hz,单声道
root@am62lxx-ig69m:~# avplay -D plughw:0.0 test.wav
播放 wave 'test.wav ':有符号16位小端字节序,速率44100 Hz,单声道
root@am62lxx-ig69m:~#
root@am62lxx-ig69m:~#
root@am62lxx-ig69m:~# arecord -D plughw:0、0 -d 10 -f S16_LE -r 48000 test.wav
录音波形'test.wav ':有符号的16位小端字节序,速率48000 Hz,单声道
[ 216.153055] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.073ms 长)[216.164177] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.033ms 长)
[ 216.174375] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.057ms 长)[216.184824] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.035ms 长)
[ 216.194950] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.068ms 长)[216.205424] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.060ms 长)[ 216.215574] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.032ms 长)
[ 216.225673] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.053ms 长)[216.236089] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.032ms 长)
[ 216.246259] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.072ms 长)
[ 216.256675] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.082ms 长)[216.267048] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.049ms 长)
[ 216.277212] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
太多了!!! (至少0.050ms)[216.287568] DaVinci -McASP 2b00000.audio-controller:接收缓冲区溢出
只要我发出命令、就再触发一次 -"arecord -D plughw:0.0 -f S16_LE -c 2 -r 44100 -d 10 -v test.wav "没有发现问题。
每当我将采样率更改为8,000,16000… 有时会发现读/写错误或溢出/溢出问题。
在 aplay commad 中的问题: 每当我播放一个音频"资源繁忙"已经被观察到。我解决了,通过杀死称为"lvglsim "的过程,然后我能够播放音频。但我必须做到这一点在每次启动播放音频. 因此,有任何替代方法来删除这个过程,同时压缩 itslaf。
以下是 sgtl 的 dts 配置:
sound { /* SAI5: SGTL5000: Audio Codec support */
compatible = "simple-audio-card";
simple-audio-card,name = "sgtl5000";
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&codecdai>;
simple-audio-card,bitclock-master = <&codecdai>;
simple-audio-card,bitclock-inversion;
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Headphone", "Headphone Jack",
"Speaker", "Speaker Ext",
"Line", "Line In Jack";
simple-audio-card,routing =
"MIC_IN", "Microphone Jack",
"Microphone Jack", "Mic Bias",
"LINE_IN", "Line In Jack",
"Headphone Jack", "HP_OUT",
"Speaker Ext", "LINE_OUT";
simple-audio-card,cpu {
sound-dai = <&mcasp0>;
};
codecdai: simple-audio-card,codec {
sound-dai = <&sgtl5000>;
system-clock-frequency = <26000000>;
};
};
&mcasp0 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp0_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 1 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
main_mcasp0_pins_default: main_mcasp0-default-pins {
pinctrl-single,pins = <
AM62PX_IOPAD(0x0190, PIN_INPUT, 0) /* (A11) MCASP0_ACLKX */
AM62PX_IOPAD(0x0194, PIN_INPUT, 0) /* (B11) MCASP0_AFSX */
AM62PX_IOPAD(0x018c, PIN_INPUT, 0) /* (B9) MCASP0_AXR0 */
AM62PX_IOPAD(0x0188, PIN_OUTPUT, 0) /* (A9) MCASP0_AXR1 */
>;
};
&main_i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&main_i2c0_pins_default>;
status = "okay";
sgtl5000: sgtl5000@a { /* Audio: SGTL5000 Audio Codec */
compatible = "fsl,sgtl5000";
reg = <0x0a>;
#sound-dai-cells = <0>;
clocks = <&audioclk 0>;
VDDA-supply = <®_1p8v>;
VDDIO-supply = <®_1p8v>;
VDDD-supply = <®_1p5v>;
status = "okay";
};
请您帮助我解决 SGTL 问题。
此致、
Dheeraj