From d420b4e478267cf8c6c0136982bdeeedaccf3920 Mon Sep 17 00:00:00 2001 From: robert-hh Date: Tue, 20 Feb 2024 21:46:57 +0100 Subject: [PATCH] rp2/main: Set the default clock frequency at boot. As a side effect, the peripheral clock will be set to 48Mhz and both UART and I2C will not be affected by CPu speed changed using `machine.freq()`. With the change the UART baud rate range is 50 to 3_000_000. Signed-off-by: robert-hh --- ports/rp2/main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ports/rp2/main.c b/ports/rp2/main.c index 1ce1d2bf31..fa5495bf41 100644 --- a/ports/rp2/main.c +++ b/ports/rp2/main.c @@ -80,6 +80,9 @@ int main(int argc, char **argv) { pendsv_init(); soft_timer_init(); + // Set the MCU frequency and as a side effect the peripheral clock to 48 MHz. + set_sys_clock_khz(125000, false); + #if MICROPY_HW_ENABLE_UART_REPL bi_decl(bi_program_feature("UART REPL")) setup_default_uart(); @@ -231,6 +234,10 @@ int main(int argc, char **argv) { gc_sweep_all(); mp_deinit(); + #if MICROPY_HW_ENABLE_UART_REPL + setup_default_uart(); + mp_uart_init(); + #endif } return 0;