8-900-374-94-44
[email protected]
Slide Image
Меню

Stm32 hal тактирование таймеров: Таймеры stm32 HAL — часть первая / STM32 / stD

Объяснение таймеров STM32. Примеры режимов таймера. В микроконтроллерах STM32 есть разные аппаратные таймеры, каждый из которых может работать в нескольких режимах и выполнять множество задач. Вы познакомитесь с этими различными вариантами оборудования и вариантами их использования. И мы начнем с режима таймера в этом уроке, другие режимы будут обсуждаться позже.


   1. Введение в модули таймеров    

 

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

Рассмотрим простой 16-битный таймер, подобный показанному ниже. Как 16-битное время, оно может считать от 0 до 65535. Каждый тактовый цикл значение таймера увеличивается на 1. И, как вы можете видеть, Fsys — это не та частота, которая увеличивает модуль таймера. Но он делится прескалером, а затем подается на таймер.

В основном, в режиме таймера регистр TCNT увеличивается на 1 каждый такт на следующей частоте (Fsys/PSC). Это означает, что если Fsys составляет 80 МГц, а PSC — 1:1024, TCNT увеличивается на 1 каждые 12,8 мкс. Поэтому, если вы запустите этот таймер, чтобы считать от 0 до тех пор, пока он не достигнет переполнения (65535), он будет давать вам сигнал прерывания каждые 0,839 секунды.Второй.

Что делать, если мне нужно настроить этот таймер так, чтобы он выдавал сигнал прерывания один раз в 1 секунду? На самом деле мне не нужен этот временной интервал 0,839 с. Что ж, по этой причине существует возможная аппаратная функция, называемая регистром предварительной загрузки, которая заставляет таймер считать от любого произвольно выбранного значения до переполнения. Таким образом, вам больше не нужно начинать считать с нуля. Следовательно, любой временной интервал может быть получен с помощью модуля таймера.

Модуль таймера также может работать в режиме счетчика, когда источник тактового сигнала неизвестен, фактически это внешний сигнал. Может быть, с помощью кнопки, поэтому счетчик увеличивается с каждым нарастающим или спадающим фронтом после нажатия кнопки. Этот режим может быть полезен во многих приложениях, которые мы обсудим ниже. А пока рассмотрим следующую схему.

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

Дополнительные вводные сведения о модулях таймеров и предварительной загрузке таймеров

STMicroelectronics предлагает несколько различных версий или вариантов модулей аппаратного таймера. Микроконтроллеры STM32 обычно имеют несколько аппаратных таймеров каждого типа, однако в некоторых частях может отсутствовать один или несколько из этих аппаратных таймеров. Итак, в этом разделе я выделю эти модули таймера и их основные функции, блок-схему и тому подобное.

Просто чтобы дать вам обзор различных доступных аппаратных таймеров в микроконтроллерах STM32. Таким образом, вы можете лучше понять, какой тип подходит для каких приложений. Что, в свою очередь, поможет вам лучше выбрать правильную часть микроконтроллера для вашего проекта.

2.1 Базовые модули таймеров

Базовые таймеры состоят из 16-разрядного счетчика с автоматической перезагрузкой, управляемого программируемым предделителем. Их можно использовать как общие таймеры для генерации временной развертки, но они также специально используются для управления цифро-аналоговым преобразователем (ЦАП). Фактически, таймеры внутренне связаны с ЦАП и могут управлять им через свои триггерные выходы. Таймеры полностью независимы и не используют общие ресурсы.

Основные функции таймера включают:

  • 16-битный счетчик с автоматической перезагрузкой
  • 16-битный программируемый предварительный делитель, используемый для деления (также «на лету») тактовой частоты счетчика на любой коэффициент от 1 до 65536
  • Схема синхронизации для запуска ЦАП
  • Прерывание/генерация прямого доступа к памяти при обновлении события: переполнение счетчика

