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.

[参考译文] PCMD3180:可以查看 I2C 总线上的地址、但寄存器内容是异常的

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1450719/pcmd3180-can-see-addresses-on-i2c-bus-but-register-contents-is-anomalous

器件型号:PCMD3180

工具与软件:

您好!  

我将 使用对象中的四个转换器测试定制 PCB 板(此处的原理图)。 根据数据表、所有四个引脚的 SHDNZ 引脚都表示为悬空、但我们最终将其连接到 Vcc (3.3V)、随后连接到 GPIO 引脚、在启动时拉至低电平、然后在一段时间后拉至高电平、以便启动器件。

我正在使用 Raspberry Pi 型号4 B 的 I2C 接口控制器件。我可以看到总线上所有四个转换器的地址、但当我尝试 I2C 转储时、地址0x4c、0x4d、0x4e 处器件的所有寄存器均被归零、且不假定其复位值。 在0x4f 处、我首先会得到更奇怪的值、然后器件在连续的 i2cdetect 上从总线中消失、 我无法再访问它。

原理图是否有任何问题、或者您是否看到导致这种异常的任何其他可能原因?

提前感谢、  

Mr. Gabriele Baroli.

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

    将在一周结束时更新

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

    您好、Gabriele:

    您要运行什么命令来转储 I2C? 此外,你是否知道你正在使用哪个驱动程序,如果你编辑你的 DTS 文件,你可以提供它? 此设备的驱动程序应该在 Linux 内核上、但不确定它是否已成功引导至 Raspberry Pi。 您可以在此处找到它:

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc codecs/tlv320adcx140.c.

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/soc codecs/tlv320adcx140.h

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/devicetree/bindings/sound/ti,tlv320adcx140.yaml

    请告诉我您正在使用哪些命令、以及您是否可以发布是否有任何错误日志、以便更好地了解该问题。 此外、如果您尚未安装该驱动程序、请尝试安装该驱动程序。

    还有一点-您是否仅使用4中的第一个器件来编辑寄存器、断开其他器件?

    此致!
    MIR

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

    嗨、Mir、  

    感谢您的快速回复。

    为了与转换器交互、我使用 i2ctools 软件包(i2cdetect 用于总线扫描、i2cdump 用于查看器件上所有寄存器的内容)。

    使用这些命令时不会显示任何错误日志。

    我会告诉您有关驱动器的信息。

    我们设法发现、所有四个转换器的散热焊盘未连接到电路板接地平面。

    目前正在生产一种新的印刷电路板。

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

    您好、Gabriele:

    听起来不错。 您知道 I2C 时钟上升时间是多少吗?  再次查看您的原理图、我发现 I2C 线上共有4个器件、这会增加总线电容。 根据此有关 I2C 电阻器计算的应用手册(https://www.ti.com/lit/an/slva689/slva689.pdf)和 PCMD3180 400nF 的总线电容、最大上拉电阻应为737欧姆。 因此、看看您是否可以将上拉电阻器降低到~700欧姆、看看这是否有助于 I2C 转储。

    此致!
    MIR

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

    嗨、Mir、  

    顺序:

    1.我在 rasPi 上使用以下操作系统:linux robat 6.0.62+rpt-rpi-v8 #1 smp preempty Debian 1:6.6.62-1+Rpt1 ( 2024年11月25日) AArch64 GNU/Linux。 由于相关驱动程序是在2020年添加到 Linux 内核中、因此我假设它们当前位于 rasPi 中。

    2.关于时钟上升时间、我尝试了标准模式(100kHz)和快速模式(400kHz)、但均未提供预期值。

    3.在下一个印刷电路板上,我们将安装700Ohm 电阻器,看看这是否改善了总线上的通信。 这款新电路板将于1月中旬准备就绪、我们从旧电路板中剥离了转换器以重复使用、因此直到那时我才能够进行任何测试。

    此致、  

    Gabriele

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

    您好、Gabriele:

    好的、我认为如果您能够更改电阻器、它可以解决您的问题。 同时、如果您对这些器件还有任何其他疑问、欢迎在此处发布或发布新主题、如果您仍有问题、我们将在1月为您提供帮助。

    此致!
    MIR