IMX8MM + AD1933+TPA3116(AMP) no sound output issue

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

IMX8MM + AD1933+TPA3116(AMP) no sound output issue

1,753 Views
KennyChu
Contributor I

Hi Supporter,

我們嘗試用IMX8MM公板跳線接上一塊Audio DAC board (AD1933+TPA3116),遇到以下問題。

 

問題描述:

a. 播音檔時,只聽到"波"一聲。請問有何建議?

b. 我們試著量測BCLK, LRCLK, SDATA,發現SDATA的部份只有左聲道有資料,右聲道完全沒有資料,請問該如何解決?

 

1.測試流程:

a. 透過spi interface先init ad1933

b. 使用aplay來播音檔。(aplay -Dplughw:0,0 /usr/share/sounds/alsa/Front_Center.wav)

 

2. 跳線資訊:

SAI3_TXD-> DSDATA1

SAI3_MCLK-> MCLK

SAI3_TXFS-> DLRCLK

SAI3_TXC-> DBCLK

3. 軟体修改部份(請看附件):

SDK: imx-yocto-LF_L5.4.3_1.0.0

---codec: snd-soc-dummy

--Machine : imx-ad1933.c

4. Device Tree:

imx8mm-evk.dts

sound-ad1933 {
compatible = "fsl,AD1933";
model = "imx-audio-ad1933";
cpu-dai = <&sai3>;
};

&sai3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
assigned-clock-rates = <12288000>;

status = "okay";
};

5. 示波器訊號量測:

        2 ==> LRCLK

        1==> BCLK

        3 ==> DSDATA1

scope_1.png

Regards,
Kenny

0 Kudos
6 Replies

1,719 Views
weidong_sun
NXP TechSupport
NXP TechSupport

如果第一次播放正常,不关机第二次重启aplay继续播放有pop音的话,说明第一次播放完成时,没有关闭sound card。

但是,重启板子后运行aplay,还有pop音是完全不应该的。

0 Kudos

1,720 Views
weidong_sun
NXP TechSupport
NXP TechSupport

如果第一次播放正常,不关机第二次重启aplay继续播放有pop音的话,说明第一次播放完成时,没有关闭sound card。

但是,重启板子后运行aplay,还有pop音是完全不应该的。

0 Kudos

1,715 Views
KennyChu
Contributor I

第一次執行aplay聲音正常,第二次之後都只聽到POP

重啟後,結果同上

第一次執行aplay聲音正常,第二次之後都只聽到POP

謝謝

0 Kudos

1,697 Views
weidong_sun
NXP TechSupport
NXP TechSupport

我感觉问题出在Machine driver中,就是说播放结束后,没有关闭sound card,以至于第二次再播放时,CPU端和codec端,没有办法重新初始化(根据wav文件信息重新配置通信双方)。

请教了一下 design team的audio driver的设计者,他建议先查codec的配置。目前只能提供这样一个思路。

 

所以,加在一起,我的思路和design team的思路,您可以去 查一下,既然能有aplay正确播放,就是一个好的开始。后面主要是debug工作,实在不行,就跟踪driver的代码,看看结束的时候,走到了什么地方。

 

伟东

 

0 Kudos

1,731 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi Kenny,

对于I.MX8MM来说,你的codec是AD1933,所以您使用dummy codec不是合适。这是在没有codec的时候,才会使用dummy codec。正常情况您的音频驱动架构应该是:

platform : fsl_sai.c

codec : ad1933.c (ad1933的原厂应该提供driver给您)

machine: imx-ad1933.c (负责把cpu_dai 和codec_dai连接起来,形成dai_link)

从您提供的描述和示波器波形图看,有两个可能:

(1)driver没有正确地获取Front_Center.wav的格式及参数信息并正确配置SAI,所以TXD线上的数据不正确。

(2)Front_Center.wav文件本身是否存在问题,一般这个可能性不大,因为PC上播放一下就知道好不好了。

所以,您还是在driver架构上按照fsl_sai.c + ad1933.c --->imx-ad1933.c的架构来做比较好。

 

Have  a nice day!

B.R,

weidong

0 Kudos

1,726 Views
KennyChu
Contributor I

Hi Weidong,

我們嘗試修改為如下架構後可以播放出聲音了,但只有第一次執行 APLAY時有聲音,之後都只聽到"POP"一聲,重開機後現象一樣,請問這有可能是那個環結出錯了呢?

codec:  dummy to ad193x.c

machine driver: imx-ad1933.c  to simple-audio-card

 

Regards,

Kenny

0 Kudos