Нужно поделить частоту входного сигнала на целое число, при этом чтобы выходной сигнал был строго синхронен с входом — без сдвигов фазы и лишних импульсов? Задача вполне рядовая, и CD4520 для этого подходит отлично. Это двойной 4-разрядный синхронный счётчик, который позволяет собрать редуктор частоты с коэффициентом деления от 1 до 16 на каждом каскаде, а при каскадном включении — значительно больше.
Разберёмся, как это сделать практически: от понимания логики счётчика до готовой схемы, которую можно собрать и запустить.
Что такое CD4520 и почему он удобен для деления частоты
CD4520 — это CMOS-микросхема, содержащая внутри два независимых 4-разрядных синхронных счётчика. Синхронный — значит все триггеры внутри переключаются одновременно по фронту тактового импульса. Это принципиально важно для редуктора частоты: на выходе нет скользящих задержек и лишных импульсов, которые неизбежны в асинхронных счётчиках.
У каждого счётчика есть:
- тактовый вход (CLK) — входной сигнал, частоту которого мы делим;
- вход разрешения (ENABLE) — когда он активен, счётчик работает;
- вход установки в ноль (RESET) — сброс всех триггеров в 0;
- четыре выхода (Q0–Q3) — биты счёта от младшего к старшему.
Ключевая идея для редуктора: мы заставляем счётчик считать до определённого значения и сбрасывать. Если сброс происходит при достижении числа N, то выходная частота будет входная, делённая на N.
Базовый принцип: деление на N
Допустим, нам нужно поделить частоту на 5. Счётчик считает: 0, 1, 2, 3, 4 — и на пятом импульсе должен сброситься обратно в 0. Для этого мы отслеживаем состояние выходов, соответствующее числу 4 (в двоичном коде это 100, то есть Q2=1, Q1=0, Q0=0), и подаём сигнал на RESET.
Когда счётчик достигает значения 4, комбинация логических уровней на Q2, Q1, Q0 формирует сигнал сброса. Счётчик мгновенно возвращается в 0, и цикл повторяется. На выходе Q2 мы получаем меандр с частотой, в 5 раз меньшей входной.
Вот пошаговый алгоритм для любого коэффициента деления N (от 2 до 16):
- Определите, до какого значения должен считать счётчик: это N−1 (потому что сброс происходит при достижении N−1, а следующий импульс уже вызывает сброс в 0).
- Запишите N−1 в двоичном виде. Например, для деления на 7: N−1 = 6 = 0110₂ (Q3=0, Q2=1, Q1=1, Q0=0).
- Найдите те выходы, которые равны 1 в этом представлении. В нашем примере это Q2 и Q1.
- Подключите эти выходы через логический элемент И (AND) к входу RESET. Когда все эти выходы одновременно станут равны 1, на RESET появится единица, и счётчик сбросится.
- Снимите выходной сигнал с того выхода, который даёт симметричный меандр. Для чётных коэффициентов деления обычно используют старший бит или промежуточный выход в зависимости от требований к скважности.
Конкретный пример: делитель на 6
Допустим, на вход подаётся сигнал 60 Гц, а нужен выход 10 Гц. Коэффициент деления N = 6, значит, счётчик должен сбрасываться при достижении 5.
Число 5 в двоичном коде: 0101₂. Это означает Q2=1, Q0=1, Q1=0, Q3=0. Соединяем Q2 и Q0 через логический элемент И — например, используем один из элементов CD4081 ( quad 2-input AND gate). Выход этого элемента идёт на вход RESET счётчика.
Тактовый вход CD4520 подключается к источнику 60 Гц. Вход ENABLE подтягивается к логической единице (разрешение работы). Выходной сигнал 10 Гц снимаем с Q2 — он переключается с частотой ровно в 6 раз ниже входной.
Схема получается компактной: CD4520, один И-элемент, пара резисторов для подтяжки и блокировочный конденсатор по питанию.
Каскадное включение: деление на числа больше 16
Один каскад CD4520 делит максимум на 16. Если нужен коэффициент больше — каскады соединяют последовательно. Выход первого счётчика подаётся на тактовый вход второго.
Допустим, нужно поделить на 48. Разлагаем: 48 = 6 × 8. Первый счётчик делит на 6, второй — на 8. Между ними — простая связь: выход Q2 первого счётчика (или тот выход, который даёт нужную частоту после деления на 6) подключается на CLK второго счётчика.
Важный момент: при каскадном включении следите за тем, какой именно выход первого счётчика вы используете как тактовый для второго. Если вы снимаете сигнал с того же бита, который участвует в формировании сигнала RESET, частота на этом выходе уже понизилась — это именно то, что нужно. Но помните, что скважность этого сигнала может быть не 50%, если коэффициент деления нечётный или если вы снимаете сигнал не со старшего бита.
Для двух каскадов общее число выходов, с которых можно снять результат, — восемь (по четыре на каждый счётчик). Это даёт гибкость: можно выбрать выход с нужной скважностью.
Выбор выходного сигнала и скважность
Вот где часто возникает путаница. Если вы просто берёте старший выход счётчика (Q3) и используете его как выходной сигнал, скважность не всегда будет 50%. Рассмотрим на примерах:
- Деление на 2: Q0 даёт меандр 50%. Идеально.
- Деление на 4: Q1 даёт меандр 50%. Хорошо.
- Деление на 3: Q1 даёт сигнал со скважностью 1:2 (треть времени — единица, две трети — ноль). Не симметрично.
- Деление на 5: Q2 даёт скважность 2:3. Тоже не 50%.
Если вам нужен строго симметричный выход (меандр), есть два пути:
- Использовать только степени двойки как коэффициент деления (2, 4, 8, 16) — тогда старший бит всегда даёт 50%.
- Дополнительно поставить JK-триггер (например, CD4027) на выход делителя, чтобы выровнять скважность. Триггер делит частоту ещё пополам, но зато гарантирует симметричный меандр.
Таблица подключений для типовых коэффициентов деления
| Коэффициент деления (N) | Значение сброса (N−1) | Двоичный код (Q3 Q2 Q1 Q0) | Выходы на AND (RESET) | Выходной сигнал | Скважность |
|---|---|---|---|---|---|
| 2 | 1 | 0001 | Q0 | Q0 | 50% |
| 3 | 2 | 0010 | Q1 | Q1 | 33% |
| 4 | 3 | 0011 | Q1, Q0 | Q1 | 50% |
| 5 | 4 | 0100 | Q2 | Q2 | 40% |
| 6 | 5 | 0101 | Q2, Q0 | Q2 | 33% |
| 7 | 6 | 0110 | Q2, Q1 | Q2 | 43% |
| 8 | 7 | 0111 | Q2, Q1, Q0 | Q2 | 50% |
| 10 | 9 | 1001 | Q3, Q0 | Q3 | 20% |
| 12 | 11 | 1011 | Q3, Q1, Q0 | Q3 | 33% |
| 16 | 15 | 1111 | Q3, Q2, Q1, Q0 | Q3 | 50% |
Обратите внимание: для коэффициентов-степеней двойки (2, 4, 8, 16) скважность всегда 50%. Для остальных — выходной сигнал несимметричный. Это не ошибка схемы, а свойство деления на нестепень двойки.
Варианты логических элементов для формирования RESET
Для формирования сигнала сброса нужен логический элемент И (AND). Подходящие варианты:
- CD4081 — четыре элемента И на два входа. Самый простой выбор, если у вас один-два выхода нужно объединить для RESET.
- CD4073 — три элемента И на три входа. Подходит, если нужно объединить три бита (например, для деления на 8 или 16).
- CD4075 — три элемента ИЛИ на три входа. Пригодится, если вы инвертируете логику (используете И-НЕ вместо И).
Если нужен коэффициент деления, требующий объединения четырёх выходов (например, 16), можно использовать два элемента И из CD4081, включённых каскадно: первый объединяет Q0 и Q1, второй — Q2 и Q3, а их выходы объединяются третьим элементом. Либо взять CD4073 (два из трёх входов использовать) и один CD4081 для финального объединения.
Есть и альтернативный подход — использовать вход ENABLE вместо RESET. В этом случае вы не сбрасываете счётчик, а останавливаете его. Когда нужное значение достигнуто, ENABLE переводится в 0, и счётчик замирает. На следующем входном импульсе — нет, не переключается. Но этот метод менее удобен для редуктора частоты, потому что требует более сложной логики управления. Метод с RESET проще и надёжнее.
Питание и обвязка
CD4520 — CMOS-микросхема, она чувствительна к статике и помехам по питанию. Вот что нужно сделать обязательно:
- Блокировочный конденсатор 100 нФ между выводами VDD и VSS — как можно ближе к корпусу микросхемы.
- Если питание 5 В — работает отлично. При 3,3 В тоже работает, но пороги логических уровней будут другими, учитывайте это при согласовании с другими микросхемами.
- Неиспользуемые входы (ENABLE, RESET свободного счётчика) обязательно подтяните к VDD или VSS. Висящие входы CMOS — причина нестабильной работы и повышенного потребления.
- Выходная нагрузка — вход CMOS-микросхемы или транзисторный ключ. Не подключайте непосредственно светодиод или реле без буфера.
Частые ошибки при построении редуктора на CD4520
Ошибка 1: Неправильный выбор значения сброса. Многие путают N и N−1. Если вы хотите делить на 5, счётчик должен сбрасываться при достижении 4, а не 5. Если поставите сброс на 5, реальный коэффициент деления будет 6, а не 5.
Ошибка 2: Снимают выходной сигнал не с того бита. Если вы используете Q2 для формирования RESET (при делении на 5), и одновременно снимаете с него выходной сигнал — это корректно. Но если вы по ошибке снимаете сигнал с Q1 или Q0, частота и скважность будут не те, что ожидаете.
Ошибка 3: Забывают про ENABLE. Если вход ENABLE оставить висящим (не подключённым), счётчик может не считать вовсе или считать хаотично. Для нормальной работы ENABLE должен быть логической единицей.
Ошибка 4: Пытаются получить скважность 50% при нечётном коэффициенте деления без дополнительного триггера. Это принципиально невозможно одним каскадом счётчика. Деление на 3, 5, 7, 10 и т.п. даёт несимметричный выход. Если нужен меандр — добавьте JK-триггер после счётчика.
Ошибка 5: Не учитывают задержку распространения через логический элемент. При работе на высоких частотах (выше нескольких мегагерц) задержка через элемент И и внутренняя задержка сброса счётчика могут привести к тому, что счётчик успеет просчитать лишнее состояние. Для частот до 1–2 МГц на обычных CD4000-сериях это обычно не проблема, но имейте в виду.
Что выбрать в зависимости от задачи
Нужно просто поделить частоту на 2, 4, 8 или 16 с меандром на выходе? Один CD4520, один выход на RESET через элемент И (или напрямую для деления на 2). Минимум деталей.
Нужен произвольный коэффициент от 3 до 16 и скважность не важна? Один CD4520 + один CD4081 или CD4073. Настраиваете подключение нужных выходов к элементу И — и готово.
Нужен коэффициент больше 16? Два каскада CD4520 (один корпус содержит два счётчика, так что один чип покрывает два каскада). Первый делит на N1, второй на N2, общий коэффициент — N1 × N2.
Нужен скважность 50% при нечётном коэффициенте? CD4520 + элемент И + JK-триггер (CD4027). Триггер после счётчика делит частоту ещё на 2 и выравнивает скважность. Общий коэффициент деления при этом удваивается: если счётчик делил на 5, итоговый результат — деление на 10 с меандром.
Нужна перестраиваемая схема (переключение коэффициента деления)?strong> Используйте переключатель для коммутации выходов, идущих на элемент И. Можно применить 4-разрядный переключатель (например, CD4016 или механический) для выбора нужной комбинации битов. Только следите за тем, чтобы при переключении счётчик не попал в некорректное состояние — лучше на время переключения зафиксировать ENABLE = 0.
Практические рекомендации
- Всегда начинайте настройку с деления на 2 — это самый простой случай, где выход можно снять прямо с Q0 без дополнительной логики. Убедитесь, что счётчик вообще работает, прежде чем усложнять схему.
- Проверяйте осциллографом, а не только логическим пробником. Логический пробник покажет наличие сигнала, но не скважность и не форму импульса.
- Если выходной сигнал идёт на микроконтроллер — вход микроконтроллера должен быть с гистерезисом или подтянут к определённому уровню. CMOS-входы CD4520 имеют порог примерно VDD/2, и при медленных фронтах могут возникать дребезг.
- При каскадном включении оба счётчика должны быть в одном корпусе CD4011 или CD4520 — не используйте разные микросхемы с разными задержками, если работаете на высокой частоте.
Итог
CD4520 — простой и надёжный инструмент для построения синхронного редуктора частоты. Базовая схема требует самой микросхемы, одного логического элемента И и блокировочного конденсатора. Каскадное включение позволяет получить любой практически коэффициент деления, а добавление JK-триггера решает проблему несимметричного выхода.
Главное — правильно определить значение сброса (N−1, а не N), выбрать правильный выходной бит и не забывать про обвязку. Собрали один раз — и работает без сбоев, потому что вся логика внутри микросхемы синхронная и предсказуемая.
