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

Why is the 64 MHz crystal oscillator (using external 32 MHz crystal) needed for radio operations?

Hi there,

we are developing an application based on simple IEEE 802.15.4 packets, for which we use the radio peripheral. Every example found in the SDK starts with switching on the HF clock by using the external crystal. At least, that is how I understand the line NRF_CLOCK->TASKS_HFCLKSTART = 1.

Why exactly is this needed? Can't we just run off the on-chip oscillator?

Thanks for clarification,
Tamas

Parents Reply
  • Hi Andreas,

    thanks for your reply. What you write is exactly my point. I am only sending one packet a time (triggered by the RTC), and only a few bytes at the PHY layer. I've seen the on-chip oscillator letting the clock drift 1-2% away from the targeted 64 MHz, but will this really make a difference in the layout of the (let's say 20 byte long) packet at 250 kbps?

    Thanks,
    Tamas

Children
  • Hi Tamas,

     

    As the internal oscillator is not accurate enough, the RF frequency generation uses the crystal input as reference, and will be wildly inaccurate. Even with a 1-2% inaccuracy this is way outside the 60ppm specifications for which the radio has been designed for and there will be a risk for timing violations on top and PLL lock on top of the 1-2% RF frequency inaccuracy. If the packet structure will make it or exactly what might fail I can not put my finger on, this has not been widely characterized as it should never be done.

     

    Best regards,

    Andreas

Related