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.

[参考译文] TMS570LC4357:MibSPI 从器件操作中的 CS_HOLD 函数

Guru**** 2454020 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/628480/tms570lc4357-cs_hold-function-in-mibspi-slave-operation

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

我将 TMS570LC43 Launchpad 用作从器件。 我的主设备是另一个 LaunchPad、工作正常。 我正在使用 Mibspi 发送8个字节、同时选择了 CS_HOLD。 因此 CS 在整个8字节传输期间保持低电平。  

但我的从设备没有正确响应。 它可以发送或接收每个传输的唯一第一个字节。 我注意到、如果我取消选中 CS_HOLD 位、那么主器件会在传输期间使 CS 线路生效和失效。 这对于从器件来说似乎是正常的。 我的从器件可以接收来自主器件的所有字节、也可以发送8个字节。 但这要求 在主器件每次传输字节后 CS 失效。  

我想更改此行为。 我希望从器件一次性发送8个字节。  

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

    Daniel、您好!

    这个问题的关键在于如何在从器件中设置 CS 保持位。 以下是器件 TRM>的摘录

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

    我很疲惫地切换这个位。 这不会改变行为。

    我已附上演示代码。  e2e.ti.com/.../6153.SPIMasterSlaveDemo.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找不到寄存器、该寄存器设置了从模式中缓冲器的长度。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可以帮我解决这个问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel、您好!

    我将把您的帖子转发给参与 MibSPI 模块设计的设计人员之一、以获取他对此问题的意见。 一旦我听到他的回复(我预计下周初)、我将再次提供更多信息。 很抱歉、您迟迟得不到解决方案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、

    您是否获得了任何更新?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel、您好!

    很抱歉耽误你的时间。 我咨询了我们的 MibSPI 专家。 显然、从器件在 MibSPI 模式下运行、不是标准 SPI 模式正确?

    此外、为了澄清这一点、从器件仅从主器件接收第一个字节、随后数据在 SOMI 引脚上移出、对吧? 您是否已设置传输组并加载了接下来要传输的数据? 如果在从器件 Rx 引脚上放置一个示波器、您是否看到数据从主器件移出到从器件、但从器件根本不"看到"它?

    我还想澄清一点、您要向从器件发送8个字节、以便从从器件发回8个字节。 当接收到位时、从器件只会将位移出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、请卡。 您说得对。 我将 MIBSPI1用作 MibSPI 模块。 从主器件中、我看到所有8个字节被传输到从器件(使用范围验证)。 我看到从机只能读取或发送一个字节。只有在主机取消置位并断言芯片选择线路后、才能传输下一个字节。 从器件需要从主器件取消芯片选择线路的置位、以便在一次传输中发送所有8个字节。 我在从机配置中使用 CS_HOLD 位,但它没有改变行为。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel:

    为了进行确认、在主器件和从器件中、MibSPI1都是在 MibSPI 模式下吗? 您是否在从器件中配置 MibSPI RAM 以接收多个字节? 此外、Byte0、Byte1、Byte2等之间是否存在差距

    当从器件接收到第一个字节时、您如何处理从器件接收到的数据? 它必须被读取才能为下一个字节做好准备、或者它必须被设置为接收缓冲区、以便将数据传输到该缓冲区。 他是您的设置的一部分吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、MIBSPI 在主器件和从器件中都进行配置。

    我将发送组配置为发送8个字节。 我假设接收器也是如此、因为在 HALCOGEN 中没有设置接收器模式。

    我正在使用 MIBSPI、因此我将从主器件一次性发送全部8个字节。 我也希望从设备中也有相同的行为。 在接收缓冲区已满后、我读取所有字节。

    各个字节之间没有延迟。  

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

    我再次对延迟答复表示歉意、因为我在过去一周半的训练中被绑在一起。

    您还需要配置从器件 TG。 TG 应对应于所选的芯片选择。 即、如果您使用的是 CS0、则是 TG1、如果是 CS1、则是 TG2等 我认为这是您面临的主要问题、因为如果没有配置 TG、您只需处于正常 SPI 模式、而不是缓冲使用模式。 无论您是配置主设备还是从设备、我相信 Halcogen 中的传输组配置选项卡都适用、因此这应该适用于配置应用程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定 是否未提及、但我已将 MIBSPI 配置为 Salve 模式。 我还负责处理各种 CG 的 CS 并正确配置。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢您的澄清、Daniel。 您的代码是否仍然与您先前发布的演示项目相同、或者如果我要查看、是否需要更新的项目?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、它与以前一样。