Найти в Дзене
Будни инженера

Работа делителя частоты

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

Напомню, что частота 1 Гц - это одно колебание в секунду. Соответственно, 50 Гц (частота питающей электросети) - это 50 колебаний (импульсов) в секунду. Ну а, например, 8 МГц - это 8000000 (восемь миллионов). И современные микроконтроллеры обычно как раз работают на частоте 8 Мгц и выше (хотя при необходимости можно задать и меньшую частоту).

Однако что делать, если для микроконтроллера вы используете тактовую частоту, например, 8 МГц, а для некоторых других узлов (например, для таймеров или для ваших собственных нужд) нужна меньшая частота? Не делать же для каждого узла собственный генератор частоты!

Конечно, нет. Потому что частоту можно просто уменьшить с помощью делителя частоты. Например, если у вас тактовый генератор выдаёт 8 МГц, а вам надо 4 МГц, то частоту генератора надо поделить на два. Но как это сделать?

В микроконтроллере это можно сделать, например, программно. И обычно так это и делается. Но чтобы понимать, как это реализуется аппаратно, и при необходимости уметь это сделать, надо знать хотя бы один способ. И самый простой способ аппаратного деления частоты - это применение D-триггера (советую перейти по ссылке и изучить принцип работы, иначе сложно будет понять то, что написано далее).

Чтобы перевести D-триггер в режим делителя частоты, надо инверсный выход триггера соединить с его D-входом. Теперь, если подавать импульсы на вход С, то триггер будет работать как делитель частоты - он будет делить входную частоту на два. Например, если на вход С подаются импульсы с частотой 50 Гц, то на выходе частота будет 25 Гц.

Допустим, что после включения триггер установился в единичное состояние. Это означает, что на инверсном выходе триггера присутствует логический ноль. Этот ноль поступает на D-вход. Подадим на вход С делителя некоторый цифровой сигнал. По спаду первого входного импульса D-триггер перейдет в нулевое состояние, так как на его D-входе сигнал логического нуля. После этого на инверсном выходе триггера устанавливается логическая единица. Поэтому по спаду следующего входного импульса триггер переключится в единичное состояние. И так далее…

Если же надо поделить входную частоту не на 2, а, например, на 4, то надо включить два таких делителя последовательно. Если требуется деление на 8, то потребуется последовательное включение трёх D-триггеров, ну и так далее.

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

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…