主题: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