你好!
我计划在 mibspi 上使用 DMA、目前正在测试模块、但我很难理解它的确切工作方式。
Mibspi 必须处理至少为2个字节到最多为823个字节的数据大小、并且可能会有所不同。 问题是使用 DMA 传递823字节数据包、我提出了2个选项。
使用 Mibspi 的所有128字缓冲器、将其作为128个元素、7个帧数据传递。 在这种情况下、(128*7)-823 = 73字节将是冗余的。 我不知道我是否正确、但如果 DMAxCOUNT 实际上是 DMA 传输的元素数量、那么我可以在 Mibspi 和 DMA 传输(接收) 823字节数据时停止它。
2.仅使用 mibspi 的1字缓冲区、将其作为1个元素、823帧数据传递、反之亦然。 写入 TX 的单个缓冲器并从 Rx 的单个缓冲器中读取。
我尝试了这两种方法来实现这一目标。 不幸的是、它运行得不是很好。 实际上、我甚至不确定这些是否可行。 我已经尝试更改了许多控制值、最常见的问题是 、mibspi Rx DMA 接收到的数据 变为相同的数据(例如 :接收"abcdefgh"变为"cccccccccccccccc")。 我想知道使用数字回送是否必须实现 这一点。
我会详细介绍一下、但 我想知道这些选项中是否有一个是可行的。
对于这种通信、最好使用兼容的 SPI、但 spi5 TX/Rx 和 sci TX/Rx 共享相同的 DMA 请求行、并且由于我必须同时使用这两者、我想使用 mibspi5并为 mibspi5使用其他 DMA 请求行。
感谢您的帮助!


