This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52832 Errata 220 clearification

Hi there

I have a question about the newly added errata No. 220 of nRF52832 Rev 1 Erratasheet v2.1.

We don't use the WFE instruction but call sd_app_evt_wait(). Does the errata apply to this function call with SoftDevice versions <8.0?

If this is the case, does the SoftDevice configure TIMER0 to run with the PCLK1M? In the SoftDevice specification it says that when using the Multiprotocol support with the radio timeslots that TIMER0 is configured to run at 1MHz. For the regular usage it doesn't say what TIMER0 is configured as.

And is it correct that the Softdevice does not use DMA?

Thank you in advance!

Regards,

Pascal

  • Hi Pascal,

    We don't use the WFE instruction but call sd_app_evt_wait(). Does the errata apply to this function call with SoftDevice versions <8.0?

    Unfortunately, apart from doing many other things sd_app_evt_wait call the WFE instruction. So yes, this errata applies to all the softdevice versions <8.0 

    If this is the case, does the SoftDevice configure TIMER0 to run with the PCLK1M? I

    I am not supposed to talk about the internals of softdevice functionality. I am trying to understand why you need to know if it uses PCLK1M. The errata is also valid for PCLK32M and this is running when the CPU is running. 

    And is it correct that the Softdevice does not use DMA?

    The RADIO has EasyDMA and the softdevice definitely uses this. 

  • Hi Susheel

    Thank you for the quick reply!

    I wanted to know whether the PCLK1M is used by the SoftDevice since this is one of the conditions that can lead to errata 220. We are in system On mode and are not using the PCLK1M nor the PCLK32M.

    The RADIO has EasyDMA and the softdevice definitely uses this. 

    So in case our application is in system On mode and just the softdevice is running, is it possible that the softdevice itself can trigger errata 220?

  • The errata happens only from the transition for sleep mode to running mode during the first write cycle. 

    The app normally chooses to sleep in two way.

    1) calling _WFE directly and having full control on the sleep pattern. The side affect with this is that the app wakes up even for the softdevice reserved peripheral activity unnecessarily

    2) calling sd_app_evt_wait and the softdevice makes sure that it only wakes the app only if the app specific peripheral has generated the wakeup event.

    Now coming back to your question 

    Pascal Künzi said:
    So in case our application is in system On mode and just the softdevice is running, is it possible that the softdevice itself can trigger errata 220?

    If the app is always in system on mode then this errata will never be triggered. But that is never the case in the lower power apps. The softdevice will trigger this errata inside sd_app_evt_wait() which will be called by the app. Because this is where the CPU starts to execute after the wakeup 

  • That's good to know, thank you.

    I have just one short question left:

    The errata is also valid for PCLK32M and this is running when the CPU is running. 

    You say that the PCLK32M is running when the CPU is running. According to this devzone entry, only the PDM and I2S peripheral use this clock source. Doesn't the clock control disable the PCLK32M when neither of the two peripherals are active?

  • The devzone link you mentioned is discussing the clocks in context of peripherals and its resources. CPU can be seen as a peripheral but its clock usage is something we cannot control from the APP. So I guess MartinBL kept the CPU out of the context. 

Related