Arm Mbed OS support forum

SPIFBlockDevice long init() time when flash not present on STM32F746VG


We have been manufacturing a product using various STM32F7 series chips since February. Due to supply issues, we have been forced to use different but similar models of the F7 family, starting with the STM32F767, then the STM32F756VG, STM32F746VE, and now the STM32F746VG. In this product we have a winbond NOR flash chip connected via SPI, and use the SPIFBlockDevice library with LittleFileSystem on top. We want this product to be able to function without the flash in the event of part supply issues, and when testing this functionality on a board using the STM32F746VG, the SPIFBlockDevice init() function takes 9-10 seconds to return an error if the flash is not present. On all of the other listed chips this is not the case and the init() returns with an error immediately. When the flash is present the init() function returns immediately on all chips. All code and hardware are identical between different chips, so what might be causing the delay on the F746VG only?

I agree code working for F756VG should work on F746VG (if you don’t use HW crypto)…

I don’t use the hardware crypto at all (that I am aware of) and the code does work the same if the flash is present. It’s only when the flash is not present that it has a delay, which isn’t a big deal because it should theoretically always have the flash, but the fact that it does behave differently is somewhat worrisome. Leads me to wonder what other small things there are that could be behaving differently and what impacts they could have…