-2
  • Datasheet: Up to 133mhz
  • print(str(machine.freq())) = 125000000 (hz, presumably)
1
  • 3
    125 MHz fits the criteria of up to 133 MHz.
    – joan
    Aug 5 at 8:56

1 Answer 1

3

Have you read the various pico datasheets? If not, you should familiarize yourself with those. A microcontroller like the Pico is a different animal than a microcomputer like the Raspberry Pis. You will need to need to be a bit more hardware-oriented when dealing with a microcontroller.

The system clock speed is determined by several factors. The frequency of the crystal oscillator is the primary determinant, but not the only one. The external oscillator used for the Pico W (Y1) appears to be a nominal 12 MHz unit (p/n ABLS-12.000MHZ-B4-T) with a 30 ppm tolerance. Variances from the oscillator's specified load capacitance will further increase its frequency variance, as will the stability of the phase-locked loops (PLLs) that are used to step up the oscillator frequency to reach the system clock frequency.

There's a decent, brief description of some of the factors that influence the oscillator (and therefore the system clock) frequency in Section 2.3 of this RPi document. For further details, you can find many resources online (for example). It's a relatively deep topic; there are entire books devoted to it if you're that keen on the details.

crystal oscillator source

As you've recognized in your question, the specifications for the RP2040 chip (and therefore your Pico W board) indicate a maximum system clock frequency of 133 MHz. They also specify the "RP2040 supports 1MHz to 15MHz crystals". Consequently, one would expect the maximum system clock frequency of 133 MHz to be reached with the 15 MHz crystal. Since the Pico W board uses a 12 MHz crystal, it seems reasonable its nominal system clock frequency will be less than the maximum. Note this is not a precisely linear relationship, but in general the value of the system clock frequency will increase with increasing external input frequencies.

Finally, if you feel that 125 MHz is not sufficient, the RPi documentation suggests at least two alternatives for increasing it: replace your current Y1 component with a 15 MHz unit, or replace it with a CMOS clock source whose output is a 3.3V square wave.

3
  • Answer is shaping up to me as: Depends on its crystal which can vary. The datasheet I read mentioned in my question is where I got the 133mhz. You mention overclocking, I don't require it. Note if you underclock yours by half, expect it to freeze and have to flash_nuke.uf2 it to bring it back like I had to. This new world is exciting, a static shock can give out +2 thousand volts of electricity, allegedly. Too bad we only retain 80% what we read at most. I'll leave this question running a bit more in case anyone else wants to weigh in.
    – Flood
    Aug 6 at 2:34
  • @Flood: It seems you have got the gist of it. FWIW, I did not mention overclocking; I don't know that term is applicable on a microcontroller. Leave it open as long as you like - that's up to you.
    – Seamus
    Aug 6 at 2:41
  • Crystal circuits are analog not digital hence they are subject to time and temperature drift along with original frequency error. Also there is capacitance that will change with time and temperature. To get a better understanding of this try this link: "testworld.com/wp-content/uploads/…" I have instruments that have the crystal in an oven and require about 12 hours to stablize.
    – Gil
    Aug 6 at 4:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.