Найти в Дзене
Electronics && Oleg Gorshkov

Программируемый делитель частоты на CD40103

CD40103 — это 8-битный синхронный двоичный счетчик с предустановкой, работающий на вычитание (down counter). Работа счётчика осуществляется следующим образом: на выводах J0-J7 задаётся пред установочное число (в двоичном виде), по мере поступления тактовых импульсов на вход CLOCK, счётчик ведёт вычитание из установленного числа, и при достижении нуля, на выходе ZERO DETECT установится нуль. Запись установленного значения может производиться синхронно, в этом случае асинхронный вход соединяется с плюсом питания, а при появление ноля на синхронном входе, установленное значение запишется с первым тактовым импульсом. Или же можно использовать асинхронную запись, в этом случае наоборот синхронный вход соединяем с плюсом питания, а запись произойдёт при появление нуля на асинхронном входе, независимо от тактовых импульсов. Сброс счётчика производится подачей нуля на вход CLEAR. Вход counter enable служит для запрета счёта, в рабочем состояние должен быть нуль. Такой счётчик идеально подходит

CD40103 — это 8-битный синхронный двоичный счетчик с предустановкой, работающий на вычитание (down counter).

Работа счётчика осуществляется следующим образом: на выводах J0-J7 задаётся пред установочное число (в двоичном виде), по мере поступления тактовых импульсов на вход CLOCK, счётчик ведёт вычитание из установленного числа, и при достижении нуля, на выходе ZERO DETECT установится нуль. Запись установленного значения может производиться синхронно, в этом случае асинхронный вход соединяется с плюсом питания, а при появление ноля на синхронном входе, установленное значение запишется с первым тактовым импульсом. Или же можно использовать асинхронную запись, в этом случае наоборот синхронный вход соединяем с плюсом питания, а запись произойдёт при появление нуля на асинхронном входе, независимо от тактовых импульсов. Сброс счётчика производится подачей нуля на вход CLEAR. Вход counter enable служит для запрета счёта, в рабочем состояние должен быть нуль.

Такой счётчик идеально подходит для создания программируемого делителя частоты. Для его создания достаточно объединить выход ZERO DETECT со входом отвечающем за запись установленного значения. Рассмотрим схему синхронного программируемого делителя частоты, так как она наиболее стабильна.

деление на 3
деление на 3

Коэффициент деления K = N + 1, где N - выставленное значение на счётчике. Один тактовый импульс всегда теряется на считывание установленного значения счётчиком, поэтому учитываем его в формуле, это специфика работы в синхронном режиме, в асинхронном K равнялась бы N.

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

Итак, на приведённой схеме я соединил P1 с плюсом питания, остальные P с землёй, таким образом задав счётчику установочное число два (в бинарной системе), прибавляем 1, следовательно коэффициент деления должен быть 3. Подадим на вход делителя частоту 3 кГц с генератора, и измерим значение на его выходе, выход берётся с ZERO DETECT (14).

делим частоту на 3
делим частоту на 3

Видим на выходе значение близкое к 1 кГц, то есть производится деление частоты на 3.

Подключил вместо частотомера логический анализатор.

логический анализатор
логический анализатор

Верхний канал - вход делителя, нижний - выход.

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

По идее делитель частоты можно реализовать на любом двоичном счётчике но там коэффициент деления был бы всегда кратен двум в степени n. здесь же можно задать абсолютно любой коэффициент от 1 до 255.

Собственно почему меня заинтересовала эта тема? Недавно я реализовывал проект "Дальномер на HC-SR04 без микроконтроллера", там для работы устройства требовалась частота 17,24 кГц. Кварцевых резонаторов на такую частоту не производится, и получить её простыми делителями из частоты стандартных кварцев не возможно. Тогда я обошёлся обычным RC генератором, без кварца. Но теперь с CD40103 открывается возможность сделать делитель на 58, и использовать кварц на 1МГц (1000000/58=17,241).

Попробуем сделать делитель на 58, для этого изменим схему таким образом, чтобы на входах счётчика P задать число 57.

делитель на 58
делитель на 58

Генератора на 1МГц у меня под рукой нету, поэтому задаю 58 кГц.

почти идеально
почти идеально

Работает, возможно придётся вернуться к проекту дальномера на HC-SR04 без микроконтроллера, и доработать его.

Кстати данный делитель можно использовать и совместно с микроконтроллером, подключив его напрямую, или лучше через сдвиговый регистр 74HC595. Да, конечно в микроконтроллере есть встроенные таймеры, которые могут работать в фоновом режиме, но в некоторых случаях автономность отдельного блока от микроконтроллера может быть весьма полезна, загрузил значения в сдвиговый регистр, и забыл. Вот что по этому поводу думает Гугл: Использование CD40103 совместно с Arduino позволяет разгрузить микроконтроллер от задач точного счета или деления частоты, особенно в высокоскоростных приложениях.