Controlling MCU with FPGA
Dear all,
I’m an embedded developer having pretty good experience in MCU, and I’ve recently begun working with FPGAs. I have no prior experience working on FPGA .
Current Scenario:
In my design, the FPGA orchestrates the system and issues commands to the MCU. The first task is delivering MCU firmware from a PC, through the FPGA (PC GUI -> FPGA -> MCU). I’ll use a custom PC GUI to send the firmware, but I’m uncertain about the appropriate pin connections, protocols, and overall transfer method.
Devices/system involved:
- GUI: Custom build GUI
- FPGA: Altera Cyclone V SX5CSXC6
- MCU: yet to decide(probably one of [stm32, Renesas, Analog device, TI])
My background Knowledge:
With MCU-to-MCU updates, the PC typically instructs the master MCU to place the slave into boot mode via reset/boot pins, the master acknowledges, and then forwards data transparently according to the MCU vendor’s bootloader protocol. That path is well documented. By contrast, I’m struggling to design an equivalent flow with the FPGA as the master.
Help needed:
Could you share best practices or references for:
Selecting the interface (e.g., UART, SPI, JTAG) and any required level shifting,
Controlling reset/boot-mode entry from the FPGA,
Deciding between transparent pass-through vs. FPGA-terminated protocol handling,
Managing flow control, buffering, and acknowledgments/error checking,
Example schematics or app notes for FPGA-to-MCU firmware download?
Any guidance or pointers would be greatly appreciated. Thank you in advance.