Overclocking de cualquier modelo de Raspberry Pi es realmente simple Pero hacer overclocking Frambuesa Pi Pico es aún más simple. Todo lo que se necesita son dos líneas de MicroPython y su Pico puede ejecutarse fácilmente al doble de su velocidad normal, y sin necesidad de mejores enfriadores de CPU.
En este tutorial, overclockearemos un Raspberry Pi Pico a 270 MHz, el doble de la velocidad base de 133 MHz. Luego, escribiremos un script para probar hasta dónde podemos hacer overclocking y luego qué tan bajo podemos hacer overclocking de la CPU.
Quizás esté pensando «¿Por qué overclockear un Raspberry Pi Pico?» Usando un lenguaje de bajo nivel, como C, el Pico puede usarse para jugar juegos como Doom (el juego completo) usando una placa de salida HDMI. Puede emular computadoras retro como ZX Spectrum y Commodore 64. Con MicroPython, el overclocking nos dará un aumento de velocidad notable, y el underclocking puede brindarnos una mayor duración de la batería si lo usamos en un proyecto alimentado por batería.
Este cómo funcionará con Raspberry Pi Pico, Pico W y muchos otros de los mejores placas basadas en RP2040 cuando se utiliza MicroPython. Existen otros métodos para cambiar la frecuencia al programar las tarjetas en otros idiomas.
Para este proyecto necesitarás
Una Raspberry Pi Pico o Pico W o cualquier otra placa basada en RP2040 que ejecute MicroPython.
Overclocking del Raspberry Pi Pico con MicroPython
1. Instale la última versión de MicroPython en tu Pico. Si aún no lo ha hecho, siga hasta paso tres de esta guía para aprender cómo
2. En el REPL, importe el módulo de la máquina y comprobar la velocidad actual de la Raspberry Pi Pico. El valor devuelto probablemente será 125000000 Hertz (125 MHz). Algunas placas o versiones de MicroPython pueden tenerlo un poco más alto de forma predeterminada.
import machine
machine.freq()
3. Usando el mismo comando, establezca la velocidad de la CPU en 270 MHz.
machine.freq(270000000)
4. Comprobar la velocidad de la CPU para asegurarse de que el overclock ha funcionado. El valor devuelto debe ser 270000000 Hertz (270 MHz).
machine.freq()
En este momento, este aumento de velocidad es temporal. Cuando se reinicia el Pico, volverá a su velocidad predeterminada (generalmente 125 MHz). Para retener el overclock, debe configurarse cada vez que se inicia el Pico. Agregar estas dos líneas al comienzo de cualquier código MicroPython acelerará el RP2040 a la velocidad deseada cuando se ejecute el código.
import machine
machine.freq(SPEED IN HERTZ)
¿Hasta dónde se puede empujar el RP2040?
Los overclockers siempre buscan ir un poco más rápido, pero ¿cómo podemos determinar nuestra suerte en la lotería de silicio? Para eso automatizamos el proceso con un poco de código Python.
1. En Thony comenzar un nuevo archivo por primero importando dos módulos. La máquina se usa para cambiar la velocidad de la CPU y el tiempo se usa para marcar el ritmo del código.
import machine
import time
2. Cree una variable, frecuencia y almacene 270 MHz como Hertz. Sabemos que 270 MHz funciona bien, por lo que partimos de una velocidad de trabajo conocida. Si su objetivo es hacer underclock al RP2040, reduzca el valor en consecuencia.
freq = 270000000
3. Cree un objeto, velocidad, y allí almacene la velocidad actual del RP2040. Usando un poco de matemáticas, el valor devuelto en hercios se convierte a megahercios, luego se redondea a un lugar decimal, antes de convertirse finalmente en una cadena.
speed = str(round(machine.freq()/1000000,1))
4. Imprime la velocidad actual de la CPU como parte de un mensaje. Necesitábamos convertir la velocidad en una cadena para colocarla en el mensaje.
print("The starting speed is",speed,"MHz")
5. Imprima un mensaje para el usuario, informándole que la prueba comienza en cinco segundos, luego espere cinco segundos.
print("Starting the test in five seconds")
time.sleep(5)
6. Cree un bucle para ejecutar continuamente el código. Podríamos usar un ciclo for, pero un ciclo while True fallará cuando alcance una frecuencia mala, por lo que no ganamos nada con un ciclo for.
while True:
7. Establece la velocidad de la CPU usando la variable freq.
machine.freq(freq)
8. Cree un objeto, velocidad, y allí almacene la velocidad actual del RP2040. Usando un poco de matemática, el valor devuelto en Hertz se convierte a MegaHertz, luego se redondea a un lugar decimal, antes de convertirse finalmente en una cadena.
speed = str(round(machine.freq()/1000000,1))
9. Imprime la velocidad actual de la CPU como parte de un mensaje. Necesitábamos convertir la velocidad en una cadena para colocarla en el mensaje.
print("The starting speed is",speed,"MHz")
10 Incremente la velocidad en 10 MHz y guarde el valor en freq.. El operador += se traduce como freq = freq + 10000000. Es más corto y ordenado en el código. Ambos funcionan igual de bien y se pueden intercambiar para mayor claridad. El += se puede cambiar por -= para que los valores cuenten hacia atrás para encontrar la velocidad de CPU más baja.
freq += 10000000
11 Pausa el código durante dos segundos. Esto nos dará tiempo para leer los valores antes de que se repita el bucle.
time.sleep(2)
12 Guarde el código en Raspberry Pi Pico como speedtest.py y haga clic en ejecutar. Nuestra mejor velocidad fue de 280 MHz, pero es posible que tengas suerte.
También probamos un underclock (reduciendo la velocidad en 10 MHz en cada ciclo) y logramos bajarlo a 10 MHz, lo que debería reducir significativamente la cantidad de consumo de energía para proyectos que requieren una batería de larga duración. No pudimos capturar ningún dato debido al nivel de equipo de precisión requerido.
Listado completo de códigos
import machine
import time
freq = 270000000
speed = str(round(machine.freq()/1000000,1))
print("The starting speed is",speed,"MHz")
print("Starting the test in five seconds")
time.sleep(5)
while True:
machine.freq(freq)
speed = str(round(machine.freq()/1000000,1))
print("The current speed is",speed,"MHz")
freq += 10000000
time.sleep(2)