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

Override control of crystal oscillator activity for low latency start up

Dear Sir/Madam,

We are trying to lower the low frequency crystal start-up time.

https://infocenter.nordicsemi.com/topic/ps_nrf52840/clock.html?cp=4_0_0_4_3

In the description in the link above, you mention "Firmware (FW) override control of crystal oscillator activity for low latency start up"

We could not find any information about this functionality. Could you please point us in the right direction, thank you!

Regards.

  • Hi Jasper

    I will have to do some asking around internally to figure out exactly what is meant by this statement, but keep in mind that even if the crystal startup time is slow the system will provide a 32kHz clock based on the RC oscillator until the crystal is started. In other words you can start peripherals that require LFCLOCK even if the crystal needs more time to start. 

    Also, most applications don't have to start this very often, since it can be kept on in system on sleep mode without a big penalty to sleep currents. If you plan to use system OFF on the other hand you will not be able to keep the 32kHz crystal running, and will need to start it after wakeup. 

    Best regards
    Torbjørn

  • We indeed use system off extensively so I would be very interested in this functionality. It would be much appreciated if you could provide us with some additional information.

    From our testing it seems softdevice starts the LFXO faster than is possible using the registers (when configured to use the LFXO as clock source). As it's a binary of course we cannot investigate further as it could start with LFRC and then switch as you suggested.

  • Hi 

    You can test this yourself by connecting the RTC TICK event to a pin through GPIOTE, and check on the scope how fast it turns on after you enable it. 

    I tried this out myself by modding the temperature example from nRF5 SDK v17.0.2, and I have attached the code here:
    275640_temperature.zip

    I toggle P0.03 just before I start the LF clock, and can verify that P0.04 starts toggling more or less 1ms later (as documented here):
      

    The startup time appears unaffected by the choice of clock source (RC or external), but when choosing external you should see a slight shift in frequency some ~300ms later when the crystal starts running. 

    Best regards
    Torbjørn

Related