ΣSigmaStudio English

Счётчик импульсов


Блок «Счётчик импульсов» (Pulse Counter) подсчитывает количество ненулевых входных сигналов, которые он получает. Имеется пин «Пуск/Стоп» (Start/Stop) для запуска и приостановки подсчёта, а также пин «Сброс» (Reset) для возврата счётчика к нулю. Любой ненулевой сигнал на входном пине импульсов считается импульсом и будет подсчитан, когда подсчёт включён.Счётчик импульсов

Входные пины

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Start/Stopint - controlКогда этот пин находится в высоком состоянии, алгоритм подсчитывает входные импульсы. Когда он в низком состоянии, алгоритм сохраняет последнее значение счётчика.
Pin 1: Resetint - controlКогда этот пин находится в высоком состоянии, он сбрасывает значение счётчика обратно на ноль.
Pin 2: Pulse Inputint - controlВходной сигнал для контроля и подсчёта импульсов.

Выходные пины

NameFormat [int/dec] - [control/audio]Function Description
Pin 0: Count Outputint - controlЗначение счётчика, указывающее количество импульсов.

Описание алгоритма

Назначение счётчика импульсов — подсчёт количества импульсов в течение заданного промежутка времени. Время задаётся сигналом на пине «Пуск/Стоп». Когда пин «Пуск/Стоп» находится в высоком состоянии, алгоритм подсчитывает импульсы, в противном случае выводится последнее значение счётчика. Пин «Сброс» очищает значение счётчика, и подсчёт может возобновиться с 0, когда пин «Пуск» находится в высоком состоянии.

На графике ниже показано взаимодействие между пинами «Пуск/Стоп» и «Сброс» при наличии последовательности импульсов на входном пине Pulse Input. Сигнал сброса показан красным цветом. Сигнал «Пуск/Стоп» показан синим цветом, а выход счётчика — на втором графике жёлтым цветом.

Описание алгоритма

Пример

Счётчик импульсов очень полезно использовать с алгоритмом «Value Cross Detection» (детектор пересечения значения). Для приложения, в котором необходимо контролировать количество пересечений значения (счётчик переходов через ноль) в течение заданного времени, эти два блока вместе могут помочь достичь этой цели. На следующем изображении используются входной сигнал синусоидального тона, переключатели вкл/выкл, счётчик импульсов, ячейка Readback и выход GPIO.

Пример

Детали алгоритма

Toolbox PathCounters - Counters - Pulse Counter
Cores SupportedAD1940
ADAU170x
ADAU144x
ADAU176x
ADAU178x
“Grow Algorithm” Supportedno
“Add Algorithm” Supportedno
Subroutine/Loop Basedno
Program RAM12
Data RAM3
Parameter RAM0

Pulse Counter в SigmaStudio: настройка и параметры

Блок «Счётчик импульсов» (Pulse Counter) в среде SigmaStudio предназначен для подсчёта количества ненулевых входных сигналов, поступающих на его вход. Этот компонент из раздела Counters эффективен для организации временных измерений и событий в сигнальной цепочке процессоров ADAU семейства SigmaDSP. Он позволяет точно фиксировать число событий за заданный интервал, управляемый внешним сигналом. Принцип работы блока основан на анализе управляющих пинов. Пин «Пуск/Стоп» (Start/Stop) запускает подсчёт, когда находится в высоком состоянии, и замораживает текущее значение счётчика при низком уровне. Пин «Сброс» (Reset) обнуляет результат, позволяя начать подсчёт заново. Входной пин Pulse Input принимает сигнал, при этом любой ненулевой уровень воспринимается как один импульс. Выходной пин Count Output передаёт текущее значение счётчика в формате int/control для дальнейшего использования в проекте. Для настройки в SigmaStudio блок размещается в цепочку через Toolbox Path: Counters - Counters - Pulse Counter. Он поддерживается ядрами AD1940, ADAU170x, ADAU144x, ADAU176x и ADAU178x. Алгоритм не поддерживает функции «Grow Algorithm» и «Add Algorithm», а также не предназначен для использования в подпрограммах. Для своей работы он потребляет 12 слов Program RAM и 3 слова Data RAM, что важно учитывать при оптимизации загрузки DSP. Практический пример использования — совместная работа с алгоритмом детектора пересечения значения (Value Cross Detection).