STM32和FPGA通过SPI进行通讯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32和FPGA通过SPI进行通讯相关的知识,希望对你有一定的参考价值。

您好,我现在需要通过STM32与FPGA利用SPI进行通讯,FPGA选用的是XILINX的芯片,请问这两者之间如何实现呢,有没有参考的源代码,感谢您的帮助

参考技术A 先看下SPI的时序吧,这个简单,但SPI时序不唯一,随便用一种就可以,然后stm32的程序网上很多,建议用模拟的先做测试,如果有示波器可以直接用STM32SPI模块,FPGA的话很灵活,知道了stm32的时序后,一配合STM32就可了,至于用Verilog还是VHDL看个人爱好了,网上搜Verilog SPI程序应该能找到好多,而且硬件描述语言和芯片基本无关,找来的代码直接贴上都能用。stm32找来代码一般不能用,要调试一下。Q308680190本回答被提问者采纳 参考技术B 看时序图,会写vhdl吗?会的话,知道时序就可以实现

我现在需要用STM32控制FPGA并且和FPGA进行通讯,请问STM32和FPGA的接口怎样才能实现呢?请高手们帮忙解答

STM32提供了很多片上通信接口,如SPI,I2C,UART等,还可用IO直接并行传输,这些接口在FPGA上都能够实现。关键看你要通讯的数据量,要求的传输速率,对于串行并行的特殊要求,电路板空间要求等综合考虑,选择通讯方式。具体的FPGA代码都有软核或者示例代码,稍作修改都能用。STM32的代码网上就非常多了。 参考技术A uart iic spi fmsc这些都行!甚至io追问

用FMSC读取寄存器

追答

那就做一个双端口ram就行了

参考技术B 只要控制好时序就行了 参考技术C 本来,3s500e用xcf04就可以了,但后来发现成本高,而且后续要用到大容量FPGA配置好像比较麻烦,看到SelectMAP配置模式比较好,配置完后,接口还能当做IO用,可以减少FPGA与外部处理器的接口。

选用STM32为配置处理器,存储单元用SPI FLASH M25P64, 64Mbits/8MB,比我目前看上的XC6SLX150容量还要大接近1倍。

通过ISE生成BIN文件

使用STM32的DFU模式,生成相应dfu文件,下载到FLASH

Xilinx配置SelectMAP时需要用到如下信号:

输入:PROG_B,CSI_B,RDWR_B,D[7:0],BUSY,CCLK

输出:INIT_B,DONE

其中,如果clk小于50MHz,BUSY可以忽略

只配置一个芯片时,CSI_B置0就可以了

不进行读取时,RDWR_B置0,

剩下还有要注意的就是Byte Swapping问题,Xilinx的数据D0是MSB,和我一般编程习惯相反,硬件上我是D0 MSL的,所以走了点弯路,通过软件将D0-D7逐个翻转,再配置就成功了
参考技术D 这要看你fpga打算配置什么接口追问

题目已经说了用FMSC

以上是关于STM32和FPGA通过SPI进行通讯的主要内容,如果未能解决你的问题,请参考以下文章

STM32与FPGA用FMC进行通讯

STM32如何通过串口与FPGA之间进行通信?.及要注意的问题。刚上手希望越详细越好,谢谢。

STM32 SPI通讯

stm32-SPI通讯原理详解

怎么进行两个stm32之间的通讯

STM32CAN总线接口发送和接收数据