STM32: режимы таймера

Можно ли измерить частоту входного аналогового сигнала в режиме захвата входных сигналов таймеров в STM32F4? Если нет, то какая альтернатива? Заранее спасибо.

Как выглядит ваш аналоговый сигнал по сравнению с цифровым сигналом, который хочет видеть вывод захвата таймера?

Ответы (1)

Введение

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

Аналоговая обработка

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

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Конфигурация микроконтроллера

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

Алгоритм

Когда сработает прерывание, возьмите значение в регистре захвата и вычислите частоту сигнала следующим образом:

ф я н "=" ф т я м е р с о ты н т

Затем вы можете захотеть усреднить несколько из этих показаний.