1. Уход частоты внутреннего генератора (HSI)
Внутренний RC-генератор (HSI) на GD32, как и на STM32, сильно зависит от температуры. При охлаждении (особенно ниже
или
) частота HSI может существенно снизиться.
Следствие: PLL ожидает входную частоту 8 МГц, а получает, например, 7.5 МГц. PLL «не захватывает» (lock) частоту, и система не запускается.
2. Время стабилизации PLL
На холоде время, необходимое для выхода PLL на рабочий режим, увеличивается. Если в коде задержка на стабилизацию слишком мала, PLL не успевает запуститься.
3. Низкое напряжение питания
Если напряжение питания (VDD) находится на нижней границе (
), то на морозе внутренние логические уровни могут смещаться, препятствуя запуску PLL.
Как исправить (Решения)
1. Программная калибровка (самое вероятное решение)
Если вы используете HSI в качестве источника для PLL, необходимо подстроить его частоту.
Решение: Используйте регистр RCC_CR (поле HSITRIM). При низких температурах нужно увеличить значение калибровки HSI, чтобы поднять его частоту до номинальных 8 МГц.
Примечание: Это требует проведения экспериментов в морозилке для определения корректного значения HSITRIM для конкретного экземпляра чипа.
2. Увеличение задержки запуска
Увеличьте время ожидания флага готовности PLL (RCC_FLAG_PLLRDY) перед тем, как переключать систему на PLL.