2019-12-05 12:23 PM
Hi,
I'm trying to use the QSPI peripheral on the STM32F746, specifically on the STM32F746 Discovery board, however, as soon as any QSPI interrupt is enabled there is an interrupt present but upon reading the status registers there is no visible interrupt source. Can anyone recommend what I could be doing wrong here? Is there some other way I can see what has triggered the interrupt aside from looking at the QUADSPI status register?
Thanks,
Doug Burrell
2019-12-05 01:47 PM
Try clearing all the interrupt flags before enabling. There is probably a description of the correct sequence of events for enabling the quadspi in the datasheet.
2019-12-06 08:29 AM
I was able to get the continuous interrupts to stop but now NO interrupts trigger the interrupt routine! My change was to move all of the NVIC configuration into one spot. I've also set up a routine that will monitor the status of the QSPI interrupt and I can see that it eventually gets set but the system never calls the IRQ handler function.
2019-12-06 10:45 AM
I've got interrupts sort of working now. When I perform an erase operation on the Flash chip I use the HAL_QSPI_AutoPolling_IT function and then wait for the status match callback function however instead of a status match interrupt I get a Timeout interrupt but it just happens to be at the exact time the erase operation completes, around 340ms after the operation starts. If I do this with the HAL_QSPI_AutoPolling function instead, this is the time it takes to complete. Any idea why a Timeout interrupt is happening instead of the status match?