Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2743
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Схема тактирования

286

сигнала SYSCLK. Таким образом, если требуется более высокая частота ядра, нам нужно выполнить правильные инициализации внутри обработчика исключений NMI.

Чтобы разрешить CSS, мы используем процедуру HAL_RCC_EnableCSS(), при этом нам нужно определить обработчик исключения NMI следующим образом16:

void NMI_Handler(void) { HAL_RCC_NMI_IRQHandler();

}

Правильный способ поймать сбой HSE-генератора – определить обратный вызов:

void HAL_RCC_CSSCallback(void) {

// Ловит сбой HSE-генератора и принимает надлежащие меры

}

10.3. Калибровка HSI-генератора

Мы оставили пропущенной одну строку кода в процедуре SystemClock_Config(), продемонстрированной ранее: команда в строке 7. Она использовалась для выполнения точной калибровки HSI-генератора. Но что именно она делает?

Как было сказано ранее, частота внутренних RC-генераторов может варьироваться от одной микросхемы к другой из-за изменений в производственном процессе. По этой причине HSI-генераторы откалиброваны на заводе ST для обеспечения 1% точности при комнатной температуре. После сброса заводское значение калибровки автоматически загружается во второй байт (HSICAL) регистра конфигурации RCC (RCC_CR) (рисунок 8 показывает реализацию данного регистра в STM32F401RE17).

Рисунок 8: Регистр RCC_CR в микроконтроллере STM32F401RE

Частота внутреннего RC-генератора может быть подстроена для достижения большей точности в более широких диапазонах температуры и напряжения питания. Для этой цели используются биты подстройки (trimming bits). Для подстройки используются пять битов подстройки RCC_CR->HSITRIM[4:0]. Значение подстройки по умолчанию равно 16. Увеличение/уменьшение этого значения подстройки вызывает увеличение/уменьшение частоты HSI-генератора. HSI-генератор подстраивается с шагом 0,5% тактовой частоты HSI:

Запись значения подстройки в диапазоне от 17 до 31 увеличивает частоту HSI.

16Нет необходимости разрешать исключение NMI, потому что оно разрешается автоматически и не может быть запрещено.

17Рисунок взят из справочного руководства RM0368 от ST

(http://www.st.com/web/en/resource/technical/document/reference_manual/DM00096844.pdf).

Схема тактирования

287

Запись значения подстройки в диапазоне от 0 до 15 уменьшает частоту HSI.

Запись значения подстройки, равного 16, заставляет частоту HSI сохранять значение по умолчанию.

HSI-генератор можно откалибровать, используя следующую процедуру:

1.установить системный тактовый сигнал от внутреннего высокочастотного RCгенератора;

2.измерить частоту внутреннего RC-генератора для каждого значения подстройки;

3.вычислить погрешность частоты для каждого значения подстройки (согласно известной опорной частоты);

4.наконец, установить биты подстройки с оптимальным значением (соответствующим самой низкой погрешности частоты).

Частота внутреннего генератора не измеряется напрямую, а вычисляется из числа тактовых импульсов, подсчитанных таймером, и сравнивается с типовым значением. Для этого должна быть доступна очень точная опорная частота, такая как частота LSE, обеспечиваемая внешним кварцевым 32,768 кГц генератором, или 50 Гц/60 Гц сети.

ST предоставляет несколько руководств по применению, описывающих эту процедуру лучше (например, AN406718 относится к процедуре калибровки в семействе STM32F0). Пожалуйста, обратитесь к этим документам для получения дополнительной информации.

18 http://www.st.com/web/en/resource/technical/document/application_note/DM00050140.pdf