2025-06-17 8:31 AM
I've setup the FMC peripheral of an STM32H7 to read registers from an FPGA by creating a faux SRAM interface on the FPGA. This works just fine so long as the FPGA has no issues but if, say, the FPGA is unprogrammed or the FPGA data bus gets hung, this forces the STM32 to hang. It doesn't seem to be able to recover in this event.
Is there a way to timeout the memory bus/FMC peripheral to recover from this?
2025-06-17 8:45 AM - edited 2025-06-17 8:53 AM
Hello,
Why are you considering if the FPGA is unprogrammed the data bus hangs? If you are in SRAM mode you can normally read and write even without any device connected. Except if you are using the NWAIT, in that case there is no way to recover except to reset the CPU for example using watchdog.
2025-06-17 9:31 AM
I am using the NWAIT. We do have a watchdog but I was looking for a way to recover that was more graceful.
Are there design considerations around removing the NWAIT? Is it just a little slower (because of the need to restart the transaction each time)?