GD32H7开启3路SPI、6路DMA双向收发,同一时刻1路SPI、2路DMA没问题;多路同时SPI主,DMA经常失灵,不能操作SPI;SPI从,偶有错位
GD32H7开启3路SPI、6路DMA双向收发,同一时刻1路SPI、2路DMA没问题;多路同时进行SPI Master、DMA经常失灵,不能操作SPI;SPI从,偶有错位现象。有知道的大神麻烦给解答一下,谢谢。 看起来是SPI太快,DMA跟不上了,可以看看DMA寄存器有没有报错产生。
解决思路:
- 减小数据量(但需求不变,这点无法改变)
- 减小传输次数,增加每次传输数量,可以提高利用率。
- 利用好FIFO,提前准备数据,避免断流
- 使用性能的更高的内存,避免使用SDRAM,PSRAM等外部低速存储。
看看SPI有没有FIFO,配合DMA的连接连续传输,应该可以缓解些。 DMA参数设置不当 溢出错误可能导致SPI从模式数据错位 外设地址映射错误 内部寄存器损坏或丢失 DMA总线故障 程序逻辑错误 主从模式选择的设置和引脚SS(片选信号)的连接不一致,可能导致数据错位。 SPI从模式数据错位可能是由于时钟设置不当 应该都不行。目前还是解决不了
页:
[1]