diff --git a/ports/stm32/rng.c b/ports/stm32/rng.c
index 85dcc14109cbd5e1c21d88bc9ce6392493c1ee63..e70eafae716e659a7be36dc81344d4974996e7ae 100644
--- a/ports/stm32/rng.c
+++ b/ports/stm32/rng.c
@@ -33,6 +33,11 @@
 uint32_t rng_get(void) {
     // Enable the RNG peripheral if it's not already enabled
     if (!(RNG->CR & RNG_CR_RNGEN)) {
+        #if defined(STM32H7)
+        // Set RNG Clock source
+        __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL1_DIVQ);
+        __HAL_RCC_RNG_CONFIG(RCC_RNGCLKSOURCE_PLL);
+        #endif
         __HAL_RCC_RNG_CLK_ENABLE();
         RNG->CR |= RNG_CR_RNGEN;
     }