Основной блок программируемого таймера представляет собой 16-разрядный счетчик прямого счета с соответствующим регистром автоматической перезагрузки. Часы счетчика могут быть разделены прескалером. Счетчик, регистр автоматической перезагрузки и регистр предварительного делителя могут быть записаны или прочитаны программным обеспечением. Это верно даже при работающем счетчике. Базовая единица времени включает в себя:

  • Регистр счетчика (TIMx_CNT)
  • Регистр предварительного делителя (TIMx_PSC)
  • Регистр автоматической перезагрузки (TIMx_ARR)

Регистр автоматической перезагрузки предварительно загружен. Доступ к регистру предварительной загрузки осуществляется каждый раз при попытке записи или чтения регистра автоматической перезагрузки. Содержимое регистра предварительной загрузки передается в теневой регистр постоянно или при каждом событии обновления UEV, в зависимости от бита разрешения предварительной загрузки автоматической перезагрузки (ARPE).

В режиме счетчика счетчик считает от 0 до значения автоперезагрузки (содержимое регистра TIMx_ARR), затем перезапускается с 0 и генерирует событие переполнения счетчика. Событие обновления может генерироваться при каждом переполнении счетчика или установкой бита UG в регистре TIMx_EGR (с помощью программного обеспечения или с помощью контроллера ведомого режима).

2.2 Модули таймеров с низким энергопотреблением

LPTIM — это 16-разрядный таймер, в котором используются последние достижения в области снижения энергопотребления. Благодаря разнообразию источников синхронизации LPTIM может продолжать работать во всех режимах питания, кроме режима ожидания. Учитывая его способность работать даже без внутреннего источника синхронизации, LPTIM можно использовать в качестве «счетчика импульсов», который может быть полезен в некоторых приложениях.

Кроме того, возможность LPTIM пробуждать систему из режимов с низким энергопотреблением позволяет реализовать «функции тайм-аута» с чрезвычайно низким энергопотреблением. LPTIM представляет собой гибкую схему синхронизации, которая обеспечивает необходимые функции и производительность при минимальном энергопотреблении.

Таймеры с низким энергопотреблением (LPTIM) Основные характеристики:

  • 16-битный счетчик вверх
  • 3-битный предварительный делитель с 8 возможными делителями (1,2,4,8,16,32,64,128)
  • Выбираемые часы
    — Внутренние источники часов: часы LSE, LSI, HSI16 или APB
    — Внешний источник часов через вход LPTIM (работает без работающего генератора LP, используется приложением счетчика импульсов)
  • 16-битный регистр автоматической перезагрузки ARR
  • 16-битный регистр сравнения
  • Непрерывный/однократный режим
  • Выбираемый программный/аппаратный триггер входа
  • Программируемый цифровой фильтр помех
  • Настраиваемый выход: Импульсный, ШИМ
  • Настраиваемая полярность ввода/вывода
  • Режим энкодера
  • Счетчик повторений

2.3 Модули таймеров общего назначения

Таймеры общего назначения состоят из 16-разрядного счетчика с автоматической перезагрузкой, управляемого программируемым предделителем. Их можно использовать для различных целей, включая измерение длительности импульсов входных сигналов (захват входных сигналов) или генерацию форм выходных сигналов (сравнение выходных сигналов и ШИМ). Длины импульсов и периоды сигналов можно модулировать от нескольких микросекунд до нескольких миллисекунд с помощью предварительного делителя таймера и предварительного делителя контроллера часов RCC. Таймеры полностью независимы и не используют общие ресурсы. Их также можно синхронизировать вместе.

Функции таймера TIMx общего назначения включают:

  • 16-битный автоматически перезагружаемый счетчик вверх, вниз, вверх/вниз.
  • 16-разрядный программируемый пределитель, используемый для деления (также «на лету») тактовой частоты счетчика на любой коэффициент от 1 до 65536. генерация (режимы Edge- и Center-aligned)
    – Выход в одноимпульсном режиме
  • Схема синхронизации для управления таймером внешними сигналами и для соединения нескольких таймеров между собой.
  • Прерывание/генерация прямого доступа к памяти при следующих событиях:
    – Обновление: переполнение/опустошение счетчика, инициализация счетчика (программным обеспечением или внутренним/внешним триггером)
    – Триггерное событие (запуск счетчика, остановка, инициализация или подсчет по внутреннему/внешнему триггеру)
    – Захват входных данных
    – Сравнение выходных данных
  • Поддерживает схему инкрементного (квадратурного) энкодера и датчика Холла для целей позиционирования
  • Триггерный вход для внешнего тактового сигнала или поциклового управления током

