Привет, Хабр! Сегодняшняя схема измерителя частоты вращения электродвигателя представляет особенный интерес по причине того, что она построена на основе микросхем CD40110.

«Изюминка» этих реверсивных двоично-десятичных счётчиков состоит в том, что они снабжены встроенным дешифратором для семисегментного индикатора!

Это позволяет решать очень многие задачи предельно простым и экономным способом. Даже без микроконтроллера. Как, например, без него обходится наш тахометр.

▍ Считаем импульсы


Счётчики импульсов с выводом показаний на семисегментные светодиодные индикаторы нам с вами уже встречались, и не раз. Они являются ключевой составной частью таких любительских конструкций, как:



Во всех этих проектах мне пришлось применить микросхему дешифратора для семисегментного индикатора CD4511, чтобы из двоично-десятичного кода числа получить его визуальное представление в виде набора светящихся светодиодных сегментов.

Кроме того, такой дешифратор применяется в электронном помощнике экзаменатора и контроллере многоканальной охранной сигнализации.

▍ Разновидности цифровой индикации


При использовании статической индикации на каждый десятичный разряд требуется отдельная микросхема CD4511. Например, для электронных часов их понадобилось целых шесть.



Зато интегральный аналого-цифровой преобразователь MC14433 предусматривает динамическую индикацию, при которой разряды светятся не непрерывно, а один за другим. Соответственно на нужные промежутки времени включаются именно те сегменты, которые составляют отображение нужного числа.

Также динамическая индикация поддерживается трёхразрядным двоично-десятичным счётчиком CD4553 (К561ИЕ22). Можно считать и выводить на дисплей показания от 0 до 999, обойдясь всего одним дешифратором!



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

Хотя ещё более экономным является использование регистров сдвига. Именно на них основана работа многих последовательных интерфейсов передачи данных.

Также существует целый ряд специализированных микросхем, позволяющих сканировать дисплеи и клавиатуры, общаясь с микроконтроллером по паре проводов при помощи всё того же последовательного протокола. С парой таких микросхем мы экспериментировали в статье про самодельный Ардуино-совместимый контроллер.

Согласитесь, это очень удобно, когда одна микросхема комбинирует сразу несколько функций! Особенно если речь идёт про функции счётчика и дешифратора.

Например, декадные счётчики-дешифраторы CD4017 (К561ИЕ8), при помощи которых можно сделать не только эффект бегущих огней или светодиодный циферблат, заменяющий секундную стрелку, но и командоаппарат для частотомера, воспроизводящий запрограммированную последовательность управляющих сигналов.



Но сегодня речь пойдёт не о дешифраторе-демультиплексоре, а о дешифраторе для семисегментного индикатора, объединённом с реверсивным двоичным счётчиком в корпусе одной микросхемы! Кому как, а для меня это просто счастье!

▍ Знакомьтесь: CD40110B


Подобно CD40192, микросхема имеет два раздельных счётных входа: инкрементный CLOCK UP и декрементный CLOCK DOWN, срабатывающие по переднему фронту тактирующего импульса.



Что касается управляющих входов CD40110B, то их предусмотрено три: сброса RESET, запрета тактирования ¬TOGGLE ENABLE и защёлкивания LATCH ENABLE.

Когда на входе защёлкивания логический ноль, микросхема немедленно отображает на семисегментном индикаторе число из своего счётного регистра. А при логической единице на LATCH ENABLE дисплей «замерзает», показывая последнее число, до которого досчитал счётчик на момент защёлкивания.

Сброс по линии RESET затрагивает только триггеры счётного регистра. Если микросхема находится в защёлкнутом состоянии, то показания индикатора останутся неизменными. Чтобы сбросить индикацию на ноль, необходимо сбросить счётный регистр и «разморозить» индикатор (в любом порядке).

Также у микросхемы CD40110B имеется два специальных выхода: перенос CARRY и заимствование BORROW. Оба этих выхода пребывают в состоянии логической единицы.

В момент перехода из 9 в 0 при инкрементном счёте на выходе переноса появляется короткий отрицательный импульс.



То же самое верно относительно выхода заимствования, когда во время декрементного счёта происходит переход из 0 в 9.

Такая система входов и выходов позволяет с предельной лёгкостью, простотой и экономией наращивать разрядность счётчика-индикатора, соединяя выходы младших разрядов со входами следующих по старшинству.



▍ Зачем столько инверторов?


Управляющие входы микросхемы соединены с цепочками инвертирующих буферов — логических элементов НЕ.

