вторник, 21 мая 2013 г.

STM32F407(STM32F4-DISCOVERY) - Нестандартный подход - Таймеры ч1

Часть 1 - Введение.

Таймеры. Вообще по моему, да и не только по моему мнению таймеры являются одним из основных модулей которые больше всего используются в МК. Поэтому, мы поэтапно рассмотрим этот модуль.


Строго говоря, в самом простом варианте таймер представляет собой счётчик, который через предделитель завязан на шину тактового сигнала. Под это определение подходят все таймеры в МК STM32F407.

Особенностью STM32 является то, что предделитель это 16 битный счетчик который можно устанавливать на любое значение (действительным будет значение регистра предделителя + 1). Это даёт большую гибкость в настройке таймеров.
Помимо предделителя и счетчика, в таймере есть ещё блок обработки прерываний. Это дает определённую гибкость. Во всех таймерах есть событие на переполнение. Это основное положение.

В некоторых таймерах присутствуют только эти блоки. К этим таймерам относятся:
  1. SysTick - 32 битный таймер входящий в состав ядра Cortex-M4F.
  2. Базовые таймеры - TIM6(7). 16 битный таймер. Можно использовать по своему усмотрению, однако 6-ой таймер необходим для модуля DAC (ЦАП) как задающий тактовую частоту элемент.
Остальные таймеры в МК STM32F407 являются основными, особенность их заключается в наличие других блоков помимо тех, что я перечислил выше, а также более развитой системы прерываний. Однако внутри этой группы также есть деление на:
  1. Основные таймеры TIM9 - 14. По сути группа является базовой для всех остальных.
    Количество дополнительных блоков в модуле этого таймера различно: для TIM9(12) оно равно двум каналам. Для остальных (TIM10,11,13,14) только один канал.
  2. Основные таймеры TIM2 - 5. Отличается от предыдущей тем что увеличено количество каналов с 2 до 4. Также присутствует смежная логика для каналов.
  3. Расширенные таймеры TIM1(8). Представляют собой самую продвинутую в прямом смысле этого слова версию таймеров. Помимо функционала предыдущей группы, также в наличии есть некоторые опции, позволяющие использовать этот таймер эффективно для управления безколлекторными электродвигателями. Кстати, насчет этой полезной опции у ST есть несколько примеров.
В следующих частях я подробно опишу по таймеру из каждой группы. А также покажу интересные примеры их использования.

Продолжение следует...

Комментариев нет:

Отправить комментарий