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.

[参考译文] RM46L830:RM46L830PG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1433017/rm46l830-rm46l830pg

器件型号:RM46L830
主题中讨论的其他器件:ADS1256

工具与软件:

我正在对 RM46L830PGET 上的 SPI 通信存在的问题进行故障排除。

我注意到、如果我短暂地将 MOSI 信号短路、SPI 端口将停止发送数据。 SPI 时钟停止并且不再有数据。
我们的 CS 线路在软件中进行手动控制、它们会保持正常运行。  

如果想知道是否有某种情况会导致 SPI 内部寄存器复位、但处理器的其余部分会继续运行。  
我注意到有一个奇偶校验错误检查、但我们不使用它。 只需要找一个可以停止 SPI 时钟的器件、因为软件没有停止时钟。  

是否存在可导致此问题的已知情况?

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

    您好、Gary、

    [quote userid="548705" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1433017/rm46l830-rm46l830pg 我注意到如果我暂时将 MOSI 信号短路、SPI 端口将停止发送数据。 SPI 时钟停止并且不再有数据。
    我们的 CS 线路在软件中进行手动控制、它们会保持正常运行。  [报价]

    您的意思是、

    如果您使用的是小长度电缆、那么 SPI 会停止通信? 我的理解是否正确?

    是否可以正常使用长电缆而不会出现任何问题?

    我以前没有看到过这样的问题。

    您还可以在下面的常见问题解答中找到有关 SPI 的一些工作示例、您可以参考它们一次:

    (+)[常见问题解答] TMS570LC4357:适用于 Hercules 控制器的示例和演示(例如 TMS570x、RM57x 和 RM46x 等)-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    ——
    谢谢、此致、
    Jagadish。

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

    Jagadish、

    感谢您的帮助。 抱歉我的问题令人困惑。 我将尝试在下面进行澄清。 我正在调查我们公司的一个旧器件问题。

    当我说"short"时、这意味着 MOSI 信号接地几毫秒。 发生这种情况时、SPI 停止工作。 Hercules 中的 SPI 外设似乎被复位或被锁存。 我知道 MOSI 接地是不应该发生的事情、但我希望了解如果 MOSI GPIO 暂时接地、Hercules 处理器中的哪种机制会关闭 SPI 端口。 是否设置了某种类型的错误位? 这是 Hercules 的设计功能吗?  
    我可以暂时将 MISO 接地、而 SPI 会在将其从接地释放后继续工作。 我可以暂时将 SPI 时钟接地、SPI 会在将时钟从接地释放后继续工作。  
    我想知道为什么 MOSI 输出暂时接地时、SPI 停止工作?

    我正在调查为什么我们的器件会定期运行数天、一切正常。 但是、有时单元会收到软件错误、因为它停止从 SPI 获取数据。 我想知道是否有原因导致 MOSI 接地。  我在此设计中看到的一个要点是 Hercules MOSI 信号、SPI 时钟信号和片选信号都带有1000pF 电容器。 我假设这些是在设计过程中的某个时间点为 EMI 添加的。 我的理论是、这些电容可能会导致 SPI 停止工作、就像我故意暂时将 MOSI 引脚接地一样。  

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

    是否有办法就此问题获取帮助? 我需要了解当 SPI1 SIMO 输出的电流过大时导致 SPI 端口复位的机制。 其他两个 SPI 端口没有执行此操作。 因此、我认为在处理器裸片中的引脚位置可以执行一些操作。 可能是高电流尖峰会导致 SPI 寄存器中出现损坏现象、也可能会触发电源监控器。 我需要与了解该处理器硬件的 TI 人员交谈。  

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

    您好、Gary、

    在 Hercules 器件(包括 RM46x)中、我以前从未见过此行为、所以您可以提供更多详细信息、以便我可以在结束时触发此问题并验证该行为。

    1.如何操作 RM46x,主或从?

    2、另一个终端设备是什么、例如、如果 RM46x 是主设备、那么您测试的从设备是什么?

    3.您从 RM46x 发送什么样的数据? 您发送邮件的频率如何? 类似地、您正在从 SPI 的另一个终端设备发送什么数据?

    请提供这些详细信息、以便我可以在结束时触发此问题并进行进一步分析。

    ——
    谢谢、此致、
    Jagadish。

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

    谢谢 Jagadish 的答复。

    我们使用 SPI1作为主设备。 我们将使用引脚93 (MIBSPI1SIMO)、94 (MIBSPI1SOMI)、95 (MIBSPI1CLK)和105 (MIBSPI1NCS[0])。  
    该软件将 CS 引脚手动控制为 GPIO。  

    SPI 时钟为1.8MHz。 SPI 信号会传输到主板上的连接器。 一根4英寸长的双绞线电缆连接到具有 ADS1256模数转换器的另一块电路板。 ADS1256在 SPICLK、SIMO 和 CS0引脚上有1nF 电容器接地。 我们 与 ADS1256之间的数据访问速度大约为每秒3000次。  

    SPI1将定期关闭、就像它丢失了设置一样。 这是非常罕见的。 有时、系统将运行数天或数周、而不会出现问题。  

    我快速重现问题的唯一方法是快速将 SIMO 引脚接地。 只需在引线接地时快速触摸 SIMO 引脚、就会导致 SPI1时钟停止。 这会导致软件因不良数据而出错。  

    我还可以通过增大1nF 电容器的值来提高 SPI1复位的频率。

    我很好奇、您是否可以在开发板上设置 SPI1、以及通过将 SPI1SIMO 引脚快速连接到 GND 来获得类似结果。  

    我的理论是、当 SIMO 引脚转换时、1nF 电容器消耗足够的电流、有时会导致 SPI1在 Hercules 内部复位、或者可能只有一个 SPI1寄存器损坏。

    我们还在与 Hercules 相同的 PCA 板上使用 SPI3和 SPI5。 我们可以快速将 SIMO 引脚接地、这样它们就能继续正常工作。   如果 Hercules 芯片上的电流过大、SPI1 SIMO 引脚的位置有可能会损坏某些寄存器。  

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

    尊敬的 Gary Holder:

    我了解了问题的根本原因。

    实际上、SPI 继续比较发送数据(写入 TX 数据寄存器)和发送数据(实际在主机输出线路上发送)。 每当它发现这两者之间存在不匹配情况时、它就会设置 BITERRFLG (位错误标志)、如下方突出显示。

    每当设置该标志时、就不会发生任何进一步的通信、直到在软件中再次清除该标志。 要再次清除该标志、我们需要写入相应的位。

    出现这种错误的原因可能是数据速率高、容性负载或另一个主设备尝试在主设备上发送一些数据。 否则、我们将这条线手动接地。 所以、在所有这些情况下、可以设置该位、每当设置该位时、不会发生任何进一步的通信、直到我们在软件中再次清除该位。

    在您的软件中启用此中断或只是轮询此位、所以每当这个错误发生时、就会创建错误标志、并再次启动通信。

    ——
    谢谢、此致、
    Jagadish。

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

    谢谢 Jagadish、

    在被清除之前、我并不知道该位会关闭 SPI 端口。 我相信这是我们看到的问题。 我将让我们的软件团队查看此内容、并确认他们可以清除此位、然后继续进行沟通。 我将在这里报告结果。  

    有意思的是、处理器手册提到了容性负载是一种可能的原因。 我看着她的背影,脸上露出一丝笑意。 :)


    再次感谢大家的帮助。  

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

    您好、Gary、

    我很高兴!

    请告诉我是否解决了问题。 我做了实际测试、解决了这个问题。

    ——
    谢谢、此致、
    Jagadish。