- •Ознакомительное руководство по arm-микроконтроллерам Cortex-m3
- •Введение
- •Обзор процессоров Cortex
- •Системная архитектура микроконтроллеров stm32
- •Периферийные устройства
- •1. Введение
- •1.1. Знакомство с Cortex
- •1.2. Обзор семейства stm32
- •1.2.1. Многофункциональные периферийные устройства
- •1.2.2. Безопасность
- •1.2.3. Защищенность
- •1.2.4. Разработка программ
- •1.2.5. Группы Performance Line и Access Line
- •2. Обзор процессоров Cortex
- •2.1. Версии архитектур arm
- •2.2. Процессор Cortex и цпу Cortex
- •2.3. Цпу Cortex
- •2.3.1. Конвейер
- •2.3.2. Модель программирования
- •2.3.2.1. Xpsr
- •2.3.3. Режимы работы цпу
- •2.3.4. Набор инструкций Thumb-2
- •2.3.5. Карта памяти
- •2.3.6. Доступ к невыровненным (фрагментированным) данным
- •2.3.7. Метод "битовой сегментации" ("Bit Banding")
- •2.4. Процессор Cortex
- •2.4.1. Шины
- •2.4.2. Матрица шин
- •2.4.3. Системный таймер
- •2.4.4. Обработка прерываний
- •2.4.5. Контроллер вложенных векторных прерываний
- •2.4.5.1. Работа кввп при входе в исключительные ситуации и выходе из них
- •2.4.5.2. Улучшенные режимы обработки прерывания
- •2.4.5.2.1. Приостановка прерываний
- •2.4.5.2.2. Непрерывная обработка прерываний с исключением внутренних операций над стеком
- •2.4.5.2.3. Обработка опоздавшего высокоприоритетного прерывания
- •2.4.5.3. Конфигурация и использование кввп
- •2.4.5.3.1. Таблица векторов исключительных ситуаций
- •2.5. Режимы работы, влияющие на энергопотребление
- •2.5.1. Переход в режим работы с пониженным энергопотреблением
- •2.5.2. Отладочная система CoreSight
- •3. Схема включения
- •3.1. Типы корпусов
- •3.2. Напряжение питания
- •3.3. Схема сброса
- •3.3.1. Базовая схема включения
- •3.4. Генераторы
- •3.4.1. Внешний высокочастотный генератор
- •3.4.2. Внешний низкочастотный генератор
- •3.4.3. Выход синхронизации
- •3.4.4. Выводы управления загрузкой и внутрисистемное программирование
- •3.4.5. Режимы загрузки
- •3.4.6. Отладочный порт
- •4. Системная архитектура микроконтроллеров stm32
- •4.1. Распределение памяти
- •4.2. Работа с максимальным быстродействием
- •4.2.1. Блок фазовой автоподстройки частоты
- •4.2.1.1. Настройка шин
- •4.2.2. Буфер Flash памяти
- •4.2.3. Прямой доступ к памяти
- •5. Периферийные устройства
- •5.1. Периферийные устройства общего назначения
- •5.1.1. Порты ввода-вывода общего назначения (gpio)
- •5.1.1. Альтернативные функции
- •5.1.2. Сигнализация событий
- •5.1.2. Внешние прерывания
- •5.1.3.1. Время преобразования и группы преобразования
- •5.1.3.2. Функция оконного компаратора
- •5.1.3.3. Базовая конфигурация ацп
- •5.1.3.4. Режимы сдвоенных преобразований
- •5.1.3.4.1. Режимы одновременного преобразования инжектированных и регулярных групп
- •5.1.3.5. Комбинированный режим одновременного преобразования регулярных/инжектированных групп
- •5.1.3.6. Режимы быстрых и медленных преобразований со смещением во времени
- •5.1.4.1. Таймеры общего назначения
- •5.1.4.1.1. Блок захвата/сравнения
- •5.1.4.1.2. Блок захвата
- •5.1.4.1.3. Режим измерения параметров шим-сигнала
- •5.1.4.1.4. Интерфейс энкодера
- •5.1.4.1.5. Режим сравнения
- •5.1.4.1.6. Режим широтно-импульсной модуляции
- •5.1.4.1.7. Режим одновибратора
- •5.1.4.2. Таймер с расширенными функциями
- •5.1.4.2.1. Функция экстренного отключения
- •5.1.4.2.2. Интерфейс датчика Холла
- •5.1.4.3. Синхронизированная работа таймеров
- •5.1.5. Часы реального времени и регистры с резервированием питания
- •5.1.6. Регистры с резервированием питания и вход вмешательства
- •5.2. Коммуникационные интерфейсы
- •5.2.1. Интерфейс spi
- •5.2.2. Модуль i2c
- •5.2.3. Модуль усапп (usart)
- •5.3. Модули сan и usb
- •14 Фильтров сообщений поддерживают две конфигурации, которые можно использовать для фильтрации индивидуальных сообщений.
- •5.3.2. Модуль интерфейса usb
- •6. Режимы работы с пониженным энергопотреблением
- •6.1. Режим run
- •6.1.1. Буфер предварительной выборки и режим полуцикла
- •6.2. Режимы пониженного энергопотребления
- •6.2.1. Режим sleep
- •6.2.2. Режим stop
- •6.3. Режим standby
- •6.4. Потребляемый ток области с резервированием питания
- •6.5. Возможность отладки в режимах с пониженным энергопотреблением
- •7. Возможности по обеспечению безопасной работы
- •7.1. Управление сбросом
- •7.2. Контроль напряжения питания
- •7.3. Защищенная система синхронизации
- •7.4. Сторожевые таймеры
- •7.4.1. Оконный сторожевой таймер
- •7.4.2. Независимый сторожевой таймер
- •8.1. Защита и программирование Flash памяти
- •8.2. Операции стирания и записи
- •8.3. Опциональные байты
- •8.3.1. Защита от записи
- •8.3.2. Защита от чтения
- •8.3.3. Конфигурационный байт
- •9. Инструментальные средства для проектирования
- •9.1. Оценочные средства
- •9.2. Библиотеки и протокольные стеки
- •9.3. Операционные системы реального времени
7. Возможности по обеспечению безопасной работы
Микроконтроллеры STM32 поддерживают ряд возможностей, направленных на выявление некорректного выполнения кода программы и неправильного поведения микроконтроллера в целом. Чтобы исключить возможность работы микроконтроллера от ненадежного источника питания, у МК STM32 предусмотрена встроенная схема, которая переводит его в состояние сброса, если напряжение VDD будет ниже минимально допустимого значения. Кроме того, в МК интегрирована программируемая схема контроля напряжения, которая еще раньше позволяет выявить проблемы с питанием. После выявления нарушения питания эта схема генерирует прерывание, позволяющее перевести интегральную схему в безопасное состояние. В структуре системы синхронизации МК предусмотрены элементы контроля HSE-генератора. В случае выявления нарушений в его работе, МК автоматически переключится на работу от HSI-генератора. Корректность выполнения программы можно контролировать с помощью двух встроенных сторожевых таймеров. Один из них – оконный сторожевой таймер, который необходимо обновлять с определенной частотой. Другой – независимый сторожевой таймер, который синхронизируется отдельным генератором, не связанным с основной системной синхронизацией. Кроме того, встроенная Flash память поддерживает возможность хранения данных в течение 30 лет при температуре 85°С, что является лучшим в своем классе показателем хранения данных для микроконтроллера общего назначения. Перечисленные возможности по обеспечению безопасной работы МК неприемлемы при использовании в оборудовании, к которому предъявляются максимально высокие требования безопасности (в таком оборудовании элементы, отвечающие за контроль программного обеспечения, как например, сторожевой таймер должны быть отдельными внешними устройствами). Тем не менее, микроконтроллеры STM32 позволяют разрабатывать надежные самокорректирующие системы с использованием способов, применяющихся в критичных к безопасности авиационных и автомобильных системах, но с использованием чрезвычайно простых схемных решений. Благодаря этому, возможно создание гораздо более надежной и качественной недорогой и простой электронной техники.
7.1. Управление сбросом
У МК STM32, помимо внешней линии сброса, имеется множество источников сброса. Сброс МК STM32 может быть выполнен встроенными сторожевыми таймерами, программно через контроллер векторных прерываний, встроенными схемами сброса при подаче/отключении и снижении ниже допустимого уровня напряжения питания. В случае генерации сброса устанавливаются соответствующие флаги в регистре управления и статуса RCC, таким образом, опросом этих флагов можно определить причину, вызвавшую сброс микроконтроллера. Состояние данных флагов сохраняется до следующего сброса при подаче питания или до записи лог. 1 в бит стирания причины сброса.
Микроконтроллер STM32 имеет несколько источников сброса. Определить источник сброса можно с помощью регистра управления и статуса RCC.
7.2. Контроль напряжения питания
В состав микроконтроллеров STM32 входит специальный блок для мониторинга питания. Он называется блоком контроля напряжения питания (блок PVD). Блок PVD поддерживает возможность программирования порога срабатывания в диапазоне от 2.2 до 2.9 В с шагом 0.1 В. Этот порог срабатывания задается в регистре управления энергопотреблением.
В микроконтроллер входит специальная схема контроля напряжения питания, которая может генерировать прерывание, если напряжение питания снижается ниже заданного порога.
Выход блока PVD связан с 16-ой линией блока внешних прерываний. Поскольку линии внешних прерываний могут реагировать на нарастающий, падающий или нарастающий и падающий фронты, то блок PVD можно использовать для генерации прерывания при выполнении условий превышения или понижения напряжения.
