Генерация сигнала из N-импульсов с использованием синхронизации таймера



Примеры в этой главе разделены на 2 части, в которых описаны 2 похожих приложения. Оба примера используют внутреннюю синхронизацию таймеров для генерации сигнала из N-импульсов, с небольшим отличием примеров друг от друга:

• В первом примере (см. врезку "Пример генерации сигнала из N-импульсов, часть 1"), сигнал из N-импульсов генерируется на выходе и комплементарном выходе канала 1 таймера TIM1. По окончанию генерации N-импульсов канал 1 таймера TIM1 выводит свое последнее состояние, когда на выходе канала 1 лог. 0, и на комплементарном выходе лог. 1.
• Во втором примере (см. врезку "Пример генерации сигнала из N-импульсов, часть 2"), сигнал из N-импульсов также генерируется на выходе и комплементарном выходе канала 1 таймера TIM1. По окончанию генерации N-импульсов оба выхода канала 1 таймера TIM1 должны быть в лог. 0. Это может быть достигнуто функцией коммутации, встроенной в таймеры STM32. Это функция подробно описана во врезке, описывающей часть 2 примеров.

Обзор синхронизации таймера

Некоторые таймеры STM32 связаны друг с другом внутренней синхронизацией (chaining). Таймеры STM32, где есть возможность внутренней синхронизации таймеров, имеют только один вывод сигнала синхронизации с именем TRGO (аббревиатура "Trigger Out"). Таймеры также имеют 4 входа синхронизации (называемые ITRx, где x число от 1 до 4), подключаемые к выходам синхронизации других таймеров STM32. Руководство пользователя для любого микроконтроллера STM32 описывает матрицу внутренних соединений таймеров.

Обратите внимание, что только те таймеры, в которых есть блок контроллера master/slave, поддерживают внутреннюю синхронизацию таймеров (только с немногими исключениями). Например, таймер TIM2 содержит блок контроллера master/slave, и он может быть синхронизирован с другими таймерами STM32.

TIM2 может вызывать события триггера внутри других таймеров через выход своего сигнала синхронизации TRGO. В этом случае таймер TIM2 действует как master-таймер. Таймер TIM2 также может быть сконфигурирован для срабатывания от выходов синхронизации других таймеров; в этом случае TIM2 работает как slave-таймер. Таймер может работать как одновременно и как slave-таймер, и как master-таймер по отношению к другим таймерам.

Таймер TIM11 это пример таймера, у которого нет блока контроллера master/slave. У него нет функции вывода сигнала синхронизации TRGO, но TIM11 может работать как master-таймер для некоторых других таймеров. Это возможно через использование выхода канала TIM11 в качестве источника вывода сигнала синхронизации. Выход канала таймера TIM11 подключается к входам синхронизации других таймеров.

Конфигурация master-таймера

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

• Reset: бит UG регистра EGR используется в качестве выхода триггера (TRGO).
• Enable: сигнал разрешения счетчика используется как выход триггера (TRGO). Эта возможность используется для одновременного запуска нескольких таймеров, или для управления окном, в котором разрешен slave-таймер.
• Update: событие обновление выбрано как выход триггера (TRGO). Например, master-таймер может использоваться в качестве пред делителя для slave-таймера.
• Compare pulse: выход триггера посылает положительный импульс, когда установлен флаг CC1IF (даже если он уже в лог. 1), когда срабатывает захват (capture) или событие совпадения (compare match).
• OC1Ref: сигнал OC1REF используется как выход триггера (TRGO).
• OC2Ref: сигнал OC2REF используется как выход триггера (TRGO).
• OC3Ref: сигнал OC3REF используется как выход триггера (TRGO).
• OC4Ref: сигнал OC4REF используется как выход триггера (TRGO).

Для конфигурирования события таймера или внутреннего сигнала для использования в качестве выхода синхронизации, должно быть записано правильное значение в поле MMS (master mode selection) регистра управления TIMx_CR2.

Конфигурация slave-таймера

 Каждый таймер, оборудованный master/slave контроллером, имеет 4 входа синхронизации, готовых к подключению к выходам синхронизации других таймеров. Обратите внимание, что только один вход синхронизации может быть активен в любой момент времени, и битовое поле TS (trigger selection) используется для выбора, какой вход синхронизации будет активен.

Детектирование активного перепада на входе синхронизации одного таймера может вызвать одно событие таймера наподобие события обновления (update event, UEV) и сброса счетчика, или инкремента счетчика. Это зависит от сконфигурированного значения в поле бит SMS (slave mode selection) в регистре выбора slave-режима таймера TIMx_SMCR.

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


Дата добавления: 2020-01-07; просмотров: 300; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!