您好!
我们正在使用基于 imx8m Nano 的定制板、该板使用连接到 SAI3的 TAS2563。
使用的内核版本是使用 Yocto 构建的5.10.9。 此内核版本具有适用于 TAS2563的驱动程序、但电路板无法播放任何声音。 所使用的器件树配置基于 e2e.ti.com/.../tas2110-tas2110-tas2562-device-tree-for-imx8m-mini 中所示的配置如下所示
听起来{
兼容="简单音频卡";
simple-audio-card、name ="mx8-tas2563";
simple-audio-card、format ="I2S";
简单音频卡、位时钟反转;
simple-audio-card、bitclock-master =<和 tas2563cpu>;
simple-audio-card、frame-master =<和 tas2563cpu>;
tas2563cpu:简单音频卡、CPU{
??Sound-Dai =<?Sa义3>;
di-tdm-slot-num =<2>;
di-tdm-slot-width =<16>;
};
简单音频卡、编解码器{
sound-dai =<和 tas2563>;
};
};
i2c3{(&I)
时钟频率=<400000>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c3>;
状态="正常";
tas2563:编解码器@4c{
兼容="ti、tas2563";
reg =<0x4c>;
#sound-di-cells =<0>;
interrupt-parent =<&GPIO2>;
中断=<20>;
关断-GPIO =<&GPIO5 3 GPIO_ACTIVE_HIGH_>;
TI、imon-slot-no =<0>;
};
};
pinctrl_sai3:saE3grp{
FSL、引脚=<
MX8Mn_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
MX8Mn_IOMUXC_SAI3_TXC_SAI3_TXC_BCLK 0xd6
MX8Mn_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
MX8Mn_IOMUXC_SAI3_TXD_SAI3_TX_DATAA0 0xd6
MX8Mn_IOMUXC_SAI3_RXD_SAI3_RXD_DATA3_RX_DATAA0 0xd6
>;
};
Saa3{(&S)
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa3>;
分配的时钟=<&clk IMX8Mn_CLK_SAI3>;
分配的时钟父级=<&clk IMX8MN_AUDIO_PLL1_OUT>;
分配的时钟速率=<24576000>;
状态="正常";
};
我们的电路板具有以下连接:
imx8mn 引脚 | TAS2563引脚
------------------------------------ |---
MX8MNM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC | FSYNC
MX8MNM_IOMUXC_SAI3_TXC_SAI3_TXC_BCLK | SBCLK1
MX8MNM_IOMUXC_SAI3_MCLK_SAI3_MCLK | GPIO
MX8MNM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 | SDIN1
MX8MNM_IOMUXC_SAI3_RXD_SAI3_RXD_DATA3_RX_DATA0 | SDOUT1
这些连接是否正确?
我们不知道 Saa3和声卡的配置是否正确。 您能否告诉我们此配置是否正确? 使用此驱动程序时如何加载 TAS2563配置和扬声器调优?
之后、我们尝试使用 适用于 Linux 的 Android 驱动程序(git.ti.com/.../)。 设备树配置如下:
听起来{
兼容="简单音频卡";
simple-audio-card、name ="mx8-tas2563";
simple-audio-card、format ="I2S";
简单音频卡、位时钟反转;
simple-audio-card、bitclock-master =<和 tas2563cpu>;
simple-audio-card、frame-master =<和 tas2563cpu>;
状态="正常";
simple-audio-card、小工具=
"扬声器"、"扬声器";
简单音频卡,路由=
"扬声器"、"输出";
tas2563cpu:简单音频卡、CPU{
??Sound-Dai =<?Sa义3>;
di-tdm-slot-num =<2>;
di-tdm-slot-width =<16>;
};
简单音频卡、编解码器{
sound-dai =<和 tas2563>;
时钟=<&clk IMX8MN_CLK_SAI3>;
};
};
i2c3{(&I)
时钟频率=<400000>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c3>;
状态="正常";
tas2563:tas2563@4c{
#sound-di-cells =<0>;
兼容="ti、tas2563";
reg =<0x4c>;
TI、左通道=<0x4c>;
TI、CHANNELS =<1>;/*通道编号*/
TI、RESET-GPIO =<&GPIO5 3 GPIO_ACTIVE_HIGH_>;
TI、IRQ-GPIO =<&GPIO2 20 GPIO_ACTIVE_HIGH_>;
TI、ASI-format =<0>;/* 0、I2S;1、DSP; *
TI、左槽=<0>;/* *
TI、右槽=<1>;/* *
TI、imon-slot-no =<0>;/* *
TI、VMON-SLOT-NO =<2>;/* *
ti、echo-ref =<2>;
TI、BYPASS-Tmax =<1>;/* 0、非 BYPASS;1、BYPASS *
TI、I2S 位=<32>;
状态="ok";
};
};
Saa3{(&S)
#sound-di-cells =<0>;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa3>;
分配的时钟=<&clk IMX8Mn_CLK_SAI3>;
分配的时钟父级=<&clk IMX8MN_AUDIO_PLL1_OUT>;
分配的时钟速率=<24576000>;
时钟=<&clk IMX8Mn_CLK_SAI3_IPG>、<&clk IMX8Mn_CLK_dumme>、
<&clk IMX8Mn_CLK_SAI3_root>、<&clk IMX8Mn_CLK_dumme>、
<clk IMX8Mn_CLK_dumme>、
<&clk IMX8Mn_AUDIO_PLL1_OUT>、
<&clk IMX8MN_AUDIO_PLL2_OUT>;
时钟名称="bus"、"mclk0"、"mclk1"、"mclk2"、"mclk3"、 "pll8k"、"pll11k";
状态="正常";
};
pinctrl_sai3:saE3grp{
FSL、引脚=<
MX8Mn_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6
MX8Mn_IOMUXC_SAI3_TXC_SAI3_TXC_BCLK 0xd6
MX8Mn_IOMUXC_SAI3_RXD_SAI3_RXD_DATA3_RX_DATAA0 0xd6
MX8Mn_IOMUXC_SAI3_TXD_SAI3_TX_DATAA0 0xd6
MX8Mn_IOMUXC_SAI3_MCLK_SAI3_MCLK 0xd6
>;
};
当我们加载 Android 驱动程序时、我们会获得 附加文件(driver_load.txt)中显示的日志:
e2e.ti.com/.../driver_5F00_load.txt
我们尝试播放声音时的输出显示在附加的文件(aplay_output.txt)中:
e2e.ti.com/.../aplay_5F00_output.txt
当我们开始播放声音时、我们可以听到很小的"哔哔声"、但我们听不到我们正在播放的声音。
我们的问题是:
我们应该使用哪种驱动程序?
- TAS2563的 SAI3配置是否正确?
非常感谢。
此致。













