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.

[参考译文] PCM5122:在 PCM5122中生成的大火花非常罕见且呈斜坡状、也具有恒定0信号。

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1368953/pcm5122-big-spark-generated-very-rare-and-ramdomly-by-the-pcm5122-also-with-costant-0-signal-in-the-pcm_din

器件型号:PCM5122
Thread 中讨论的其他器件: PCM1808PCM1792

工具与软件:

尊敬的 TI 论坛:

 使用 PCM5122 和 Raspberry CM4 CPU with Circle 软件时遇到了这个大问题:

这是系统中 ADC DAC 部分的静态图:

/resized-image/__size/320x240/__key/communityserver-discussions-components-files/6/PCM5122-sch-diag.jpg 

在此应用中、22.5792MHz 的一个时钟发生器信号 PCM_CLK_GPIO18作为时钟参考进入 ADC PCM1808。

PCM1808是用于生成 LRCK 和 BCK 的主站。 ADC 以88.2KHz 的频率工作。

这些信号是 CM4 CPU 和两个 PCM5122 DAC 的主信号。

CM$为 DAC 生成 pcm_dout。

LRCK 被二分频、有逻辑可利用两个 PCM5122生成两个立体声信号。  

将 LRCK 除以2、在 LRCK 转换中将 CM$的 PCM_dout 作为1、以便为 DAC 生成44100Hz 的 LRCK。  

CM5122的工作频率是44.1kHz。

两个 PCM5122被配置为从器件、BCK 是内部 PLL 的基准、接口选择 I2S、字24、角度计设置正确、等等。

系统开始正常、音频信号生成正确、但非常渐近的 PCM5122会产生一个大火花、也没有任何数字信号、DOUT 也远为0。

它看起来与电源噪声或 I2S 信号上的噪声有关、我看到降低该噪声并清洁这些信号、产生这种大火花的可能性降低了、但我从未完全降低、有时也在经过数小时的静音后、DOUT=0时、会产生一个大火花。

 如果需要、我可以分享有关应用的更多详细信息、

您能建议这方面的解决方案吗?

谢谢  