Почему подавляющее большинство буферов в структуре интегральных микросхем именно инвертирующие? — Потому что они реализованы в виде транзисторных каскадов с общим эмиттером или общим истоком, в зависимости от того, биполярная или полевая технология положена в основу микросхемы.

Именно такой простейший схемотехнический узел на одном транзисторе способен усиливать и напряжение, и ток, в отличие от схем с общей базой (затвором) и коллектором (стоком). Как раз поэтому он наиболее эффективен в цифровой электронике.

И как раз такому транзисторному каскаду свойственно инвертировать полярность входного сигнала. Логическая единица превращается в логический ноль, и наоборот. То есть, получается инвертор — элемент НЕ.

▍ Внутренняя логика микросхемы


В итоге, сигнал запрета тактирования ¬TE c четвёртого вывода микросхемы превращается во внутренний сигнал Z без инвертирования. Команда сброса R с пятого вывода инвертируется и поступает на линию W. А сигнал разрешения защёлкивания LE c шестого вывода присутствует сразу на двух линиях — в прямом L и обратном ¬L вариантах.



Что касается тактирующих сигналов, то они сначала проходят через формирователь импульсов, исключающий ситуацию, когда одновременно приходят инкрементный и декрементный фронт. Имеет значение именно фронт сигнала, а не текущий логический уровень на счётном входе.

Далее сформированный счётный импульс, независимо от того, с инкрементного или декрементного входа он пришёл, преобразуется в универсальный тактирующий сигнал Y посредством логических элементов И-НЕ и НЕ.

Уравнение булевой алгебры для этого сигнала будет выглядеть так:

Y = ¬¬(U&V) = ¬¬(¬Up&¬Dn).

Согласно правилу де Моргана, конъюнкция отрицаний равна отрицанию дизъюнкции:

Y = ¬¬(¬Up&¬Dn) = ¬(Up|Dn).

Иными словами, положительный фронт импульса на любом из счётных входов преобразуется в отрицательный фронт сигнала на линии Y.

Направление счёта определяется установкой или сбросом RS-триггера, прямой и инвертированный сигналы с выхода которого управляют комплементарными проходными транзисторами в схеме счётчика.



Комплементарный проходной транзистор — это мультиплексорный ключ, обозначаемый на схеме квадратиками с латинскими буквами «p» сверху и «n» снизу.

▍ Секреты микросхем


Работа реверсивного декадного счётчика CD40192 на Т-триггерах со счётными входами и возможностью асинхронной установки и сброса подробно описана в статье про таймер обратного отсчёта. Наша сегодняшняя микросхема CD40110B построена на такой же базе, но имеет два ключевых отличия.

Первым отличием является применение синхронных D-триггеров с маскируемым тактированием и асинхронным сбросом.

Это очевидно: у CD40192 есть входы непосредственного ввода данных в счётный регистр и управляющий вход, переключающий микросхему из режима асинхронного чтения в режим счёта и наоборот. А у CD40110B ввод данных извне не предусматривается, зато есть управляющий вход запрета тактирования.

▍ Код Джонсона


Второе отличие — применение счётчика Джонсона на сдвиговом регистре с перекрёстной обратной связью, о котором можно прочитать в статье про бегущие огни и светодиодные матрицы.

Код Джонсона отличается от привычной нам позиционной двоичной системы счисления тем, что для его дешифрования для каждого из выходов достаточно одного двухвходового логического элемента И.

Это очень выгодно при построении дешифраторов, поэтому счётчики-дешифраторы строятся с применением именно кода Джонсона.

▍ Изучаем схему тахометра


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

А электронно-счётные частотомеры мы с вами уже собирали и совершенствовали, благодаря чему, знаем про две неотъемлемые составные части, без которых такой прибор невозможно построить.

Первая и самая очевидная составляющая — это счётчик импульсов. Благодаря «волшебству» CD40110B, для него нам достаточно всего-навсего трёх таких микросхем — по числу разрядов.



Если нужно больше разрядов, цепочка счётчиков-дешифраторов легко удлиняется без необходимости каких-либо ухищрений. К выходам каждой из CD40110B подключаются через резисторы аноды семисегментных индикаторов с общим катодом. Сколько разрядов, столько индикаторов и микросхем.

Вторая составляющая частотомера — устройство управления, реализующее алгоритм его работы. Ведь нам нужно подсчитывать не просто общее количество импульсов, а их число за определённый промежуток времени.

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

▍ Триггеры Шмитта и гистерезис


Создатели данного радиоконструктора для сборки модели тахометра реализовали управляющий модуль предельно экономично. Им оказалось достаточно всего-навсего одной микросхемы CD40106, содержащей шесть инвертирующих триггеров Шмитта, выполненных по технологии КМОП.

