2414378_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2414378_zh-CN

2414378_zh-CN

imx93 上的 SAI 填充位配置

我在 Linux 系统下配置 imx 和编解码器之间的 sai 连接时遇到了困难。


编解码器为 AK4619,采用 4 通道 TDM 模式。48KHz / 32 位 TDM 模式下播放正常,MSB 优先且 MSB 对齐。

对于捕获,AK4619 仅支持 24 位。数据采用最高有效位对齐,这意味着非有效位位于相关位之后(有效位为 8-31)。另一方面,sai 将 FBT 设置为 23,这意味着有效位为 0-23。

我尝试查找相关设置,但没有找到。我知道 FBT 指示相关数据的起始位置,但我找不到哪个寄存器设置数据大小(在我的情况下是 24,而不是字长 32)。

需要设置哪个寄存器,或者需要在设备树中设置哪些配置?以下是我实际使用的相关配置:

&sai3 {
#sound-dai-cells = <0>;
clocks = <&clk IMX93_CLK_SAI3_IPG>, <&clk IMX93_CLK_DUMMY>,
<&clk IMX93_CLK_SAI3_GATE>, <&clk IMX93_CLK_DUMMY>,
<&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
assigned-clocks = <&clk IMX93_CLK_SAI3>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
assigned-clock-rates = <24576000>;
fsl,sai-mclk-direction-output;
fsl,sai-asynchronous;

status = "okay";
};
simple-audio-card,dai-link {
link-name = "AK-4CHANNELS";
format = "i2s";
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
fsl,mclk-equal-bclk;
cpu {
sound-dai = <&sai3>;
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
assigned-clocks = <&clk IMX93_CLK_SAI3>;
};
codec {
sound-dai = <&ak4619>;
system-clock-frequency = <24576000>;
assigned-clocks = <&clk IMX93_CLK_SAI3>;
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
};
};

我用示波器检查过了,sai 线上的数据看起来是正确的。


任何提示都将不胜感激。

Re: SAI padding bits configuration on imx93

谢谢。

问题是我不知道该在这个登记簿里写些什么。我能找到的唯一一份文件是

julienblanc_0-1789720432684.pngjulienblanc_0-1789720432684.pngjulienblanc_0-1789720432684.png

我已将我案例中的相关行高亮显示。所以,是的,我应该在 FBT 中写入 0b11111,但我如何知道只有 24 位是相关的呢?我的理解是,我不能使用 W0W 和 WNW,因为它们表示字长,而我的字长是 32 位。我在两个 RCRx 寄存器中都找不到任何相关信息。

此致,

朱利安

Re: SAI padding bits configuration on imx93

你好,

您在录制/播放时是否尝试过使用 ALSA 的 -f S32_LE 参数?

此配置并非在设备树中完成,如果要通过驱动程序进行配置,则需要在此处修改寄存器 TCR5/RCR5:

https://github.com/nxp-imx/linux-imx/blob/b096ce610e956cc2596006343df8a2a26ed6e019/sound/soc/fsl/fsl...

https://github.com/nxp-imx/linux-imx/blob/b096ce610e956cc2596006343df8a2a26ed6e019/sound/soc/fsl/fsl...

顺祝商祺!

Re: SAI padding bits configuration on imx93

实际上,这些额外的部分似乎并没有造成任何问题。修改驱动程序,将正确的值写入 FBT 后,音频就能正常工作了。

顺祝商祺!

Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: