本文介绍在MCU平台上使用SPI-DirectC实现FPGA的在线升级功能。
对于使用Microchip FPGA若想使用离线方式对FPGA进行Bitstream的烧写,就不得不使用官方提供的DirectC组件(开源,包含JTAG-DirectC和SPI-DirectC),本文是在MCU(32bit)上实现的,采用的是SPI-DirectC组件。
1.硬件连接
硬件连接涉及MCU与FPGA如何通信,这里要将FPGA的SPI接口作为Slave,MCU的SPI接口作Master,MCU与FPGA的SPI连接如下图(参考Microchip官网“PolarFire_FPGA_and_PolarFire_SoC_FPGA_Programming_User_Guide_VB”技术文档):
硬件连接注意:
1)4线SPI接口上拉,下拉电阻配置
2)SPI_EN使能管脚需使能或连接到MCU的GPIO脚
3)IO_CFG_INTF此管脚为配置FPGA的SPI接口工作在Master模式(高电平)还是Slave模式(低电平),此管脚最好连接至MCU的GPIO脚,配合FPGA的RST脚实现动态配置FPGA的SPI为Slave模式。操作时序为:
IO_CFG_INTF拉低->delay 10ms->FPGA_RESET拉低->delay 20us->FPGA_RESET拉高
这样在不掉电的情况下,FPGA的SPI就进入了