Datasheet

Table Of Contents
Table 258. COUNT
Register
Bits Name Description Type Reset
31:8 Reserved. - - -
7:0 NONAME RW 0x00
2.16. Ring Oscillator (ROSC)
2.16.1. Overview
A Ring Oscillator is an on-chip oscillator that requires no external crystal. Instead, the output is generated from a series of
inverters that are chained together to create a feedback loop. RP2040 boots from the ring oscillator initially, meaning the
first stages of the bootrom, including booting from SPI flash, will be clocked by the ring oscillator.
You may choose to include a crystal oscillator in your design if you require a more accurate frequency than afforded by
the ring oscillator.
Figure 32. ROSC
overview.
2.16.2. Frequency Variation
The frequency of the Ring Oscillator can vary with temperature, voltage, and speed of the silicon itself. For example, the
bootrom assumes a minimum boot frequency of 1.8MHz, with a typical boot frequency of 6.5MHz, and a maximum boot
frequency of 12MHz.
2.16.3. Dormant mode
The ROSC supports dormant mode, which allows it to stop oscillating until woken up by an asynchronous interrupt. This
can either come from the RTC, being clocked by an external clock, or a GPIO pin going high or low. To put the ROSC into
dormant mode, a specific value has to be written to the dormant register. This means it is unlikely to be done by mistake.
NOTE
It is assumed all clocks will be running from the ROSC at this point, and PLLs will have been stopped.
Pico SDK: https://github.com/raspberrypi/pico-sdk/tree/pre_release/src/rp2_common/hardware_rosc/rosc.c Lines 60 - 65
60 void rosc_dormant(void) {
61 // WARNING: This stops the rosc until woken up by an irq
62 rosc_write(&rosc_hw->dormant, ROSC_DORMANT_VALUE_DORMANT);
63 // Wait for it to become stable once woken up
64 while(!(rosc_hw->status & ROSC_STATUS_STABLE_BITS));
65 }
RP2040 Datasheet
2.16. Ring Oscillator (ROSC) 197