Skip to content

Commit 976c3ea

Browse files
committed
HALConfig: Use PLL3 for the ADC clock source.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
1 parent f7d081c commit 976c3ea

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/HALConfig.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,21 @@ static uint32_t ADC_RANK_LUT[] = {
167167
};
168168

169169
int hal_adc_config(ADC_HandleTypeDef *adc, uint32_t resolution, uint32_t trigger, PinName *adc_pins, uint32_t n_channels) {
170-
// Set ADC clock source.
171-
__HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_CLKP);
170+
// PLL3 80MHz for ADC
171+
RCC_PeriphCLKInitTypeDef pclkinit = {0};
172+
pclkinit.PLL3.PLL3M = 4;
173+
pclkinit.PLL3.PLL3N = 80;
174+
pclkinit.PLL3.PLL3P = 2;
175+
pclkinit.PLL3.PLL3Q = 2;
176+
pclkinit.PLL3.PLL3R = 4;
177+
pclkinit.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_2;
178+
pclkinit.PLL3.PLL3VCOSEL = RCC_PLL3VCOWIDE;
179+
pclkinit.PLL3.PLL3FRACN = 0;
180+
pclkinit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
181+
pclkinit.AdcClockSelection = RCC_ADCCLKSOURCE_PLL3;
182+
if (HAL_RCCEx_PeriphCLKConfig(&pclkinit) != HAL_OK) {
183+
return -1;
184+
}
172185

173186
// Enable ADC clock
174187
if (adc->Instance == ADC1) {

0 commit comments

Comments
 (0)