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.

[参考译文] RM48L952:与 LTC6820、LTC6804的 SPI 通信

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/606715/rm48l952-spi-communication-with-ltc6820-ltc6804

器件型号:RM48L952
主题中讨论的其他器件: HALCOGEN

您好!

我目前使用 RM48L952与 LTC6804电池监控器通信、使用 LTC6820 SPI 转 isoSPI 转换器。 我正在尝试从电池监控器获取 SPI 消息、但我只能在接收缓冲器中获取 FF。 我希望您能够查看我的代码、并提供一些关于我可能出错的信息。

我正在使用 HalCoGen 04.06.01代码生成工具来创建 SPI 通信函数。 随附了一个.c 和.h 文件、用于与电池监控器连接的我自己的函数、以及我的 Halcogen 项目文件以及 LTC6804和 LTC6820数据表。

如果有任何帮助,将不胜感激。

谢谢、

Johnnye2e.ti.com/.../5707.battery_5F00_monitor.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您需要任何其他信息来帮助解决此问题、请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、John、

    虽然我还没有机会查看您的代码、但您能否提供有关 SPI 设置的更多信息? 即、RM48是主器件还是从器件? 您是否有机会查看从外部组件传输到 RM48的信号? 如果外部位流被保持在高电平、RM48将自然接收所有 F、并且在外部组件传输上似乎会出现一个问题。 如果接收到的信号与有效的 SPI 消息切换、但您仍然看到所有 F 值、则 RM48可能存在我们需要研究的问题。 此外、您是否确认外部设备正在接收正确的信息? 您可能需要在 isoSPI 转换器的任一侧进行探测、以确保完整的数据路径。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卡盘、

    感谢您的回复。 我正在使用 RM48的 SPI2、它处于主模式、我使用 Halcogen 设置。 我能够证明外部组件(LTC6804和 LTC6820)工作正常、因为我可以使用 LTC 的测试 GUI 正确发送和接收消息。

    我正在使用 LTC 的 isoSPI 总线分析仪读取 LTC6804接收到的 SPI 消息、当我尝试使用 RM48时、分析仪上甚至不会出现 SPI 消息。 不过、有趣的是、当 RM48上没有运行任何程序、但它连接到 LTC6820时、总线分析仪会读取 RM48发送到 LTC6820的所有 FF。

    请告诉我其中是否有任何一项帮助。

    Johnny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在使用它时发现了其他一些东西。

    我还没有弄清楚 SPI2中控制这种情况的确切 Halcogen 设置、但有时我不接收接收接收缓冲区中的所有 FFs、而是接收我发送的消息。 LTC6804似乎不会将它发送回我、因为我移除了线路、但仍然获得了相同的结果。

    对可能导致这种情况的原因有什么想法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、我已经测试了 Halcogen 提供的主从 SPI 示例程序(SPI1作为主器件、SPI2作为从器件)、并且我获得了相同的结果(SPI1的 RX 缓冲器全部为 F)。 我遵循了有关如何在 Halcogen 中设置 SPI 驱动程序的注释中的说明、但没有任何效果。

    如果能提供这方面的任何帮助,将不胜感激。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 John:

    很抱歉耽误你的时间。 我将查看您的代码并返回给您。 此线程开头附加的代码是否仍然代表您的活动代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    唯一的主要区别是我使用的是 SPI1而不是 SPI2。 这是因为我最终需要将以太网用于这个与 SPI2进行多路复用的项目、所以我不能同时使用这两个项目。 我已经获得了大家提供的示例 SPI 代码来实现这一目的、但与 LTC6820的通信仍然不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 John:

    您为 LTC6820配置了什么 VDDS? 到 Hercules 器件的输出需要介于3.0和3.6V 之间、这是因为 Hercules 器件上的 IO 不能耐受5V 电压。

    如果您能够在 SPI1和 SPI2之间进行通信、代码很可能没有问题。 您提到、当 RM48上没有运行代码时、您会在 isoSPI 总线分析器上看到所有 F? RM48是否保持在复位状态? 如果 RM48上没有运行的代码并且它是主器件、那么 SPI 时钟的源是什么?

    您是否与线性应用工程师讨论过这一点? 在我不知道的 Hercules 上的 isoSPI 和标准 SPI 之间的接口中可能缺少一些东西。 我相信他们应该在将器件连接到标准3.3V SPI 方面拥有更丰富的经验、并且能够更快地找到解决方案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我用于通过 VDDS 为 LTC6820供电的电池为4V。 那么、您说我应该使用电压较低的电源吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    根据 LTC6820数据表、这意味着 VOH = 0.8*VDD = 3.2V 且 VOL = 0.2V 最大值、因此电压电平应该很好。

    查看 LTC6820数据表、可以看到以下典型实现的示意图。

    这是否也反映了您的实施情况、同时 Hercules 器件是主器件? 此外、MCU 上的任何信号上是否有上拉/下拉电阻?

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

    这是我要使用的设置。 我本应该更具体一点、我将使用 DC1941D、这是用于 LTC6820的演示板。 上图来自 DC1941D 的数据表。

    至于上拉、我通过 Halcogen SPI1 Port 选项卡在 RM48的所有 SPI 信号上启用它们。

    作为更新、我将为 DC1941D 提供3.3V 电源、而不是4V 电源。 尽管数据非常糟糕、但 isoSPI 总线分析器正在显示通过的数据。 我正在尝试了解它、看看它是否发生了某种变化或类似的变化。

    Johnny。

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

    您能否检查相位和极性设置以确保两个节点匹配配置? 此外、您应该能够使用示波器监视数据线、以查看是否可以捕获传输序列。 这将显示 Hercules 引脚上的数据是否符合预期、以及它们是否与您使用的 isoSPI 分析器工具所看到的内容相匹配、前提是它以某种方式连接到 EVM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卡盘、

    我通过将相位设置为0、极性设置为1、并在传输之间添加延迟并使芯片选择处于非活动状态来使其正常工作。

    但是、我想讨论一个关于 RM48x 上的 SPI 通信的新问题。 是否可以在启用以太网的情况下完成? 我希望能够获取接收到的数据并通过以太网发送数据、但我只能在禁用以太网时(通过 Hercules 板上的开关)使 SPI 通信正常工作。 是否有方法同时使用 SPI 和以太网?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 John:

    很高兴您能够缩小 SPI 的配置范围。 除非存在引脚冲突、否则两个 IP 之间没有任何其他阻塞机制或依赖关系。 它们甚至位于器件内的不同时钟域上。 我们是否可以关闭此主题并打开新问题的另一个主题? 最好从跟踪和搜索的角度来看。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我将在另一个线程中打开它。