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.

[参考译文] TMS570LS1114:传输组的 MIBSPI 动态切换

Guru**** 2392445 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1133024/tms570ls1114-mibspi-dynamig-switching-of-transfer-groups

器件型号:TMS570LS1114

您好!

目前、我正在处理一个问题、我希望动态更改已接收消息的触发长度、从而也更改中断的触发。  当前、传输组被置位、以便在接收到6 x 8位后触发中断(这会形成一个完整的消息数据包)。

但是、由于通信量太高或消息处理时间太长、我们希望动态调整长度、以便在已知时间内预期15个消息数据包(15 x 6 x 8位)。  因此、也只应触发一个中断、而不是15。

- 如何准确地动态调整现有传输组的长度,以便以不同的方式触发中断?

由于理论上可以设置多个传输组,是否可以在它们之间切换?  除长度外、所有器件都应具有或多或少相同的配置。

我希望有人能在这里帮助我

此致、

Konstanty Kuczynski

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

    您好 Konstanty、

    6x8表示传输组中的六个8位缓冲器? TG 缓冲区的最大长度为16位。 TG 最多可支持128个缓冲器。

    是的、您可以动态更改 TG 大小。 如果您使用 DMA 在 TG 缓冲区和 SRAM 之间进行数据传输、则可以使用 SRAM 中的两个缓冲区从 MibSPI RAM 接收数据。 通过这种方式、DMA 数据包目的地址应动态更改。

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

    您好!

    感谢您的快速回复、

    6x8表示 您所写的内容。  在一种情况下、我希望在接收到6个缓冲区后接收消息。 在另一种情况下、仅在90个缓冲器之后。  因此、每次在大小变化之前、只需向 Mibspi->TGCTRL 寄存器写入新的长度是否足够了?

    编辑: 遗憾的是、只需重新配置 TGCTRL 和 LTGPEND、这不起作用。 在我增加长度后、不再出现单个中断。  

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

    您好 Konstanty、

    更改后续传输组(TG)的 LPEND 和 PSTRT 是不够的。 您还需要更改 TXRAM 寄存器中的 CSHOLD 设置。  禁用最后一个缓冲区的 CSHOLD。