Francesco

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

    您好、Francesco、

     由于低分辨率、我无法看到原理图的详细信息;您能否以高分辨率发送原理图以便于阅读。

    你也可以详细说明火花,它是一个负载声音 (爆裂噪音)或一个真正的火花与负载声音。 我假设真正的火花 会损坏 IC、所以很可能是大声的噼啪噪声、而不是火花。

    由于您提到分频器设置正确、因此我假设您在 I2C 配置中使用 DAC、 如果是、  在 I2C 配置中不存在 DOUT、则它仅存在于硬件控制(引脚16)中。 那么您的意思是 当  ADC 上没有 DOUT 时,您仍然会听到砰砰的噪音?

    需 确认或提供的事项很少:

    • 将 ADC 输入拉至接地、以便不会向 DAC 发送代码、并验证问题是否仍然存在。
    • 断开 DAC 与 ADC 输出的连接 、在没有输入的情况下馈送 DAC、这有助于确认问题可能是由 您怀疑电源造成的。
    • 我们需要获得电源以及进入 DAC 的所有 I2S 信号的示波器图。 POP 噪声通常是 clk 暂停/错误 以及上电和断电时的结果-当 输出端的电容器突然充电或放电时。 重要的是在出现问题时捕获电源和 I2S 的行为、以便我们能够找到原因、可能找到根本原因。

    我添加了几个链接、您可以参考这些链接、它们可能会觉得有用。

    https://e2e.ti.com/support/switches-multiplexers-group/switches-multiplexers/f/switches-multiplexers-forum/1114638/faq-how-can-i-reduce-the-click-and-pop-noise-on-my-audio-switch-and-detection-jack

    https://docs.kernel.org/sound/soc / pops-clicks.html

    此致、

    Arash

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

    尊敬的 Arash:

     

    非常感谢您对我的问题的快速回答、也感谢您对应用程序的糟糕描述、现在我为您提供了有关设计的所有详细信息、附件文件:

    • "数字音频"系统说明。
    • Raspberry CPU 接口的完整原理图、有关数字音频原理图请参阅第2页。
    • 在2024-06-03_13-56-59.kvdat 发生脉冲问题时、通过逻辑分析仪对从 CM4到双 DAC 的 I2S 信号进行数字记录。 从以下站点下载软件以读取数据:

    https://www.qdkingst.com/en/download

    • 数字数据、文件 Excel 中数字 I2S 信号的转换、从发生火花问题时的 LA、2024-06-03_13-56-59.xlsx。
    • 两种 PCM5122配置的代码示例 PCM5122 code.cpp。

    从此处下载文件:

    https://sendgb.com/TulGgnWCwZQ

     

    问题描述:

    随机地、在 DAC 的模拟输出中生成一个大脉冲、在随机的左通道或右通道中、该脉冲的强度也可能不同。

    在扬声器中,听起来像一个枪或火花,不是电火花,但 DAC 继续正常工作,声音非常好,似乎没有损坏。

    原理图中只有一个 DAC 存在该问题、即 U6 LRCK#1。 在某种程度上与强制位数据相关、以生成除以二的 LR_CK。

    此脉冲不在 I2S 的数字数据中、如源自 LA 数据的 Excel 文件所示、脉冲时刻的样本。

    我看到该随机脉冲在某种程度上与板上的噪声成正比的概率。

    降低键盘扫描的噪声降低 PUL_UP 电阻器、修复一些悬空输入或将其转换为固定输出信号以及其他类似的操作可以大大降低在输出中出现随机脉冲的可能性。

    现在、概率是几个小时内一个脉冲。

    在 DAC 配置中、自动禁用、并且任何其他 I2S 信号错误操作都被禁用。

    我还将三个引脚 GPIO3/4/5从自由输入设置为固定输出。

    是否有一个解决方案可以将具有79hex 寄存器的 DAC 架构从超高级模式转变为经典模式?

    一个多月前、我正在讨论这个问题、但没有找到最终解决方案。

    云你帮我? 这是一个非常紧迫的问题

     

    非常感谢。

     Francesco

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

    您好、Francesco、

    我们不能下载任何软件或任何未经 IT 团队批准的东西,所以我只能查看 jpeg/pdf 和类似的格式,其他一切都将被阻止。

    正如我之前提到的、 噼啪噪声的一个常见来源是 I2S 信号中断或错误、您似乎也注意到 LRCK 与其中一个 DAC 有关。 此外、由于这会随机发生一次、唯一的解决方案是为两个 DAC 提供可靠的 CLK、 如果 问题的来源是 流向 DAC 的 CLK、那么您就没有太多可以做的了。

    作为完整性检查、您可以交换进入这些 DAC 的2个 CLK、以查看随机 POP 是否转移到另一个 DAC。 这是为了确认问题的根源是 clk 线之一。 另一项建议是尝试从 LRCLK 中将两个 IC 设置为标签、这似乎没有干扰或噪声、这可能可行、但我不确定这是否 会 是可靠的解决方案

    我很抱歉,我不能再提供任何帮助,因为问题不是 DAC 本身 .

    此致、

    Arash

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

    尊敬的 Arash:

    从逻辑分析仪采集 I2S 信号后、显示这些信号没有中断或不连续。

    如果您无法下载应用程序来读取 I2S 信号、请在此处下载这些图像:

    https://drive.google.com/file/d/1lXmJegfKpwzq3Xs7sAutIuBHZ0ZU4O1g/view?usp=sharing

    https://drive.google.com/file/d/1lWFBfc500KVBrRUUFIUE5SfS427DAVAB/view?usp=sharing

    https://drive.google.com/file/d/1lX-zVvK_VOxyKJWYe1qnkXkQk3IzCtik/view?usp=sharing

    在所有获得的测试和改进中、噼啪噪声似乎与 DAC 对电路板噪声或信号完整性具有高灵敏度有关。

    您能不能帮我看一下原理图、说明如何使用滤波器分割 I2S 信号的完整性?

    通过以下链接下载原理图:

     https://drive.google.com/file/d/1S5V-VSjqDMhaFVoHcVBUYvI5pDRks5xu/view?usp=drive_link 

    在 DAC 之间交换 LRCK 是一个很好的测试、我将做它。

    您能更好地解释 LRCK 上的选项卡吗?我不清楚、

    非常感谢

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

    您好、Francesco、

    出于安全原因、我也无法打开文件共享位置。 我可能不需要查看 CLKS、因为我想在存在噼啪噪声的时刻查看 I2S 信号、但同样、由于噼啪噪声的原因在 DAC 中非常了解、因此、您很可能应该能够在随机时刻查看 CLKS (完整性或噪声级别)的问题。 我认为、DAC 不能做任何事情、相反、您必须处理进入 DAC 的信号。  

    交换 LRCLK b/w 有一个建议、另一个建议是 不交换 DAC、也将适用于给定 DAC 的相同 clk 线路发送到另一个 DAC。 可以添加缓冲器并使两个 DAC 从同一 clk 线路进行制表。 因为它是随机发生的,不是很经常,它可能很难找到源在你的 clk 树。

    此致、

    Arash

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

    尊敬的 Arash:

    我将尝试使用此建议、以便更好地了解问题的来源。

    至于您的经验、要减少这个噼啪噪声的发生概率、最好使用外部 SCK 作为主器件、或使用内部 PLL 以 BCK 作为基准来生成内部 SCK。

    在 I2S 接口中、如果该位随机为0-1、则24位字中的 DIN 数据可能是流行噪声的来源?

    要降低噼啪噪声的可能性、最好禁用有关 BCK、LRCK、SCK?

    禁用自动静音最好是降低噼啪噪声?

    我将使用此序列来设置 PCM5122寄存器、您能否使用此代码验证序列是否正确?


        0x290x01}、// 1个时钟位延迟。
        {0x79、0x01}、 //mode2 - Classic PCM1792高级电流段架构。

        0x250x1A}、//禁用"AutoConfig-ignore" SCK
        0x140x00}、//P=1
        0x150x10}、//J=16
        0x160x00}、//D1=0
        0x170x00}、//D2 = 0
        0x180x00}、//R=1
        0x1B0x01//分频器 MAC
        0x1C0x0F}、//分频器 DAC 时钟
        0x1D0x03}、//NCP 分频器
        0x1E0x00}、//OSC 分频器
        0x220x00}、// FS 设置
        0x230x04//IDAC1 设置为1024
        0x240x00}、//IDAC2  
        0x0D0x10}、//将 PLL 时钟源设置为 BCK、而不是 SCK

        //禁用自动静音
        0x410x00}、

        //设置为输出 GPIO 引脚
        0x080x3C//out 对于 GPIO3 GPIO4 GPIO5 GPIO6
        0x520x02//out 对于 GPIO3
        0x530x02// GPIO4的输出方向
        0x540x02//GPIO5的输出方向
        0x550x02 //GPIO6的输出方向
    非常感谢您的支持
    此致
    Francesco
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Francesco、

    在理论上 PLL 或外部时钟都应该不错 ,但 就个人而言,我更喜欢使用外部 SCLK。

    我怀疑 DIN 开关会是噼啪噪声的来源、根据我的经验、它是 产生噼啪或喀嗒噪声的 CLKS。 如果 IC 在时钟发生任何变化或可能的断电/上电之前静音,那么它可以防止 噼啪噪声 (除非电容器放电,在这种情况下,自动静音没有太大帮助!)  

    看着代码我看不出任何问题, 我附几个代码,你可以尝试,希望你可以纠正的问题。 归根结底、是时钟问题进入 DAC 、并且您必须确保 CLKS 是干净的。

    e2e.ti.com/.../PCM512x_5F00_-sample-code.zip

    此致、

    Arash

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

    尊敬的 Arash:

    在 LRCK#1并将 LRCK#2连接至 DAC 后、噼啪噪声从第一个 DAC 移到第二个 DAC、同时接收与原用例相同的数据流。 这实际上似乎与触发器的反相输出有关、这是非常不可思议的。 但是、无论如何、我只能使用正常的一个 LRCK、在位延迟下将数据流对 DAC 进行差分。 我要测试此解决方案、

    此致

    Francesco

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

    感谢您的更新。 我怀疑并根据我 过去的经验,消息来源必须是你确认的 CLKS。

    此致、

    Arash

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

    尊敬的 Arash:

    这似乎是一个永无止境的故事。 使用并联的两个 DAC 以及相同的良好 LRCK#2、DAC#2中不存在噼啪噪声、但在 DAC#1中返回、真是难以置信!

    会有内部 PLL 的交互? 可以禁用内部 PLL 并将外部 SCK @22.5792MHz 用作主时钟吗?

    我尝试了此配置、但它不起作用、您能否建议使用一系列命令来设置此配置?

    Francesco

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

    大家好、所提供器件上的集成 PLL 增加了移除系统时钟(通常称为主时钟)的灵活性、从而允许一个3线制 I 2S 连接。 内部 PLL 可以采用 SCK 或 BCK、创建内插处理器所需的速率更高的时钟和 DAC 时钟。 这样、器件就可以在有或没有外部 SCK 的情况下运行。 所以你仍然需要提供一个干净的 LRCLK、但 一旦 LRCLK 中 出现毛刺脉冲(看起来它已经存在并随机显示)、你就不能做太多了。   我怀疑你可以摆脱这种流行噪音,只要你的 LRCLK 是随机的错误行为。

    如果您要禁用 PLL (不使用它)、请参阅 图63。 PCM512x 时钟分配树。  如果不需要 PLL 功能、请将页0寄存器4 D (0)上的 PLLEN 值设置为0。 在这种情况下、需要一个外部 SCK。

    此致、

    Arash