Hi everyone,
I'm working with the nRF52840 using the nRF5 SDK v17.1.0 and SoftDevice S140 v7.2.0. My application uses QSPI for external Flash communication.
I have some doubts regarding the implementation of the workaround for the hardware anomaly Errata 244: "External flash and QSPI returns erroneous data when the SoftDevice is running."
1. SoftDevice Errata Fix Confirmation
My understanding, based on the errata documentation, is that Errata 244 is caused by a conflict when the HF clock switches (HFXO <-> HFINT) during QSPI operations. The workaround is implemented by ensuring HFXO stability.
Could you please definitively confirm that the fix for Errata 244 has been fully and correctly implemented in SoftDevice S140 since version 7.0.1 (or earlier, like v6.1.1)?
This confirmation would determine if we need to remove the manual application-level workaround.
2. Manual Workaroud Best Practice (if Needed)
Hypothetically, if the SoftDevice fix was not present, and we had to implement the workaround manually (e.g., using nrf_drv_clock_hfclk_request()):
-
Should we call
nrf_drv_clock_hfclk_request()before every single QSPI read/write operation, and then immediately release the clock withnrf_drv_clock_hfclk_release()? -
Or is it sufficient to call
nrf_drv_clock_hfclk_request()once during QSPI initialization, and keep HFXO requested for the entire time the QSPI peripheral is active?
Thank you in advance for clarifying the official status and the recommended manual practice.