5 ms·
Woah, 375Mhz overclock, from a stock 133Mhz: https://github.com/tvlad1234/pico-rv32ima/blob/main/pico-rv32ima/main.c#L36-L37 https://github.com/tvlad1234/pico-
by detrites 4y ago
Woah, 375Mhz overclock, from a stock 133Mhz:
https://github.com/tvlad1234/pico-rv32ima/blob/main/pico-rv32ima/main.c#L36-L37 https://github.com/tvlad1234/pico-rv32ima/blob/main/pico-rv3...
Almost 3x, without cooling...!
- londons_explore 4y agoThe fact that is possible usually indicates poor design... It means they probably tried to do too little in each clock cycle. Some multi-cycle operations could have been made single cycle... Or, they designed the part for one silicon process, but ended up changing path and manufacturing on a different one late in the design process. Either way, the outcome is the users will be paying more per part than they needed to.
- nitros 4y agoThe low base clock is likely RF certification related
- londons_explore 4y agoUnlikely if the clock is entirely on-chip. Clock signals on big motherboards are great RF radiators and hard to shield. But on a SoC, they aren't much of an issue.
- creshal 4y agoRP2040 supports external crystal oscillators for precision applications and ships with one on the reference board, the internal ring oscillator is only recommended for low precision, low cost applications.
- crote 4y agoEven 133MHz is overkill for most applications. It only has 264k of RAM anyways, and all application code needs to be loaded from external flash. Pretty much all peripherals are offloaded to dedicated hardware, and it even has two cores and pretty exhaustive DMA capabilities. There are very few embedded applications where you need more computation power than a RP2040 can offer without being limited by RAM or flash. Sure, they could have tried pushing it even harder, but why bother when it is already enough?
- londons_explore 4y agoWell In which case, doing more per clock cycle means fewer latches and d-flops, more efficient combinatorial logic, and ultimately they could have used less silicon area and made a cheaper chip with the same functionality. To be fair to them, I think it was a fairly inexperienced design team making their first silicon, in relatively low volumes (10's of millions). They weren't an established player trying to make a 1 billion+ production run super competitive product where fractions of a cent matter.
- creshal 4y ago1GHz is theoretically possible: https://www.raspberrypi.com/news/dont-try-this-at-home-overclocking-rp2040-to-1ghz/ https://www.raspberrypi.com/news/dont-try-this-at-home-overc...
- Dork1234 4y agoThe Pico was designed for battery powered projects, I for one wouldn't want a higher clock rate because it would lead to even more power issues while powered by battery. Right now you can get by with powering device RP2040,sensors, and display with cheap LiPo battery back. Anything over 200mhz and the SPI flash doesn't work anymore either. It can be pretty hard to fit all working memory and code into the 256KB. The chip was designed to replace Arduino boards, many of which run below 50mhz, and only process 8bits at a time. 133mhz, 32bit dual core is a sizable jump in performance already.
- detrites 4y agoPimoroni's "Picosystem" clocks the RP2040 at 250Mhz, has 16MB of working SPI flash including XiP and powers an IPS display: https://github.com/pimoroni/picosystem https://github.com/pimoroni/picosystem (see the note next to the no_overclock compile flag)
- Dork1234 4y agoYou are right, but their flashchip is only supported up 133mhz. https://www.trustedparts.com/en/part/winbond/W25Q16JVSSIQ%20TR https://www.trustedparts.com/en/part/winbond/W25Q16JVSSIQ%20... The flash chip they are using is only rated to 133mhz, so they are setting the SPI clock divider. in hardware.cpp #ifndef NO_OVERCLOCK // dividing the clock by two ensures we keep the spi transfer to // around 62.5mhz as per the st7789 datasheet when overclocking sm_config_set_clkdiv_int_frac(&c, 2, 1); #endif Learned a new work around for overclocking.
- detrites 4y agoAh, good to know. Thanks!
- solarkraft 4y agoIsn't clocking higher and thus completing the calculation and going back to sleep faster usually more efficient than clocking lower and taking longer to complete?