主题中讨论的其他器件:AM4377、 AM4372
尊敬的 TI 团队:
我们有一个 AM4377板 McASP0连接到 TLV320ADC3140、AM4377是从设备、TLV320ADC3140是主设备、TLV320ADC3140配置为8xDMIC。
我们发现一个问题是在运行'arecord'命令时出现'Read error:input/output error'、并且 test.wav 没有数据:
root@AM437X-EVM:~# arecord -DHW:0、0 -c 8 -d 10 -r 48000 -f S32_LE test.wav
录制波'test.wav':
有符号32位小端序、速率48000Hz、通道8
A 记录:PCM_READ:2143:读取错误:输入/输出错误
根目录@AM437X-EVM:~编号
请帮您检查、谢谢。
以下是我们的一些信息:
方框图:
2.从以下位置下载 TLV320ADC3140驱动程序源代码:
git.kernel.org/.../codecs
/tlv320adcx140.c?h=v5.9.6.
git.kernel.org/.../codecs
/tlv320adcx140.h?h=v5.9.6.
SDK 为:
TI-PROCESSOR-SDK-LINX-RT-AM437X-EVM-06.03.00.106 (Linux-RT-4.19.94+gitAUTOINC+a242ccf3F1-ga242ccf3F1)。
4.音频相关设备树配置:
#include "am4372.dtsi"
CLK_McASP0_FIXED:CLK_McASP0_FIXED{
#clock-cells =<0>;
兼容="固定时钟";
时钟频率=<24576000>;
};
CLK_McASP0:CLK_McASP0{
#clock-cells =<0>;
兼容="GPIO-GATE -时钟";
时钟=<&clk_McASP0_FIXED>;
ENABLE-GPIO =<&GPIO4 13 GPIO_ACTIVE_HIGH>;//在 GPIO4_13上启用 Clk *
};
听起来{
兼容="简单音频卡";
simple-audio-card、name ="AM4377-音频卡";
#sound-di-cells =<0>;
simple-audio-card、di-link@0{
格式="DSP_b";
位时钟反转;
bitclock-master =<&sound0_master>;
frame-master =<&sound0_master>;
CPU{
Sound-Dai =<&McASP0>;
di-tdm-slot-num =<8>;
di-tdm-slot-width =<32>;
di-tdm-slot-TX-mask =<1 1 1 1 1 1>;
di-tdm-slot-rx-mask =<1 1 1 1 1 1>;
};
Sound0_master:CODEC{
sound-dai =<&tlv320adc3140>;
时钟=<&clk_McASP0>;
};
};
};
i2c2{(&I)
tlv320adc3140:ctradc@4c{
reg =<0x4c>;
};
};
tlv320adc3140{
状态="正常";
#sound-di-cells =<0>;
兼容="ti、tlv320adc3140";
/* Areg-supply =<&vsys_1v8>;*/
ti、mic 偏置源=<6>;
TI、PDM 边缘选择=<0 0 0 0>;
/* GPI1 ~ GPI4 */
TI、GPI-CONFIG =<4 5 6 7>;
TI、GPIO-CONFIG =<10 0>;
TI、GPO-CONFIG-1 =<4 1>;
TI、GPO-CONFIG-2 =<4 1>;
TI、GPO-CONFIG-3 =<4 1>;
TI、GPO-CONFIG-4 =<4 1>;
TI、ASI-TX-DRIVER =<1>;
RESET-GPIO =<&GPIO4 12 GPIO_ACTIVE_HIGH_>;
};
&McASP0{
状态="正常";
#sound-di-cells =<0>;
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&McASP0_PINS_DEFAULT>;
pinctrl-1 =<&McASP0_PINS_SLEEP>;
OP-MODE =<0>;/* MCASP_IIS_MODE */
TDM-SLOTS =<8>;
/* 4个串行器 ARX0、ARX1、ARX2、ARX3 */
serial-dir =< /* 0:非活动、1:TX、2:Rx *
2 0 0 0 0
>;
tx-num-evt =<32>;
Rx-num-evt =<32>;
};
am43xx_pinmux{(am43xx_pinmux)}
GPIO4_PINS:GPIO4_PINS_DEFAULT{
pinctrl-single、pins =<
AM4372_IOPAD (0x9e0、PIN_OUTPUT 上拉| MUX_MODE7) /* CAM1_FIELD.GPIO4_12 */
AM4372_IOPAD (0x9e4、PIN_OUTPUT 上拉| MUX_MODE7) /* CAM1_WN.GPIO4_13 */
>;
};
McASP0_PINS_DEFAULT:McASP0_PINS_DEFAULT{
pinctrl-single、pins =<
AM4372_IOPAD (0x99c、PIN_INPUT_PULLUP | MUX_MODE0)/*(M24) McASP0_ahclkr.McASP0_ahclkr*/
AM4372_IOPAD (0x9ac、PIN_INPUT_PULLUP | MUX_MODE0) /*(N24) McASP0_ahclkx.McASP0_ahclkx *
AM4372_IOPAD (0x998、PIN_INPUT_PULLUP | MUX_MODE0) /*(H23) McASP0_axr0.McASP0_axr0 *
AM4372_IOPAD (0x9a8、PIN_INPUT_PULLUP | MUX_MODE0) /*(L24) McASP0_axr1.McASP0_axr1 *
AM4372_IOPAD (0x994、PIN_OUTPUT 上拉| MUX_MODE0) /*(N22) McASP0_FSX.McASP0_FSX *
AM4372_IOPAD (0x9a4、PIN_INPUT_PULLUP | MUX_MODE0)/*(N24) McASP0_fsr.McASP0_fsr */
AM4372_IOPAD (0x990、PIN_OUTPUT 下拉| MUX_MODE0)/*(N24) McASP0_aclkx.McASP0_aclkx、*
AM4372_IOPAD (0x9a0、PIN_INPUT_PULLUP | MUX_MODE0)/*(N22) McASP0_aclkr.McASP0_aclkr */
>;
};
McASP0_PINS_SLEEP:McASP0_PINS_SLEEP{
pinctrl-single、pins =<
AM4372_IOPAD (0x99c、PIN_INPUT_PULLUP | MUX_MODE7)/*(M24) McASP0_ahclkr.McASP0_ahclkr*/
AM4372_IOPAD (0x9ac、PIN_INPUT_PULLUP | MUX_MODE7) /*(N24) McASP0_ahclkx.McASP0_ahclkx *
AM4372_IOPAD (0x998、PIN_INPUT_PULLUP | MUX_MODE7) /*(H23) McASP0_axr0.McASP0_axr0 *
AM4372_IOPAD (0x9a8、PIN_INPUT_PULLUP | MUX_MODE7) /*(L24) McASP0_axr1.McASP0_axr1 *
AM4372_IOPAD (0x994、PIN_OUTPUT 上拉| MUX_MODE7) /*(N22) McASP0_FSX.McASP0_FSX *
AM4372_IOPAD (0x9a4、PIN_INPUT_PULLUP | MUX_MODE7)/*(N24) McASP0_fsr.McASP0_fsr *
AM4372_IOPAD (0x990、PIN_OUTPUT 下拉| MUX_MODE7)/*(N24) McASP0_aclkx.McASP0_aclkx、*
AM4372_IOPAD (0x9a0、PIN_INPUT_PULLUP | MUX_MODE7)/*(N22) McASP0_aclkr.McASP0_aclkr */
>;
};
};
5.运行'arecord '命令时,i2cdump 将 TLV320ADC3140的所有寄存器转储并显示如下:
此致、
Xing-Qin