Forum Discussion
MT25Q512 Programming Issue When Connected to Cyclone 10CX150Y
Hello,
I would like to clarify the behavior of the following Quartus assignment:
`set_global_assignment -name TRI_STATE_SPI_PINS OFF`
After programming the FPGA with a configuration generated using this assignment, if we subsequently perform an Erase operation through Quartus, does the effect of `TRI_STATE_SPI_PINS OFF` remain active in the FPGA, or is it removed immediately?
I am asking because I observed that programming the external QSPI flash with an external QSPI programmer works successfully when using a blank, previously unconfigured FPGA. However, when using an FPGA that was previously programmed with a design containing `TRI_STATE_SPI_PINS OFF`, external QSPI programming does not work as expected.
Could you please clarify whether an Erase operation in Quartus also clears the FPGA configuration or state responsible for controlling the QSPI pins? Is a power cycle, assertion of `nCONFIG`, or another action required to release the QSPI pins and place them in high-impedance mode?
Best regards,
Aviram
Hi Aviram,
Thank you for the clarification.
TRI_STATE_SPI_PINS OFF affects the AS/QSPI pins only while the FPGA is in user mode. A Quartus Erase operation erases the flash but does not immediately clear the FPGA’s SRAM configuration.
For external programming, please assert nCONFIG low and nCE high before any QSPI activity and keep them asserted through Erase/Program/Verify. With nCONFIG low, the Cyclone 10 GX loses its configuration and tri-states its I/O, so the assignment is no longer active.
As the next diagnostic step, please power-cycle both devices while holding nCONFIG low, then reset/initialize the MT25Q512, including addressing, QE and protection settings, before programming. If the issue remains, please provide QSPI waveforms and the exact flash suffix and programmer version.
Regards,
Fakhrul