2.4 Модули таймеров расширенного управления

Таймеры расширенного управления состоят из 16-разрядного счетчика с автоматической перезагрузкой, управляемого программируемым предделителем. Его можно использовать для различных целей, включая измерение длительности импульсов входных сигналов (захват входных сигналов) или генерацию форм выходных сигналов (сравнение выходных сигналов, ШИМ, дополнительная ШИМ с вставкой мертвого времени). Длины импульсов и периоды сигналов можно модулировать от нескольких микросекунд до нескольких миллисекунд с помощью предварительного делителя таймера и предварительного делителя контроллера часов RCC. Таймеры расширенного управления и таймеры общего назначения полностью независимы и не используют общие ресурсы. Их также можно синхронизировать вместе.

Таймеры с расширенным управлением Особенности:

  • 16-битный счетчик автоматической перезагрузки вверх, вниз, вверх/вниз.
  • 16-разрядный программируемый пределитель, позволяющий делить (также «на лету») тактовую частоту счетчика на любой коэффициент от 1 до 65536.
  • До 4 независимых каналов для:
    — захвата ввода
    — сравнения вывода
    — ШИМ Генерация (режим с выравниванием по краю и центру)
    – Выход в одноимпульсном режиме
  • Дополнительные выходы с программируемым мертвым временем
  • Схема синхронизации для управления таймером внешними сигналами и для соединения нескольких таймеров между собой.
  • Счетчик повторений для обновления регистров таймера только после заданного количества циклов счетчика.
  • Разорвать вход, чтобы перевести выходные сигналы таймера в состояние сброса или в известное состояние.
  • Прерывание/генерация DMA при следующих событиях:
    – Обновление: переполнение/недостаточное значение счетчика, инициализация счетчика (программным способом или внутренним/внешним триггером)
    – Триггерное событие (запуск счетчика, остановка, инициализация или подсчет с помощью внутреннего/внешнего триггера)
    – Захват входа
    – Сравнение выхода
    – Прерывание входа
  • Поддерживает инкрементный (квадратурный) энкодер и схему датчика Холла для целей позиционирования
  • Триггер вход для внешнего тактового сигнала или поциклового управления током

2.5 Модули таймеров высокого разрешения

Таймер высокого разрешения может генерировать до 10 цифровых сигналов с высокой точностью синхронизации. В первую очередь он предназначен для управления системами преобразования энергии, такими как импульсные источники питания или системы освещения, но может использоваться и в других целях, когда требуется очень точное временное разрешение (до 217 пс).

В целях управления и мониторинга таймер также имеет возможности измерения времени и связи со встроенными преобразователями АЦП и ЦАП. Наконец, он имеет режим управления малой нагрузкой и может обрабатывать различные схемы отказов для безопасного отключения.

