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:如何解读表20-3.

Guru**** 2471480 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/995111/tms570lc4357-how-to-interpret-table-20-3

器件型号:TMS570LC4357

早上好、

我们 在不同 MIBSPI 接口上使用硬件触发的 DMA 运行的不同外设之间遇到了一些干扰、我们在准确地了解 TMS570LC4357上 DMA 请求线路、源和通道的配置情况方面遇到了一些困难。

表20.3 (DMA 请求线路连接)将 DMA 请求源映射到请求线路。 我们并不完全清楚表中间一列中 MIBSPI 接口上的索引号(DMA 请求源)的含义是什么?您能澄清一下吗?

例如、在表20-3 DMAREQ[9]由 MIBSPI1[5]和 MIBSPI3[5]源共享、在这种情况下、5代表什么?  

此外、数据表的 DMA 部分指定了32个"DMA 通道"和48个"请求线路"的存在、而 MIBSPI 部分指定了可使用的8个通道和16个请求线路、这两者之间有何区别? AR 是否相同、我们是否只能为 MIBSPI 的 DMA 通道/请求使用子集?

感谢你的帮助。

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

    您好 Grimm、

    此器件上的 DMA 控制器具有32个通道和48个硬件 DMA 请求。 HW DMA 请求(第3列)已预先分配给外设(表20-3中的第2列)。

    是的、每个 MibSPI 提供多达8个 DMA 通道(RX 和 TX)和16个 DMA 请求线路。 您可以为您的应用选择其中一个。 从表10-3中、 来自 MibSPI1的16个请求行(MibSPI1后面括号内的数字)被连接至 DMA 请求#0、1、4、5、8、 9、12、13、16、17、 22、23、26、27、30、 31.  

    例如、如果您为 MibSPI DMA RX 和 TX 选择 DMA 请求#12和#13、还需要为 MibSPI1 RX 和 TX 使用 DMA 通道8和 DMA 通道9:

     1、将 DMA RX 数据包分配给 DMA 通道8、将 DMA TX 数据包分配给 DMA 通道9:

       dmaSetCtrlPacket (DMA_CH8、g_dmaCTRLPKT_RX);

       dmaSetCtrlPacket (DMA_CH9、g_dmaCTRLPKT_TX);

    2.将 DMA 通道8分配给 DMA 请求#12、将 DMA 通道9分配给 DMA 请求#13

       dmaReqAssign (DMA_CH8、12);    

       dmaReqAssign (DMA_CH8、13);

    MibSPI DMAxCTRL 寄存器中的 RXDMA_MAP 和 TXDMA_MAP

      RXDMA_MAP 和 TXDMA_MAP 应是上述括号中的数字。 RXDMA_MAP=6、TXDMA_MAP=7  

         

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

    您好、QJ Wang、

    感谢您的快速回答、您的回答对我了解 DMA 架构非常有帮助。 不过、我还有最后一个问题。 在表20-3中、有一个脚注附加到 MIBSPI 请求线路0和1、每个线路的脚注为"SPI1、SPI2、SPI3、SPI4、SPI5在兼容模式下的接收/发送"这是否意味着在不使用兼容模式时不应使用这些请求线路?

    我们在硬件触发 MIBSPI1 DMA 方面遇到了一些问题、这些问题似乎 仅在将 DMA_REQ0 / DMA_REQ1与 MIBSPI1_REQ1 / MIBSPI1_REQ0配合使用时发生。 对于任何其他配置、我们都不会遇到问题、这是否可能是由这种兼容模式引起的? 就我们从数据表中可以看出、请求线的选择应该对 DMA 传输的行为完全没有影响。

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

    您好 Grimm、

    并非所有16个 DMA 请求线路都可用于 SPI 兼容模式。 只能使用前两行、请求行0仅用于 SPI TX、请求行1仅用于 SPI RX。

    我在  MIBSPI1_REQ1/MIBSPI1_REQ0中使用 DMA_REQ0/DMA_REQ1尝试了 MibSPI1 DMA、之前没有发现任何问题。 您 是否正确地对 RXDMA_MAP 和 TXDMA_MAP 进行了编程? MibSPI 可在多缓冲模式或 SPI 兼容模式下使用。  

    您的理解是、 请求线路的选择绝对不会影响 DMA 传输的行为。

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

    MIBSPI1上有一个外设、该外设在 REQ0和 REQ1上以200Hz 的频率执行 DMA 请求传输。 只要我们能够测量、它本身就能完美运行。  

     我们还在 MIBSPI 2和5上有其他外设、这两个外设都以25Hz 的频率执行带有 DMA 的传输、并且偶尔会在外部触发异步传输(最多每秒几次)。 这些外设本身也不可肯定地运行。

    所有 DMA 传输都使用不同的通道、请求和存储器区域、并且已经按照20-3正确配置了 RXDMA_MAP 和 TXDMA_MAP。

    只有当我们将它们组合在一起(所有三个外设都处于活动状态)时、25Hz 外设上的传输将在一个看起来像是随机的时间(大约0-10分钟)后中断。 但是、当我们将 MIBSPI1外设的请求线路更改为除 REQ0和 REQ1以外的任何配置(使通道和其他所有配置保持不变)时、它将突然 正常运行、看起来是永远不变的。

    当 MIBSPI 2和5中的传输中断时、它看起来像是在 MIBSPI 缓冲模式的一个标志上挂起(我们使用7、等待 TXFULL 和 RXEMPTY)。

    虽然我们现在有了一个允许我们正确运行应用的配置、但我们仍在尝试了解为什么使用 REQ0和 REQ1首先中断应用。 正如您说过的、请求行的选择不应产生任何影响。 如果您有任何想法、我们很乐意倾听您的想法。

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

    如果同时只使用两个 MibSPI、是否会发生此错误? 我将运行3个具有回送功能的 MibSPI3、以查看是否可以获得错误。 感谢您报告此问题。

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

    我们的两个25Hz 外设在驱动器级别相当互连、我们无法仅使用其中一个外设和 MIBSPI1上的200Hz 外设进行测试。