Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ознакомительное руководство по ARM-микроконтрол...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.27 Mб
Скачать

7.3. Защищенная система синхронизации

В большинстве применений МК STM32 в качестве основной системной синхронизации процессора Cortex и периферийных устройств STM32 выступает внешний кварцевый резонатор, подключенный к выводам HSE-генератора. В структуре системы синхронизации предусмотрен специальный блок CSS, который контролирует внешний сигнал. В случае, если этот блок обнаружит отказ кварцевого резонатора, МК переключится на аварийную синхронизацию от внутреннего генератора частоты 8 МГц.

В случае отказа внешнего генератора, блок CSS генерирует прерывание и переключается на работу от RC-генератора.

Для активизации блока CSS необходимо установить соответствующий бит в регистре управления RCC.

Для включения контроля синхронизации необходимо установить бит разрешения работы CSS в регистре управления RCC.

У блока CSS имеется линия прерывания, которая связана с прерыванием по экстренному отключению таймера 1 с расширенными функциями, в свою очередь соединенной с линией немаскируемого прерывания контроллера векторных прерываний Cortex. Этим гарантируется незамедлительный переход ШИМ-выходов таймера в предварительно запрограммированное безопасное состояние в случае отказа основного генератора.

Таким образом, если процессор Cortex теряет управление над ШИМ-выходами, их работа и связанной с ними внешней схемы блокируется. Даная функция особенно важно в устройствах управления электродвигателями.

7.4. Сторожевые таймеры

В МК STM32 входят два отдельных сторожевых таймера. Независимый сторожевой таймер полностью отделен от основной системы МК STM32. Он расположен в домене с резервированием питания и синхронизируется встроенным низкочастотным генератором (LSI). Оконный сторожевой таймер является частью основной системы МК STM32 и связан с сигналом синхронизации первой шины периферийных устройств. Оба сторожевых таймера поддерживают возможность раздельного включения/отключения и могут использоваться одновременно.

МК STM32 содержат два сторожевых таймера, один из которых синхронизируется отдельным генератором.

7.4.1. Оконный сторожевой таймер

Оконный сторожевой таймер является расширенной версией традиционного встраиваемого сторожевого таймера. После активизации сторожевой таймер начинает счет в обратном направлении и генерирует сброс при изменении состояния счетчика с 0x40 на 0x3F, т.е. когда сбрасывается бит T6.

Кроме того, в конфигурационном регистре оконного сторожевого таймера предусмотрена возможность задания верхней границы счета. Если во время программного обновления содержимого счетчика сторожевого таймера его фактическое значение окажется больше заданного, также генерируется сброс. Следовательно, сторожевой таймер выделяет программе строго ограниченное время на обновление содержимого счетчика, что позволяет быть уверенным не только в факте выполнения кода программы, но и во временных характеристиках его выполнения.

Оконный сторожевой таймер представляет собой 6-битный вычитающий счетчик, который синхронизируется сигналом PCLK1 через 12-битный предделитель (делит частоту PCLK1 на 4096). У предделителя имеется 2 дополнительных бита, которые могут программироваться пользователем для дальнейшего деления частоты на 1, 2, 4 или 8. Эти биты находятся в 6 и 7 разрядах регистра управления.

Таким образом, период срабатывания оконного сторожевого таймера определяется по выражению:

Twwdg = Tpclk1 x 4096 x 2^(WDGTB) x (перезагружаемое значение + 1)

Если Pclk1 имеет максимальное значение 36 МГц, минимальный период срабатывания сторожевого таймера составит 910 мкс, а максимальный – 58.25 мс.

По завершении настройки оконного сторожевого таймера, его работу можно разрешить установкой соответствующего бита в регистре управления. После разрешения остановить работу сторожевого таймера можно только сбросом – программно это сделать невозможно.