Таймеры высокого разрешения (HRTIM) Характеристики включают:

  • Таймеры высокого разрешения
    – Разрешение 217 пс, компенсация колебаний напряжения и температуры
    – Высокое разрешение доступно на всех выходах, возможность регулировки рабочего цикла , частота и длительность импульса в срабатывающем одноимпульсном режиме
    – 6 16-битных модулей синхронизации (каждый с независимым счетчиком и 4 модулями сравнения)
    – 10 выходов, которыми можно управлять с помощью любого модуля синхронизации, до 32 источников установки/сброса на канал
    – Модульная архитектура для адресации любого из нескольких независимые преобразователи с 1 или 2 переключателями или несколько больших топологий с несколькими переключателями
  • Несколько соединений со встроенными аналоговыми периферийными устройствами
    – 4 триггера к преобразователям АЦП
    – 3 триггера к преобразователям ЦАП
    – 3 компаратора для преобразования аналогового сигнала
  • Несколько экземпляров HRTIM могут быть синхронизированы с внешними входами/выходами синхронизации
  • Универсальный выходной каскад
    – Вставка мертвого времени с высоким разрешением (до 868 пс)
    – Программируемая полярность выхода синхронная загрузка нескольких преобразователей
  • 7 векторов прерываний, каждый из которых может иметь до 14 источников
  • 6 запросов DMA с использованием до 14 источников, с пакетным режимом для обновления нескольких регистров 93. Режимы работы таймеров STM32 поддерживает все эти режимы. Вместо этого вам придется проверить таблицу данных, чтобы выяснить, какие режимы поддерживаются какими таймерами. Как мы видели ранее, существует множество групп таймеров, в том числе: таймеры общего назначения, маломощные, высокого разрешения, расширенного управления. Каждый из них поддерживает несколько следующих режимов, однако некоторые таймеры поддерживают большинство режимов работы.

    В этом разделе мы дадим только краткое описание каждого режима работы. Как это работает и для каких приложений подходит. Каждый режим будет подробно обсуждаться с практическими лабораторными экспериментами в будущих руководствах. Но сегодня мы перейдем в режим таймера в разделе 4 и проведем его лабораторную работу в следующем уроке. Другие режимы появятся позже в этой серии руководств.

    3.1 Режим таймера

    В режиме таймера модуль таймера тактируется от внутреннего источника синхронизации с известной частотой. Следовательно, тактовая частота известна, время переполнения также можно рассчитать и контролировать с помощью регистра предварительной загрузки, чтобы получить любой произвольно выбранный временной интервал. При каждом переполнении таймер сигнализирует ЦП прерыванием, указывающим на окончание указанного временного интервала.

    Этот режим работы обычно используется для выполнения определенной операции в каждый определенный интервал времени. И для достижения синхронизации и синхронизации между различными задачами и событиями в системе. Он также может заменить задержки в различных ситуациях для лучшего отклика системы.

    3.2 Режим счетчика

    В режиме счетчика модуль таймера тактируется от внешнего источника (входной контакт таймера). Таким образом, таймер отсчитывает вверх или вниз каждый нарастающий или спадающий фронт внешнего входа. Этот режим действительно полезен во многих ситуациях, когда вам нужно реализовать цифровой счетчик без опроса входных контактов или периодического чтения GPIO или постоянного прерывания ЦП, если вы решили подключить его к контакту EXTI.

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

    3.3 Режим ШИМ

    В режиме ШИМ модуль таймера тактируется от внутреннего источника тактового сигнала и формирует цифровой сигнал на выводе выходного канала, называемый сигналом ШИМ. При использовании выходных регистров сравнения (OCR) значение регистра инкрементного таймера постоянно сравнивается с этим регистром OCR. Когда происходит совпадение, состояние выходного вывода меняется до конца периода, и весь процесс повторяется.

    Таймер в режиме ШИМ будет производить сигнал ШИМ на указанной частоте, выбранной пользователем. Рабочий цикл также программно управляется его регистром. На разрешение ШИМ влияет желаемый F ШИМ и другие факторы, как мы увидим в специальных руководствах по генерации ШИМ.

    3.4 Расширенный режим ШИМ

    Генерация расширенного сигнала ШИМ относится к аппаратной способности управлять большим количеством параметров и добавлять некоторые аппаратные схемы для поддержки дополнительных функций для генерации сигнала ШИМ. В том числе:

    • Способность формировать дополнительный сигнал ШИМ, который обычно совпадает с сигналом ШИМ основного канала, но логически инвертирован (высокая часть становится низкой и наоборот).
    • Возможность вводить мертвую зону в сигнал ШИМ для приложений управления двигателем, чтобы предотвратить сквозные токи, возникающие в результате наложения сигналов ШИМ.
    • Возможность автоматического отключения по ШИМ-сигналу, также называемому «автоматическое торможение», что является важной функцией для критических с точки зрения безопасности приложений.
    • И возможность фазовой подстройки ШИМ-сигнала, и многое другое! Все это называется расширенным ШИМ-управлением.

    Вот пример для ШИМ-каналов с дополнительным выходным сигналом, со вставленной зоной нечувствительности и регулировкой фазовой задержки. Типичный управляющий сигнал в полумостовом режиме.

    3.5 Режим сравнения выходного сигнала

    В режиме сравнения выходного сигнала модуль таймера управляет формой выходного сигнала или указывает, когда истек период времени. Когда обнаруживается совпадение между регистром сравнения выходов (OCR) и счетчиком, функция сравнения выходов назначает соответствующему выходному контакту программируемое значение, определяемое выходом 9.0106 режим сравнения определяется программистом.

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

    Вот пример таймера подсчета в режиме сравнения вывода. Обратите внимание, когда состояние вывода изменилось (переключено) и значение в OCR (сравните регистр TIM1_CCR1).

    3.6 Одноимпульсный режим

    Одноимпульсный режим (OPM) является частным случаем предыдущих режимов. Он позволяет запускать счетчик в ответ на стимул и генерировать импульс программируемой длины после программируемой задержки. Запуском счетчика можно управлять через контроллер ведомого режима. Генерация сигнала может выполняться в режиме сравнения выходных сигналов или в режиме ШИМ.

    Импульс может быть сгенерирован правильно, только если значение сравнения отличается от начального значения счетчика. Перед запуском (когда таймер ожидает срабатывания) конфигурация должна быть CNT ИМПУЛЬС и после задержки t ЗАДЕРЖКА , как только будет обнаружен положительный фронт на входном контакте TI2.

    3.7 Режим захвата ввода

    В режиме захвата ввода регистры захвата/сравнения (TIMx_CCRx) используются для фиксации значения счетчика после перехода, обнаруженного соответствующим сигналом ICx. Когда происходит захват, устанавливается соответствующий флаг CCXIF (регистр TIMx_SR) и может быть отправлено прерывание или запрос DMA, если они разрешены.

    Этот режим чрезвычайно важен для измерения внешнего сигнала или определения времени внешнего события. Текущее значение счетчиков таймера фиксируется, когда происходит внешнее событие и срабатывает прерывание. Таким образом, мы можем использовать эту функцию для широкого спектра измерительных приложений.

    Примером применения является ультразвуковой датчик, который измеряет расстояние и отправляет информацию в виде импульса на ваш микроконтроллер. Измерив время ширины импульса, вы можете узнать показание расстояния. Этого можно достичь, используя блок захвата ввода (ICU) в модуле таймера.

    3.8 Режим энкодера

    В режиме интерфейса энкодера модуль таймера работает как цифровой счетчик с двумя входами. Счетчик тактируется каждым действительным переходом на обоих входных контактах. Последовательность переходов двух входов оценивается и генерирует счетные импульсы, а также сигнал направления. В зависимости от последовательности счетчик считает вверх или вниз. Таким образом, вам не нужно обнаруживать эти импульсы по отдельности и смотреть, какие из них были первыми для определения направления вращения и такого рода работы. Теперь все это делается аппаратно благодаря аппаратной поддержке режима кодировщика.

    Таймер, настроенный в режиме интерфейса энкодера, предоставляет информацию о текущем положении датчика. Пользователь может получить динамическую информацию (скорость, ускорение, замедление), измеряя период между двумя событиями энкодера с помощью второго таймера, настроенного в режиме захвата. Для этой цели можно использовать выход энкодера, который показывает механический ноль. В зависимости от времени между двумя событиями счетчик также может считываться в обычное время.

    3.9 Режим шлюза таймера

    В режиме стробирования таймера модуль таймера также считается работающим в «ведомом режиме». Где это считается только до тех пор, пока внешний входной контакт удерживается высоким или низким. Этот входной контакт называется вентилем таймера, который позволяет таймеру считать или не считать.

    Этот режим можно использовать в широком диапазоне приложений и измерений сигналов. Он может помочь вам измерять очень короткие импульсы с очень высоким разрешением. А также запустить таймер для подсчета внешних событий от датчиков или других микроконтроллеров.

    Счетчик начинает считать по внутренним часам, пока TI1 имеет низкий уровень, и останавливается, как только TI1 становится высоким. Флаг TIF в регистре TIMx_SR устанавливается как при запуске, так и при остановке счетчика. Задержка между нарастающим фронтом на TI1 и фактической остановкой счетчика связана со схемой ресинхронизации на входе TI1.

    3.10 Пакетный режим DMA таймера

    Не все таймеры STM32 способны генерировать несколько запросов DMA при одном событии. Основная цель состоит в том, чтобы иметь возможность перепрограммировать часть таймера несколько раз без накладных расходов на программное обеспечение, но его также можно использовать для чтения нескольких регистров подряд через равные промежутки времени.

    3.11 Инфракрасный режим IRTIM

    Инфракрасный интерфейс (IRTIM) для дистанционного управления может использоваться с инфракрасным светодиодом для выполнения функций дистанционного управления. Он использует внутренние соединения с TIM15 и TIM16, как показано на диаграмме ниже. Чтобы генерировать сигналы инфракрасного дистанционного управления, ИК-интерфейс должен быть включен, а канал 1 TIM15 (TIM15_OC1) и канал 1 TIM16 (TIM16_OC1) должны быть правильно настроены для генерации правильных сигналов. Инфракрасный приемник можно легко реализовать с помощью базового режима захвата входных данных.

    Все стандартные режимы импульсной ИК-модуляции можно получить, запрограммировав два канала сравнения выхода таймера. TIM15 используется для генерации высокочастотного несущего сигнала, а TIM16 генерирует огибающую модуляции. Инфракрасная функция выводится на вывод IR_OUT. Активация этой функции осуществляется через регистр GPIOx_AFRx путем включения соответствующего бита альтернативной функции.

     


       4. Таймеры STM32 — режим таймера        

     

    После этого длинного обзора аппаратных вариантов таймеров STM32 и возможных режимов работы таймеров мы сосредоточимся на одном из них до конца этого руководства. Который будет самым основным, «режимом таймера». Итак, мы подробно обсудим работу в режиме таймера, а затем проведем практические лабораторные работы в следующем уроке. После этого мы можем перейти к другому режиму работы (счетчик, ICU, PWM и т. д.).

    4.1 Блок-схема

    В этом уроке мы будем работать с таймером общего назначения. А вот его логическая блок-схема.

    4.2 Функциональное описание

    4.2.1 Базовый блок времени

    Основной блок программируемого таймера представляет собой 16-разрядный счетчик с соответствующим регистром автоматической перезагрузки. Счетчик может считать вверх, вниз или одновременно вверх и вниз. Часы счетчика могут быть разделены прескалером. Счетчик, регистр автоматической перезагрузки и регистр предварительного делителя могут быть записаны или прочитаны программным обеспечением. Это верно даже при работающем счетчике. Базовая единица времени включает в себя:

    • Регистр счетчика (TIMx_CNT)
    • Регистр предделителя (TIMx_PSC):
    • Регистр автоматической перезагрузки (TIMx_ARR)

    Регистр автоматической перезагрузки предварительно загружен. Запись или чтение из регистра автоматической перезагрузки обеспечивает доступ к регистру предварительной загрузки. Содержимое регистра предварительной загрузки передается в теневой регистр постоянно или при каждом событии обновления (UEV), в зависимости от бита разрешения предварительной загрузки автоматической перезагрузки (ARPE) в регистре TIMx_CR1. Событие обновления отправляется, когда счетчик достигает переполнения.

    4.2.2 Предварительный делитель таймера

    Предварительный делитель может делить тактовую частоту счетчика на любой коэффициент от 1 до 65536. Он основан на 16-битном счетчике, управляемом через 16-битный регистр (в регистре TIMx_PSC). Его можно изменить на лету, так как этот регистр управления буферизован. Новое соотношение Prescaler учитывается при следующем событии обновления.

    4.3 Примеры применения

    Модуль таймера в режиме таймера можно использовать для создания интервала задержки между определенными событиями. Или повторно выполнять определенную задачу каждый конкретный интервал времени. А также для измерения времени между предопределенными событиями. Таким образом, таймер может генерировать или измерять временные интервалы на основе внутренних часов и предварительного делителя, которые вместе определяют разрешение времени такта таймера.

    4.4 Различные возможные конфигурации

    При настройке модуля таймера для работы в режиме таймера следует установить следующие конфигурации в соответствии с требованиями вашего приложения.

    Временной интервал таймера, представляющий собой комбинацию следующих настроек:

    • Частота источника тактового сигнала таймера
    • Значение предварительного делителя
    • Режим отсчета времени (вверх или вниз)
    • Значение регистра автоматической перезагрузки
    • Авторная предварительная нагрузка Включение/отключение
    • прерывание переполнения. модуль. Именно его мы будем использовать в следующей практической лабораторной работе и напишем код приложения для его тестирования.

      4.6 Прерывания таймера STM32

      Универсальные таймеры STM32 могут генерировать сигнал прерывания/DMA при следующих событиях:

      • Обновление: переполнение/недостаточное значение счетчика, инициализация счетчика (с помощью программного обеспечения или внутреннего/внешнего триггера)
      • Триггерное событие (запуск счетчика, остановка, инициализация или подсчет по внутреннему/внешнему триггеру)
      • Захват ввода
      • Сравнение вывода

      Для наших приложений в следующем руководстве/лабораторной работе мы будем использовать сигнал прерывания переполнения для переключения светодиода или чего-то еще, чтобы проверить функциональность таймера и правильность тайминга.

       


       

       

      Вот и все для этого урока. ). Итак, будьте готовы к этому!

      И, пожалуйста, рассмотрите возможность поддержки контента, ПОДЕЛИСЬ им в социальных сетях или через Patreon.

       

       

      микроконтроллер — Таймер STM32 Внутренний источник тактовой частоты

      спросил

      Изменено 5 лет, 8 месяцев назад

      Просмотрено 17 тысяч раз

      \$\начало группы\$

      Насколько я понимаю, источником внутреннего таймера на микроконтроллерах STM32(F4) может быть либо APB1, либо APB2. Однако я не могу найти, какие таймеры получают какие часы.

      Я уже нашел ST AN4013, который объясняет почти все о таймерах, но не их соответствующий внутренний источник часов.

      Кто-нибудь знает или имеет источник, какие именно часы использует каждый таймер?

      • микроконтроллер
      • часы
      • stm32
      • таймер

      \$\конечная группа\$

      8

      \$\начало группы\$

      Замечание по применению ST, на которое вы ссылаетесь, представляет собой просто общее описание, а не все. Детали оборудования отличаются от каждой модели MCU. AN расскажет вам только общую идею. Поэтому вам нужно посмотреть документы, специально написанные для каждой модели MCU.

      Как упоминалось в комментариях, когда вы работаете с периферийными устройствами STM32, вам в основном нужно будет посмотреть два документа (поскольку вы не указали модель MCU, я приведу пример STM32F407):

      1. Datasheet

      Краткое описание оборудования. Поскольку APB1 и APB2 связаны с шиной, то, что вам нужно, описано в разделе карты памяти (он же раздел 4 Отображение памяти)

      1. Справочное руководство

      Очень подробно (1749страниц!) описание MCU. Когда вы посмотрите на Таймеры в этом руководстве, вы поймете, что существует гораздо больше вещей, чем AN. В любом случае, этот документ также описывает карту памяти. (Раздел 2.3)

      Примечание) Несмотря на то, что STM32 HAL API абстрагируется от деталей оборудования, вам все равно необходимо знать, какие APB подключены к используемым вами таймерам.

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *