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.

[参考译文] TMS570LS1224:MibSpi3寄存器 RxBuf 读取值0、该值与 SPI 日志不一致(0x0688)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1414116/tms570ls1224-mibspi3-register-rxbuf-read-value-of-0-which-is-not-consistent-with-spi-log-0x0688

器件型号:TMS570LS1224
Thread 中讨论的其他器件:TPS65381A-Q1

工具与软件:

尊敬的女士/先生:

我遇到 MibSpi3 RxBuf 值与 SPI 日志不一致的情况。

我的 情况是:SPI3在 TI TPS65381A-Q1 (PSU)和 Microchip MCP3208 (ADC)之间共享、我们实现了信号量以进行独占访问。 之前、我们从 MCP3208中读取 ADC 值(在 SPI3上)、每一件事情都正常、我们得到了正确的读取、而 SPI3 RxBuf 是正确的。

最近、我在我们的项目中启用了  TPS65381A DMUX、以便测量连接到 TMS 芯片 ADC 输入之一的 DIAG_OUT。 之后、我们始终得到 SPI RxBuf 值0、但从日志中、我们可以看到通信正确、传输的值正确、请参阅附件。 如果我们在项目中移除 DMUX、那么一切都将再次正常运行。

顺便说一下、 TPS65381A AMUX 始终可以工作、根本不存在任何问题。 只有 DMUX 会出现此问题。

很奇怪、您能帮助我理解并调试这个问题吗? 非常感谢。

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

    您好 、隆华·毛

    我想知道以下几点:

    1.您是否为两个从器件(TPS65381A 和 MCP3208)使用不同的 芯片选择、或者是否使用相同的芯片选择?

    2.通常情况下、具有多个从设备的 SPI 主设备应如下所示:

    但您的终端连接是什么呢?

    3. 如何在 DIAG_OUT 上启用和选择所需的通道? 是否仅通过 SPI 通信进行通信?

    [quote userid="600535" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1414116/tms570ls1224-mibspi3-register-rxbuf-read-value-of-0-which-is-not-consistent-with-spi-log-0x0688近期在我们的项目中、我启用了  TPS65381A DMUX、以便测量连接到 TMS 芯片 ADC 输入之一的 DIAG_OUT。

    ——

    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您调查我的问题。 澄清:

    1.是的、我们对两个从器件使用不同的芯片选择引脚、如日志所示:HVM_CS 适用于 MCP3208、TPS_CS 适用于 TPS65381A。

    2.是的,明白,在我们的情况下,我们只有两个奴隶。 两个 CS 连接到不同的 TMS 引脚(MIBSPI3NCS[0]和 MIBSPI3NCS[1])。

    3、是的、要启用 TPS65381A DMUX、我们仅使用 SPI 通信。

    我们通过 SPI 启用了 TPS65381A AMUX、不会出现问题、SPI RxBuf 可以使用正确的值。 仅当 我们通过 SPI 启用 DMUX 后、才会出现此问题。

    场景1:仅在启用 DMUX 时、SPI RxBuf 始终为0 (读取 MCP 芯片)。

    场景2:AMUX 和 DMUX 每50ms 切换一次。 启用 AMUX 时、SPI 正常工作、 在接下来的50ms 内启用 DMUX (禁用 AMUX)、SPI RxBuf 为0 (读取 MCP 芯片)、但同时、SPI 日志显示 SPI 已传输正确的值。

    会发现 SPI RxBuf 与 SPI 日志传输不匹配。

    不知道是否足够清楚、如果需要更多信息、请告诉我。 非常感谢。

    此致

    隆化

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

    龙华先生、您好!

    AMUX 和 DMUX 之间应该没有太大差异、对吗?

    我是第一次使用此从设备、如果有误、请纠正:

    因此、我们可以使用该 DIAG_OUT 引脚在 TPS65381A 中监控数字信号或模拟信号、对吧? 该 DIAG_OUT 信号应需要连接到控制器。

     如果我现在错了、现在需要将哪些信号传递到控制器将由 DIAG_MUX_SEL 寄存器决定?

    如果正确、则:

    由于 SPI 通信与这些 DIAG_OUT 信号完全不同、因此选择 DMUX 不应对 SPI 通信产生任何影响、对吗? 但您说这是在发生、如果是这种情况、则唯一可能是 GND 或 VCC 受到影响、这是我怀疑的

    因为您可以看到、DMUX 是否选择了电压电平基于 VCCIO 和相应的 GND。

    但是、如果选择 AMUX、则电压电平不同、并且基于其他电源 GND (可能是)。

    您是否将 DIAG 连接到控制器的两个引脚(一个用于 AMUX 信号、一个用于 DMUX 信号的数字引脚)、如下所示?

    我能否获得用于验证的完整连接图? 甚至您也可以通过私人聊天发送。 因为我想验证您是如何处理 GND 的?

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    感谢您的快速响应。 是的、您是对的、DMUX 或 AMUX 与 SPI3没有关系。  唯一的区别是 DIAG_OUT 是模拟输出还是数字输出取决于选择。

    遗憾的是、由于我们项目中的 GPIO 短路、DIAG_OUT 仅连接到一个 ADC 输入(AD1IN[20])。 在本例中、我们将尝试在选择 DMUX 时通过同一 ADC 输入测量数字输入。

    我也怀疑此解决方案可能会导致该问题。 请参阅 DIAG_OUT 的连接。 是否出了什么问题? 谢谢。

    此致

    隆化

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

    龙华先生、您好!

    是否有可能共享 TPS65381的连接?

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    是的、当然、原理图如下所示。 您还需要什么吗、请告诉我。 谢谢。

    此致

    隆化

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

    龙华先生、您好!

    我想您的接地连接很好、我的意思是即使通过模拟引脚也不能对来自 TPS65381的数字信号的 VCCIO 电平进行采样、这些电平也不会在 SPI 通信上产生任何问题。

    但是、我在 TPS65381的数据表中发现以下注意事项:

    根据其"如果在使用 SPI 通信时启用 DIAG_OUT 多路复用器、则在 NCS 引脚处于高电平并且 DIAG_OUT 多路复用器启用时 SDO 引脚不处于高阻抗状态。"

    实际上、如果 TPS35381的 nCS 为高电平、则 SDO 引脚应处于高阻抗状态、但本注释中指出的是、如果 DIAG_OUT 多路复用器启用、则即使 nCS 为高电平、ASO 引脚也不会处于高阻抗状态。

    例如、请参阅下图:

    我想、我们的连接仅如上图所示、看到两个从器件的 SDO 引脚将短接并与控制器的 SDI 相连、对吧? 这意味着、如果 NCS (或 SS)引脚处于高电平、那么根据手册他们认为 SDO 不会处于高电平状态、这意味着它会驱动一些信号、如果该电压为逻辑0、该怎么办? 它将影响另一个从器件通信、对吧?

    这可能是我们在启用 DMUX 时看到的问题。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的  Jagadish:

    感谢您的意见、这是一个很好的发现、真的很有帮助。 我将与硬件团队核实、以便查看注释是否有遗漏或可以完成的地方。

    总之、如果这是问题所在、为什么 AMUX 不会导致问题、正如注释中所说的启用 DIAG_OUT 多路复用器、它还包括 AMUX 和 DMUX。 仅当启用了 DMUX 时、才会出现该问题。

    顺便说一下、TPS SDO 直接连接到 TMS570 MISO、两者之间无电阻器。 MCP 在之间有一个电阻器、如下所示:

    对于硬件: 您是否建议在 TPS SDO 和 TMS570 MISO 之间添加一个类似的电阻器?

    对于软件:我无法想到解决方案、因为 AMUX 在这种情况下工作。 我们可以想象、在启用 DMUX (持续时间为50ms)时、不要通过 SPI 读取 MCP (因为 SPI 当时无法正常工作)。

    您能帮助进一步调查吗? 非常感谢。

    此致

    隆化

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

     龙华先生、您好!

    不管怎样、如果那是问题所在、为什么 AMUX 不会引发问题、这里的注解是启用 DIAG_OUT 多路复用器、它还包含 AMUX 和 DMUX。 仅当启用 DMUX 时才会出现此问题。

    您是正确的、我们也应该为 AMUX 收到、但不确定 AMUX 没有发生这种情况的原因。

    对于硬件: 您是否建议在 TPS SDO 和 TMS570 MISO 之间添加一个类似的电阻器?

    通常、我从来没有在 SPI 线路上看到过串联电阻。 我不知道这会有什么帮助、因此我无法推荐任何与之相关的内容。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    很抱歉耽误你的时间。 我认为你是对的。 我已尝试从 MCP3028上点击 SDO 引脚、如下所示:1点和2点(仅启用 DMUX 时)。 (因为 MCP3208和 TMS570之间有一个电阻器)

    第1点:SPI 日志显示 MISO 数据正确。

    第2点:SPI 日志显示 MISO 数据始终为0。

    看起来、当 DMUX 被启用时、MISO 数据由 TPS65381保持为0。

    唯一奇怪的是、 启用 AMUX 不会导致此问题。 似乎此问题是由 TPS 芯片引起的。

    此致

    隆化

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

    你好、龙华

    唯一奇怪的是 为什么启用 AMUX 不会导致此问题。 查看此问题是由 TPS 芯片引起的。

    您的回答正确、我也感到困惑。

    我的建议是再提出一个与 TPS65381A-Q1 器件相关的 e2e 主题。 如果我们这样做、则可以将线程分配给相应的 BU、以提供 TPS65381A-Q1 器件方面的专家。 因此、他们可能会更好地回答这个问题。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    当然、感谢您帮助调查此问题以了解详细信息。 非常有帮助。 我们现在可以关闭该主题。

    谢谢

    此致

    隆化