首先整体简述下传输过程,DSP与SPI三线连接,无片选信号;DSP有引脚连接至外部中断引脚;SPI虽然为全双工,但是在此项目中只需要DSP传输给的数据,而不关心传输给DSP的数据。DSP作为从机。
从主机均使用SPI的传输。数据传输的整体流程是这样的:DSP准备好数据后,会通过引脚由低电平变为高电平来触发外部中断,在外部中断中将开启,然后数据开始传输,传输完成进入传输完成中断,对收到的数据进行处理。
对SPI及DMA进行配置:先对SPI进行配置,具体流程参考C672x的SPI手册(下面我也会贴出代码);然后对DMA的事件入口及传输入口进行配置。
一开始是倾向于用库的,但是在调试过程中发现麻烦重重,有些繁琐,而且好多函数不可见,封装在了库里,远不如自己写驱动更简单方便。
还有一个问题需要注意。的三个引脚跟启动有关,上电时刻三个引脚的状态直接决定启动能不能成功。刚开始调试时,DSP均下载好程序后,发现DSP无法启动,后来在DSP的仿真状态下查看寄存器发现引脚状态启动成功。
下面说下浮点数据的传输。就是因为其强大的数据处理能力,所以在传输给STM32的数据中自然缺不了浮点数。