Skip to content

Commit 47e678e

Browse files
committed
stm32: Use IC9 clock source for slow peripherals.
SPI5 doesn't work with clock source IC14. Instead of using another IC clock, switch to IC9 which is known to work with all peripherals. Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
1 parent adfe429 commit 47e678e

3 files changed

Lines changed: 18 additions & 18 deletions

File tree

ports/stm32/powerctrlboot.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -485,10 +485,10 @@ void SystemClock_Config(void) {
485485
LL_RCC_IC11_SetDivider(1);
486486
LL_RCC_IC11_Enable();
487487

488-
// Configure IC14 at 100MHz for slower peripherals.
489-
LL_RCC_IC14_SetSource(LL_RCC_ICCLKSOURCE_PLL1);
490-
LL_RCC_IC14_SetDivider(8);
491-
LL_RCC_IC14_Enable();
488+
// Configure IC9 at 100MHz for slower peripherals.
489+
LL_RCC_IC9_SetSource(LL_RCC_ICCLKSOURCE_PLL1);
490+
LL_RCC_IC9_SetDivider(8);
491+
LL_RCC_IC9_Enable();
492492

493493
// Enable buses.
494494
LL_BUS_EnableClock(LL_APB5 | LL_APB4 | LL_APB3 | LL_APB2 | LL_APB1 | LL_AHB5 | LL_AHB4 | LL_AHB3 | LL_AHB2 | LL_AHB1);

ports/stm32/spi.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ void spi_init0(void) {
184184
LL_RCC_SetSPIClockSource(LL_RCC_SPI3_CLKSOURCE_PCLK1);
185185
LL_RCC_SetSPIClockSource(LL_RCC_SPI6_CLKSOURCE_PCLK4);
186186

187-
// SPI4/5 clock configuration, IC14 (max 100MHz).
188-
LL_RCC_SetSPIClockSource(LL_RCC_SPI4_CLKSOURCE_IC14);
189-
LL_RCC_SetSPIClockSource(LL_RCC_SPI5_CLKSOURCE_IC14);
187+
// SPI4/5 clock configuration, IC9 (max 100MHz).
188+
LL_RCC_SetSPIClockSource(LL_RCC_SPI4_CLKSOURCE_IC9);
189+
LL_RCC_SetSPIClockSource(LL_RCC_SPI5_CLKSOURCE_IC9);
190190
#endif
191191
}
192192

ports/stm32/uart.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -158,17 +158,17 @@ void uart_init0(void) {
158158
MICROPY_BOARD_FATAL_ERROR("HAL_RCCEx_PeriphCLKConfig");
159159
}
160160
#elif defined(STM32N6)
161-
// UART clock configuration, IC14 (max 100MHz).
162-
LL_RCC_SetUSARTClockSource(LL_RCC_USART1_CLKSOURCE_IC14);
163-
LL_RCC_SetUSARTClockSource(LL_RCC_USART2_CLKSOURCE_IC14);
164-
LL_RCC_SetUSARTClockSource(LL_RCC_USART3_CLKSOURCE_IC14);
165-
LL_RCC_SetUARTClockSource(LL_RCC_UART4_CLKSOURCE_IC14);
166-
LL_RCC_SetUARTClockSource(LL_RCC_UART5_CLKSOURCE_IC14);
167-
LL_RCC_SetUSARTClockSource(LL_RCC_USART6_CLKSOURCE_IC14);
168-
LL_RCC_SetUARTClockSource(LL_RCC_UART7_CLKSOURCE_IC14);
169-
LL_RCC_SetUARTClockSource(LL_RCC_UART8_CLKSOURCE_IC14);
170-
LL_RCC_SetUARTClockSource(LL_RCC_UART9_CLKSOURCE_IC14);
171-
LL_RCC_SetUSARTClockSource(LL_RCC_USART10_CLKSOURCE_IC14);
161+
// UART clock configuration, IC9 (max 100MHz).
162+
LL_RCC_SetUSARTClockSource(LL_RCC_USART1_CLKSOURCE_IC9);
163+
LL_RCC_SetUSARTClockSource(LL_RCC_USART2_CLKSOURCE_IC9);
164+
LL_RCC_SetUSARTClockSource(LL_RCC_USART3_CLKSOURCE_IC9);
165+
LL_RCC_SetUARTClockSource(LL_RCC_UART4_CLKSOURCE_IC9);
166+
LL_RCC_SetUARTClockSource(LL_RCC_UART5_CLKSOURCE_IC9);
167+
LL_RCC_SetUSARTClockSource(LL_RCC_USART6_CLKSOURCE_IC9);
168+
LL_RCC_SetUARTClockSource(LL_RCC_UART7_CLKSOURCE_IC9);
169+
LL_RCC_SetUARTClockSource(LL_RCC_UART8_CLKSOURCE_IC9);
170+
LL_RCC_SetUARTClockSource(LL_RCC_UART9_CLKSOURCE_IC9);
171+
LL_RCC_SetUSARTClockSource(LL_RCC_USART10_CLKSOURCE_IC9);
172172
#endif
173173
}
174174

0 commit comments

Comments
 (0)