This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PCM5242:需要支持以使用 Android 11代码的 IMX8MM 启动 PCM5242CODEC

Guru**** 2199450 points
Other Parts Discussed in Thread: PCM5242, PCM5142
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1135862/pcm5242-need-support-to-bring-up-pcm5242codec-with-imx8mm-with-android-11-code

器件型号:PCM5242
主题中讨论的其他器件: PCM5142

大家好、

我们正在开发 PCM5242音频 DAC、该 DAC 采用 ANdorid11代码库中的 NXP 处理器。

我已将所有更改集成到 DTSI 和驱动程序文件中。

更改后、DAC 已成功注册。  

我检查了所有时钟,如 WCLK MCLK BCLK 和 DIN 引脚,我们在播放音频文件时可以正确获取所有时钟。 但没有声音。

我们所面临的错误:

e AUDIO_HW_PRIMARY:START_OUTPUT 流:无效 PCM 卡 ID:-1
i audio_hw_primary:start_output_stream:primary:1、out:0xee944630、device:131072、address:、mode:0、 标志0x2
i AUDIO_HW_PRIMARY:select_output_device()、耳机0、耳机0、扬声器2
D AUDIO_HW_PRIMARY:START_OUTPUT 流:PCM_OPEN:卡:-1、PCM_DEVICE_ID:0、速率:48000、通道:2、格式:0、 PERIOD_SIZE:0xc0、标志:9

 

看起来不存在卡:

I2C 转储:

1.音频未播放时:

2.尝试播放音频文件时

DTSI 更改:

sound-pcm512x{
兼容="简单音频卡";
simple-audio-card、name ="pcm512x-audio";
simple-audio-card、format ="I2S";
simple-audio-card、bitclock-master =<&dailink0_master4>;
simple-audio-card、frame-master =<&dailink0_master4>;

simple-audio-card、小工具=
"线路"、"左线路输出插孔"、
"线路"、"右侧线路输出插孔";
简单音频卡,路由=
"左侧线路输出插孔"、"OUTL"、
"右侧线路输出插孔"、"输出器";
dailink0_master4:简单音频卡、CPU{
??Sound-Dai =<?Sa义5>;
};
简单音频卡、编解码器{
sound-dai =<&pcm5242>;
时钟=<&clk IMX8MM_CLK_SAI5_root>;
};
};

pcm5242:pcm5242@4c{
兼容="ti、pcm5242";
#sound-di-cells =<0>;
reg =<0x4c>;
AVDD-SUPPLY =<Registered_3V3_VExt>;
DVDD 电源=<Registered_3V3_VExt>;
CPVDD 电源=<Registered_3V3_VExt>;
时钟=<&ext_osc_22m>、<&ext_osc_24m>;
时钟名称="sclk0"、"sclk1";
};

Saa5{(&S)
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa5>;
分配的时钟=<&clk IMX8MM_CLK_SAI5>;
分配的时钟父级=<&clk IMX8MM_AUDIO_PLL1_OUT>;
分配的时钟速率=<24576000>;
状态="正常";
};

pinctrl_sai5:sai5grp{
FSL、引脚=<
MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK 0xd6/* MCLK*/
MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK 0xd6/* BCLK*/
MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0 0xd6 /* DIN*/
MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC 0xd6 /* WCLK*/
>;
};

注:我们没有正确的驱动程序。 我们使用不同系列的驱动程序、即 pcm5142。

sound/soc/codecs/pcm512x-i2c.c

sound/soc/codecs/pcm512x.c

需要您的紧急支持

谢谢

Divyesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请查找以下日志:

    01-01 00:00:00.234 0 E IMX-pcm512x sound-pcm512x:找不到编解码器器件
    01-01 00:00:01.148 0 E pcm512x 3-004C:Divyesh 进入 CONFIG_of FUNC :pcm512x_probe
    01-01 00:00:01.155 0 E pcm512x 3-004C:Divyesh 进入 CONFIG_O 和 DEV->OD_node func :pcm512x_probe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、

    请查看以下更新:

    以上问题已解决。

    需要您的帮助来启动一个音频 DAC PCM5242。

    我们将 PCM5242 DAC 与 IMX8MM NXP 处理器配合使用。

     

    到目前为止、我已经添加了 dtsi 和驱动程序更改。 但扬声器没有发出任何声音。

     

    更改:

           sound-pcm5242{

                  兼容="简单音频卡";

                  simple-audio-card、name ="pcm5242_50W";

                  simple-audio-card、format ="I2S";

                  simple-audio-card、bitclock-master =<&dailink0_master4>;

                  simple-audio-card、frame-master =<&dailink0_master4>;

     

                  simple-audio-card、小工具=

                           "线路"、"左线路输出插孔"、

                           "线路"、"右侧线路输出插孔";

                  简单音频卡,路由=

                           "左侧线路输出插孔"、"OUTL"、

                           "右侧线路输出插孔"、"输出器";

                  dailink0_master4:简单音频卡、CPU{

                          ??Sound-Dai =<?Sa义5>;

                  };

                  简单音频卡、编解码器{

                          sound-dai =<&pcm5242>;

                          时钟=<&clk IMX8MM_CLK_SAI5_root>;

                  };

          };

     

           pcm5242:pcm5242@4c{

                   兼容="ti、pcm5242";

                   #sound-di-cells =<0>;

                   reg =<0x4c>;

                   AVDD-SUPPLY =<Registered_3p3v>;

                   DVDD 电源=<Registered_3p3v>;

                   CPVDD 电源=<Registered_3p3v>;

                   时钟=<&ext_osc_22m>、<&ext_osc_24m>;

                   时钟名称="sclk0"、"sclk1";

           };

     

    I2C 转储:

    1. 当音频未播放时:

    1. 播放音频时:

     

    声音控制:

     

    输出:

    所有 I2S 时钟均符合预期,同时还提供 DIN 数据。

    但扬声器没有音频输出。

     

    谢谢

    Divyesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Divyesh、

    明天、我将介绍这篇帖子、因为我将在队列中总结其他一些任务。

    此致、

    Arash

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 

    感谢您的回复。

    我需要在星期四结束。 如果您要求他人对此进行研究、那会很有帮助。

    由此给您带来的不便、我们深表歉意。 但情况紧急。 星期五、我与客户一起发布了版本。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想 我可以在星期四之前关闭它,如果没有,我将要求 另一位工程师查看此帖子。

    此致、

    Arash

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。。。 期待您的回应

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好@Arash Loloee

    仅供参考、我们将为 PCM5242使用以下驱动程序:

    修改:arch/arm64/boot/dts/Freesce/imx8mm-evk.dtsi
    修改:arch/arm64/configs/imx_v8_android_defconfig
    已修改:sound/soc/codecs/pcm512x-i2c.c
    已修改:sound/soc/codecs/pcm512x.c

    谢谢

    Divyesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Divyesh、 以下是我们可以提供的所有驱动程序:

    e2e.ti.com/.../faq-linux-drivers-device-drivers-for-aic31xx-dac31xx-aic325x-aic320x-aic326x-aic321x

     您能否在播放音频且没有音频输出时验证寄存器转储。 器件没有处于待机或静音状态的可能性有多大?

    此致、

    Arash

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arash

    如果您查看我之前的评论、我在播放音频和不使用音频时共享了 i2cdump。 请看一下。

    关于驱动程序、我使用类似 PCM5142系列的驱动程序。  两个 IC 具有相同的寄存器映射。

    谢谢

    Divyesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,在  寄存器转储中 ,当音频不播放时,我们看到寄存器3 有 11个,即使左右声道静音。 此外、寄存器 2是11、它是断电/待机模式。   这就是为什么我要求检查并确保 寄存器读取正确的原因。 根据您的寄存器转储、您将使器件静音并关闭电源、因此不会播放音频。

    此致、

    Arash

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arash、

    当音频未播放时、这意味着设备将处于待机状态且仅静音。 它看起来是正确的。。。

    您是否检查了播放音频时的寄存器转储?  

    当我尝试播放某个内容时、我可以看到"静音"和"取消静音"中的日志功能正常。 但不确定它是否正确反映在寄存器映射中。

    谢谢

    Divyesn

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Divyesh、

    可能是我们讨论了2个不同的东西。 当您说"音频未播放"时 、我们将其读作"您希望播放音频、但 它未播放"。  在这种情况   下,我们读取它的寄存器转储并看到它被静音(并且 DAC 也处于断电状态)。 我想您的意思是问题在其他寄存器转储中。

    我可以使用我们的 EVM 运行一个简单的测试、然后向您获取寄存器转储、以便您可以将其与您的进行比较、并查看寄存器中写入的内容使其无法正常工作。  

    请告诉我这是否是您想要的。

    此致、

    Arash

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Arash、

    是的。

    音频未播放意味着设备启动时的理想情况。(未尝试播放音频)

    当我们尝试使用 tinyplay 或媒体播放器播放音频时、音频正在播放。

    请共享工作寄存器转储

    我今天需要您的快速响应。 我需要在今天结束发言。  

    谢谢

    Divyesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Divyesh、您好、这是我们 EVM 上 PCM5242的寄存器转储、我希望这能为您提供帮助。

    编号-------------------------------------------------------
    PCM5242

    w 98 00 00
    宽98 03 11
    w 98 00 00
    w 98 2a 00
    w 98 00 00
    宽98 02 10
    w 98 00 00
    w 98 00 00
    宽98 03 11
    w 98 00 00
    w 98 2a 00
    w 98 00 00
    宽98 02 10
    w 98 00 00
    W 98 01 11
    w 98 00 00
    宽98 03 11
    w 98 00 00
    w 98 2a 00
    w 98 00 00
    宽98 02 10
    w 98 00 00
    W 98 3D 44
    w 98 00 00
    宽98 3e 44
    W 98 00 01
    W 98 03 04
    w 98 00 00
    宽98 03 11
    宽98 02 10
    w 98 2b 01
    宽98 02 00
    w 98 03 00
    W 98 07 01
    宽98 08 20
    宽98 55 07
    w 98 00 00
    宽98 03 11
    w 98 00 00
    宽98 02 00
    w 98 00 00
    宽98 2a 11.
    W 98 00 01
    宽98 02 11
    W 98 00 01
    W 98 06 00
    宽98 07 00
    宽98 07 00
    w 98 00 00
    w 98 3b 00
    w 98 3b 00
    W 98 00 01
    宽98 02 10
    宽98 02 00
    w 98 00 00
    宽98 29 00
    W 98 07 01
    宽98 28 02
    宽98 28 02
    宽98 2a 11.
    W 98 00 01
    宽98 08 00
    w 98 00 00
    宽98 25 00
    宽98 07 00
    W 98 00 01
    宽98 05 00
    w 98 00 00
    w 98 2c 00
    宽98 25 00
    宽98 25 00
    宽98 25 00
    宽98 25 00
    宽98 25 00
    宽98 25 00
    w 98 3c 00
    宽98 03 11
    宽98 3e 30
    w 98 3f 22.
    w 98 3f 22.
    宽98 40 02
    宽98 40 02
    宽98 41 07
    宽98 41 07
    宽98 41 07
    w 98 3f 22.
    w 98 3f 22.
    W 98 3D 30
    w 98 03 00
    w 98 03 00

    此致、

    Arash