Благодаря гарантированному гистерезису, который является основополагающим отличием триггера Шмитта и даже изображается на его условном обозначении, для сборки мультивибратора достаточно всего одного триггера Шмитта, одного резистора и одного конденсатора.

Если бы в нашем распоряжении был только обычный компаратор или набор логических элементов, то нам пришлось бы обеспечивать гистерезис самостоятельно.

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


А если использовать компаратор или операционный усилитель в качестве компаратора, то гистерезис обеспечивается переключением опорного напряжения на неинвертирующем входе. Иными словами, вводится положительная обратная связь (ПОС).


Всеми любимый прецизионный интегральный таймер NE555 (КР1006ВИ1) содержит не один, а целых два компаратора с разными опорными напряжениями, что также создаёт гистерезис, необходимый для размаха колебаний напряжения на времязадающем конденсаторе мультивибратора или одновибратора.


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



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

▍ Генератор последовательности команд


Итак, подстроечным резистором RW2 можно задать период колебаний мультивибратора на левом верхнем по схеме инверторе микросхемы U4.



Далее мы видим цепочку одновибраторов, тактируемую этим мультивибратором через конденсатор С6. Они формируют управляющие сигналы, которые обновляют показания индикаторов, а затем сбрасывают счётчики.

И наконец, два левых нижних по схеме инвертора передают счётчикам сигнал с точно такого же инфракрасного фотодатчика, как продемонстрированные в статье про механическую компьютерную мышку с шариком.

▍ Поехали!


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

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

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (5)


  1. akhkmed
    20.06.2024 11:05
    +2

    Спасибо за обзор.

    Есть ещё такая микросхема, ИЕ4 - счетчик по модулю 10 с выводом на 7-сегментный индикатор. В том числе и для ЖК-индикаторов.
    https://www.inp.nsk.su/~kozak/cd4000/cdh17.htm

    Она в этой схеме подойдёт, потому что реверс не используется.
    Но в схеме тахометра применять ЖК-индикаторы не стоит, для них должен быть непрерывный поток импульсов.


  1. aax
    20.06.2024 11:05
    +6

    Отличная статья по основам классической цифровой схемотехники в академическом плане(и для ретро-ностальгии тоже) .

    А вот название не совсем соответствует содержанию - простота реализации здесь по современным меркам совсем не оптимальная, как и цена комплекта, особенно включая специализированную печатную плату.

    В плане простоты и дешевизны реализации две готовые массовые и недорогие платки Arduino Pro Mini и Модуль 7-сегментного 8-разрядного индикатора с дешифратором MAX7219, соединенные пятью проводниками(две линнии питание и три линии SPI) решают ровно туже задачу.

    Ардуину разумеется надо прошить используя под энкодер прерывание int0. Прошивку для Ардуино разумеется надо написать или найти готовую, но только один(первый) раз.


  1. S_WW
    20.06.2024 11:05
    +4

    "Смотри что я придумал: просто нажимаешь на кнопку - и свет включается! И не надо орать «Алиса, включи свет!»"

    Да уж, сейчас никому в голову не приходит делать устройство без микроконтроллера, а когда кто-то делает, то это выглядит как экзотика.


    1. aax
      20.06.2024 11:05
      +1

      Все зависит от постановки задачи.

      Например если Вам нужен просто экономичный десятичный счетчик, с широким диапазоном напряжения питания, то КР1561ИЕ8(CD4017CN), прекрастный выбор.

      Если, например, нужно много периферии(по несколько uart, spi, декодирование ИК-команд и т.д.) работающей в реалтайме, то Ваш выбор недорогая програмируемая логика(CPLD) на платке с обвязкой.

      Для описанной в же посте задачи с утилитарной стороны оптимален именно простой микроконтролер уже с обвязкой, плюс индикатор уже снабженный дешифратором.

      Важно чтобы разработчик РЭА по своей квалификации мог реализовать любой из альтернативных способов и выбрать оптимальный.


  1. unrealee
    20.06.2024 11:05
    +1

    Есть еще интересная отечественная микруха, К490ИП1. Объединяет в себе счетчик, дешифратор и сам семисегментный индикатор.
    Микросхемы десятичного счетчика - знакосинтезирующего индикатора. Содержит КМОП-схему управления со счетчиком импульсов и семисегментный знакосинтезирующий индикатор с децимальной точкой. Применяются для счета по модулю 10 импульсов положительной полярности, отображения их числа в виде цифр от 0 до 9 и формирования импульса переноса на старший разряд. Выпускаются в пластмассовом корпусе. Высота знака 2,5 мм.