2.5. Триггеры и счетчики
2.5.1. Маркировка выводов
Обозначение номеров выводов двоичного счетчика часто является источником ошибок. Разработчики логических устройств, как правило, предпочитают начинать нумерацию разрядов с нуля. Однако конструкторы микросхем обозначают номера выводов начиная с единицы. Таким образом, 12-разрядный счетчик имеет номера выводов от Q1 до Q12, в то время как программируемое постоянное запоминающее устройство (ППЗУ) эквивалентной разрядности имеет адресные строки, обозначенные А0 — A11. Чтобы не запутаться, надо с самого начала найти на схеме или в технической документации наименьший номер и вести отсчет от него на протяжении всех последующих действий.
2.5.2. Двоичный счетчик как триггер
Триггеры (логические элементы с двумя устойчивыми состояниями) могут быть выполнены как в ТТЛ, так и в КМОП базисе. В одном корпусе содержится как минимум два триггера. При их монтаже необходимо соединить между собой некоторые выводы, что усложняет рисунок печатной платы. Вместо этих компонентов можно взять любой двоичный счетчик (рис. 2.26) и использовать в качестве выходного сигнала состояние бита с наименьшим весом (Q0 или Q1). Начальное состояние триггера можно выставить, подавая сигнал сброса на соответствующий вход счетчика.
Для решения рассмотренной задачи могут использоваться различные типы счетчиков. В зависимости от модели можно выбрать запуск по переднему или заднему фронту. Для уточнения этого вопроса следует обратиться к технической документации.
Рис. 2.26. Двоичный счетчик как триггер
2.5.3. Блокировка счетчика микросхемы CD4O6O
Микросхема CD4060 пользуется большой популярностью у разработчиков цифровых устройств. На ее основе построены как простые, так и довольно сложные устройства. Микросхема содержит генератор импульсов, для задания параметров которого потребуется два внешних резистора и один конденсатор (или кварцевый резонатор), а также 14-каскадный двоичный счетчик (рис. 2.27).
Рис. 2.27. Включение ИС CD4060
Число выводов корпуса (типа DIP16) не позволяет целиком использовать все 14 выходов счетчика. Когда генератор не связан со счетчиком, он может играть роль тактового генератора. При соединении этих двух элементов схема выполняет функцию таймера. Небольшая хитрость позволяет блокировать работу генератора при переходе одного из выходов в состояние логической единицы, что дает возможность, например, включить сигнал тревоги по истечении заданного промежутка времени. Для этого достаточно соединить вход генератора OSC IN с одним из выходов счетчика QN. Во избежание осложнений такое соединение производится через диод.
Для остановки генератора можно использовать любой другой сигнал, переходящий в состояние логической единицы. Когда счетчик и генератор заблокированы, из этого состояния их может вывести только управляющий импульс на входе R (Reset).
2,5.4, Каскадирование счетчиков
Для обращения к ППЗУ большой емкости необходимо значительное число адресных линий. Например, для адресации к модели 27256 емкостью 8x32 Кб нужно 15 адресных линий с А0 по А14. Как правило, намного удобнее использовать двоичный счетчик, который сканирует всю память, поскольку в классическом варианте для управления счетчиком требуется только два бита (один для тактового входа, другой для обнуления), а не 15.
К сожалению, нет счетчиков с таким количеством выходов, несмотря на то что некоторые версии имеют 14 каскадов (например, микросхема CD4020). Но из 14 каскадов реально используется только 12, так как выходы Q1 и Q2 не подключены к внешним выводам.
Для счетчика CD4060 ситуация еще хуже, поскольку здесь можно использовать только 10 выходов. В результате необходимо применять каскадное соединение микросхем. Модель CD4040 отлично подходит для решения этой задачи. Последний выход первого счетчика (Q12, если начинать отсчет от Q1), соединен с тактовым входом второго счетчика (рис. 2.28).
Рис. 2.28. Каскадное соединение счетчиков
Входы обнуления соединяются и управляются общим сигналом сброса. Составленный таким образом счетчик будет иметь 24 выхода, но использоваться будут только 15 первых.
Аналогичный подход возможен также при работе с ППЗУ большего объема. При необходимости ничто не помешает вслед за вторым счетчиком поставить и третий. Такой вариант схемы можно применять для последовательного поиска данных (например, при синтезировании звуковых сигналов или при создании сообщения на алфавитно-цифровом индикаторе). В этом случае управление устройством лучше доверить микроконтроллеру, хотя при желании можно разработать управляющую схему на дискретных логических элементах.
2.5.5. Обнуление счетчиков
Установка сложной логической схемы в исходное состояние часто требует обнуления одного или нескольких счетчиков, которые могут быть построены на триггерах различных типов. Выполнение этой операции должно быть тщательно продумано, так как от нее в значительной степени зависит функционирование всей системы. Лучше создать устройство обнуления, общее для всех узлов, а не отдельные независимые модули. Это возможно, только если уровни сигнала обнуления согласованы. Как правило, обнуление всех счетчиков осуществляется сигналом логической единицы и происходит автоматически при подаче напряжения питания (рис. 2.29). Микроконтроллеры обычно имеют инвертированный сигнал обнуления, поэтому их не удается включить в общую схему. В этом случае лучше дать микроконтроллеру возможность автоматически устанавливать в исходное состояние все остальные компоненты устройства.
Рис. 2.29. Схема обнуления счетчиков
2.5.6. Сочетание счетчика с линейным индикатором
Лицевые панели современных приборов часто содержат светящиеся шкалы, отображающие какую-либо аналоговую величину или настройку приемника. Такой тип индикации, которая называется линейной, формируется с помощью нескольких светодиодов, расположенных в ряд. Выпускаются и готовые шкалы, состоящие из восьми или десяти светодиодов, собранных в корпусе DIP16 или DIP20. Можно также построить линейный индикатор собственными силами, используя круглые или прямоугольные светодиоды разных цветов или одного цвета. Однако управлять таким индикатором не очень просто. Для этого необходимо располагать двоичными сигналами, число которых равно количеству светодиодов.
Если прибор содержит несколько однотипных модулей, разработка его схемы заметно усложняется. Более простое решение — использовать один или несколько двоичных счетчиков (рис. 2.30).
Рис. 2.30. Схема счетчика с индикатором
Счетчик заставляют считать вперед, воздействуя на его тактовый вход до тех пор, пока на выходах не появится требуемый результат. При подаче сигнала сброса все выходы счетчика переходят в нулевое состояние. После первого тактового импульса выход младшего разряда переходит в состояние логической единицы. Следующий период устанавливает это состояние на втором выходе, а первый разряд обнуляется. Третий период переводит в состояние логической единицы оба первых выхода и т. д. Если каждый из выходов соединить со светодиодами, такой двоичный счет будет отображаться индикатором.
По этому принципу можно построить линейный индикатор точечного типа (в каждый момент горит один светодиод) или типа светящейся шкалы. Управлять счетчиком для получения требуемой индикации должен микроконтроллер.
Сложность этой задачи заключается в том, что счетчик невозможно сразу вернуть назад. Например, если горит третий светодиод, а необходимо зажечь второй, сначала надо погасить оба (через вход Reset), а затем отправить нужное число тактовых импульсов. Чтобы промежуточные этапы счета не были видны на индикаторе, следует увеличить скорость операций, особенно при зажигании последних светодиодов. Действительно, зажигание последнего диода из ряда, содержащего 10 штук, требует отправления 512 импульсов, а зажигание одновременно всех десяти — 1023 импульсов. Такая процедура не требует сложных вычислений для определения числа импульсов, соответствующего заданному состоянию индикатора.
В рассмотренном устройстве можно использовать любой двоичный счетчик (если только он имеет все необходимые выходы). Для создания очень большой шкалы придется каскадно соединить несколько таких счетчиков. Не рекомендуется подключать светодиоды непосредственно к выходам счетчика, лучше использовать ряд буферных каскадов на основе микросхем или транзисторной матрицы.
2.5.7. Высокоомное состояние
Возможность получения особо высокого сопротивления играет важную роль как в аналоговой, так и в цифровой электронике. В первом случае речь чаще всего идет о входном сопротивлении операционного усилителя. Во втором случае обычно имеется в виду высокоомное состояние выхода логического устройства. Об этом уже упоминалось выше, когда речь шла о выходах схем с открытым коллектором. Использование высокоомного состояния лежит в основе принципа передачи цифровой информации по шине, связывающей несколько различных компонентов, которые взаимодействуют друг с другом (рис. 2.31).
Рис. 2.31. Схема подключения к общей шине
Каждый разряд на выходе логических элементов, подключенных к общей шине, может принимать три состояния: логический нуль, логическая единица и высокоомное состояние, сравнимое с физическим отключением (его часто называют Z-состоянием). Без этого третьего состояния было бы невозможно объединить нескольких выходов. Поэтому для подключения к общей шине (с параллельной или последовательной передачей данных) можно использовать ТТЛ схемы с открытым коллектором на выходе, предназначенные для такого соединения, или КМОП схемы с Z-состоянием выхода.
Аналоговые устройства с высоким входным сопротивлением необходимы для работы с некоторыми специфическими элементами, в частности с датчиками физических величин. Примером может служить датчик с электродами для измерения показателя рН жидкости, имеющий сопротивление порядка 1012 Ом. К счастью, существует ряд операционных усилителей, входное сопротивление которых согласуется с такой величиной. Разработчику схемы необходимо соблюдать определенные правила размещения элементов. Соединительный кабель и особенно соединительный элемент должны выбираться и монтироваться очень тщательно. От этого в большой степени зависит качество работы всей схемы. Обычно имеет смысл приобрести соединительный кабель со специальным разъемом для присоединения к входу усилителя.