Other Parts Discussed in Thread: AM3358
主题中讨论的其他器件:AM3358
工具/软件:TI-RTOS
大家好、
我在使用 PDK 器件驱动程序"QSPI-MCSPI"的 SYS/BIOS 上以极短的间隔接收 SPI 数据时遇到问题。 我想在20MHz 时每50微秒发送32*16位值。 为了优化性能、我尝试通过 DMA 缓冲数据、但一旦我使用 memcpy 将数据存储在另一个缓冲区中、我就会丢失一些数据。 我也尝试不使用 DMA、但我也不知道。 您是否知道是否存在低于我要求的性能限制? 如果是、您是否有其他将 BeagleBone Black 与 AM3358芯片结合使用的想法? 我很高兴知道 DMA 缓冲的限制。
编辑:当我将逆变器设置为每90微秒一次时、我从 DMA 缓冲器中获取正确的数据。 每隔90微秒以下、就会在缓冲区的特定指数(索引:0xF、0x20、0x40)处产生数据输出、这些指数均为16的倍数。 我的缓冲区类型为"uint16_t"。 我用相同的结果多次测试了正极和负极场景。
编辑:作为概述、我将使用芯片选择线路从 STM32板发送数据。 了解 DMA 或 SPI 模块是否是底部传感器会让人感兴趣。 数据损坏发生在 DMA 数据包之间。 我尝试了64至2048 16位值(128至4096字节 DMA 缓冲区大小)之间的不同 DMA 缓冲区。
编辑:我100%确定数据丢失发生在两个 DMA 数据包之间。 当我将缓冲区增加到4096字节时、我得到4096个正确字节、但下一个 DMA 缓冲区不接收第一个数据字节。 是否有任何方法可以提高 DMA 性能?
此致