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.

[参考译文] PCA9515A:I2C通信问题

Guru**** 2457760 points
Other Parts Discussed in Thread: PCA9515A

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/572920/pca9515a-i2c-communication-issue

部件号:PCA9515A
主题中讨论的其他部件:PCA9515

大家好,

我的英语很差,而且我缺乏数字技能,我基本上是一个模拟的家伙,请道歉!!

我在I2C总线上遇到监控问题,PCA9515用作子板I2C条目上的开关/缓冲器(主板I2C也不受影响)

如果我绕过PCA,一切都正常工作。 当PCA9515A安装时,控制似乎正在工作(I2C主控制器->从属控制器),但我在I2C外设上有一个错误监控。

在最简单的配置中,我的子板只包括2个I2C从属设备:温度传感器MAX7500和来自ST的解调器STV0910。

以下是所有情况正常(无PCA9515)时的示波器图解:

PCA9515在线路上时出现以下问题:

我知道,0.5V偏移由PCA9515插入,以确保总线上读写会话之间的稳定性,但我猜这些0逻辑电平偏移可能会干扰总线上的芯片。

是否有人经历过同样的麻烦?

最重要的是:是否有解决方案?

感谢你的帮助。

Yann

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Yan:
    您能向我展示您的原理图吗? 我想了解您是如何连接设备的,以及您拥有的组件值是什么。
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Francis,

    很高兴从您那里了解到。 下面是我的原理图中的I2C元素:

    正如您在我的主板的输入I2C设备中看到的U2 (PCA9515A)。 现在我正在运行板,拆除U2并安装R40+R43 (PCA旁路),它工作正常。

    在其他两张图片上,您可以看到我们仅使用2个I2C芯片。 当PCA9515联机时,U10监控出现问题:GUI指示错误或冻结的值,但我知道它正常工作。 这使我认为U10在编程中得到正确控制,但读数会受到影响。

    感谢你的帮助。

    Yann

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Francis,
    我忘了提及我们还有2个10K上拉电阻。在SCK,SDA和P3V3之间连接(它们未出现在上述部分示意图中)
    Yann
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yann,您好!
    很抱歉回复延迟。 该柱从裂缝中掉下来。 这是我的错。

    我有几个问题要问您。

    1)我似乎找不到STV0.91万数据表,因此无法找到VOL,Vil信息和测试条件。

    2)您是否正在执行从主板到子卡的水平转换? 或者它们是否处于相同的3.3V电压?

    3)电源是否正常,是否为活动高电平或低电平?

    4)我假设网络标签DEMOD_SCK/SCL连接到U10A的L2和L1引脚,您能否确认。

    5)在交易过程中,您能否捕获缓冲区两侧的波形?

    6)我似乎看到SDA/SCL线上摆动。 是您测量信号的伪迹还是真实的? 您能否确认电源没有摆动。

    7)主板侧SCL/SDA线的驱动情况是什么,它们有什么上拉?

    我主要担心的是,Vol/Vil上存在不匹配,并且零件的静态电压偏移无法正常工作。
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Francis,

    很好地从你那里阅读!

    以下是您问题的一些答案:

    1) STV0910芯片数字IO的DC规格:

    VIL:- 0.3 至+0.8V

    VIH:2.0 至3.6V

    音量:0.4V最大值

    VOH:最小2.6V

    2)无水平转换。 主板I2C也是3.3V。

    3) PGOOD活动高

    4)编号DEMOD_SCK和DEMOD_SDA连接到U10A B14和B13引脚。 A11/B11和L2/L1是独立的I2C辅助总线,不连接到我们讨论的主I2C。

    5)遗憾的是,目前没有。 我没有马上可用的主板,但我同意您的看法:这是一个有趣的测量方法,我应该已经做了!

    6)检查了电源。 我认为这种振荡是因为我的坏示波器探头接地连接太长。

    7)主板I2C由PowerQuick处理器(MPC8378VRALGA)驱动,10K上拉电压与+3.3V电压相连

    希望这能有所帮助。

    再次感谢您的支持。

    Yann

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yann,您好!
    当通信出现问题时,您是否能够捕获所有四个波形? 您发送的波形没有什么问题。 静态电压偏移似乎工作正常,但我真的需要看看零是否在设备上正确传播,对于SCL和SDA都是如此。

    您可能想让我知道STV0910的给定Vol的电流是多少。 您是否能够与同一节点上的其他设备通信? MAX7500工作正常吗?
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Francis,

    以下是PCA9515两侧的捕获:

    SCL:

    SDA:

    在每个图上,主/主板侧(SCL0/SDA0)采用上部黄色曲线,从/子板侧(SCL1/sda1)探测绿色曲线

    STV0910输出汇电流(IOL)规格最大为4mA 回答您的最后一个问题,我不能告诉您,因为固件人员没有将此芯片包含在整个主板监控中.....对不起。

    Yann。

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

    您好,Francis,

    有新消息吗?

    Yann

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yann,您好!
    如果您在错误发生时不能向我显示缓冲区两侧的I2C事务,那么您的问题可能会是什么,我对此已经没有什么想法了。

    1)您是否已验证缓冲区两侧的上升时间符合I2C规格?

    2)我注意到,您似乎在SCL和SDA之间有紧密耦合,SDA似乎由于时钟而有噪声耦合。 您是否愿意看看这是否有帮助? 我认为这不是问题,但鉴于这里没有物理板可供调查,我只是想问一下。

    3)您是否在缓冲器两侧尝试了不同的上拉电阻器? 您是否估计了缓冲区两侧的容量?

    我不知道我还能做些什么来远程提供帮助,除非您可以反复地让问题发生,然后在不正确的I2C事务期间显示缓冲区两侧的波形。
    Francis Houde
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Francis,

    已经很久了……

    至少我有机会使用辅助和最简单的从属外围设备:温度传感器MAX7500。 我认为我有了非常有趣的发现。 尝试从GUI界面监控主板温度时,我遇到了指示负温度的永久性错误(主板在室温下位于工作台上),绕过PCA9515时未发生这种情况。 除了这个数据值问题,我没有I2C读/写问题。

    您将在下面找到围绕PCA9515绘制的2个示波器图。

    黄色轨迹是从PCA主侧看到的SCL信号(PCA9515-P2 SCL0)

    绿色迹线是从PCA主侧看到的SDA信号(PCA9515-P3 SDA0)

    紫色迹线是从PCA的从属侧看到的SDA信号(PCA9515-P6 sda1)

      

    如上所述(第一个图),在启动/停止/ACK和写入序列期间一切似乎正常。 但您可以注意到,在读取序列中,"SDA" In和"SDA Out "之间存在差异。 Plot2是此关键时段的缩放。 我们可以看到,探测器发送的前2位(00值)在PCA的主侧反转。 第一位表示所监测温度的符号。 这是我为什么读取更改的温度值的完美解释。

    当然,问题是: 为什么PCA更改了这2位? ?  如果我有电平或转换率问题,我会出现随机错误。 但在这里,错误总是同时发生。 。 。 奇怪的行为是不是?

    非常感谢Francis的帮助。

    Yann

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

    Yann,

    这确实很特别,你提到每次都在同一个地方发生,你是不是指每次都在读取帧的那个点发生? 有趣的是,它发生在第8个下降边缘,此时主控制器将放弃数据线,PCA9515将接管数据线,使其保持在逻辑低的水平。 这说明了主从逻辑在逻辑低位置的"交换"位置。 有关详细信息,请参阅数据表的9.1 2部分。 在下面的图片中,我已在发生这种情况的地方用红色圈出。 一旦主控制器发送了第九个时钟脉冲,从控制器将释放数据线,主控制器将接管。 红圈后面的脉冲也显示了这一点。

    但是,如果您查看错误发生的位置(在蓝色圆圈处) ,主设备似乎在第九个时钟脉冲后没有收回,而从属设备仍然是按住数据线的设备,这在帧的其余部分仍然存在。 我不确定这是否与您看到的错误有关,但这绝对值得注意,因为这不是正确的行为。

    您是否有机会使用不同的消息帧捕获错误,并在屏幕截图上从从属方获取时钟? 这将显示在不同故障点是否出现相同行为,以及在发生此错误时从属侧的SCL是否行为正确。 它看起来就像从机侧我丢失了一些时钟脉冲,然后在几位后又开始。

    此致,

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

    您好,Eric,

    非常感谢您的反馈。

    关于您在蓝色圆圈区域的备注,您是否注意到我们正在进入读取模式,因此从属设备(温度传感器)在8个时钟周期内驱动SDA线路并进行ACK? 对我们来说,这是正常的行为。 显然,您正在考虑一个时钟的条纹,或通过将SCL保持为0,由从属设备请求的“暂停”。 但是,在观察SDA时,数据是不会有任何延迟的。 。 。

    为了确保在这一关键领域没有理解错误,我将尝试按照您的建议重新捕获SCL两侧的信号。 尽快告诉你。

    此致。

    Yann

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

    Yann,您好!

    我注意到一件事,就是在时钟拉伸期间(见红场),师父会做一些不该做的事,把巴士上拉下来(见红圈)。  

    我也知道,由于巴士出现故障,我们的一些旧零件出现了一些比赛情况。  以下是涵盖该问题的勘误表。  我想知道这是否是我们以前从未见过的类似问题。

    我想看看你是否能让师父在时钟拉伸的时候不出差错。

    Francis Houde