Хакер - Бунт многоножек. Собираем устройство с интегральными микросхемами
hacker_frei
prostorosty
Содержание статьи
- Анатомия многоножек
- Некоторые виды микросхем
- Триггер Шмитта
- Сдвиговый регистр
- Некоторые электронные компоненты
- Конденсатор
- Семисегментный индикатор
- Рубрика «Э-э-эксперименты!»
- Hello, world!
- Комбинирование логических вентилей
- Шифраторы и дешифраторы
- Подводим итоги
Без микросхем не обходится ни одно современное электронное устройство. Внутри этих «многоножек» могут прятаться десятки маленьких транзисторов. В этой статье разберем, как комбинировать их между собой, узнаем о нескольких важных видах микросхем, помигаем светодиодом и соберем парочку устройств. Погнали!
В прошлой статье мы собирали логические вентили на транзисторах. Чем сложнее вентиль, тем больше транзисторов нужно, а в современных устройствах таких вентилей может насчитываться огромное количество. Компактным такое устройство не назовешь, и тут нам на помощь приходят микросхемы.
INFO
В этой статье я буду часто ссылаться на предыдущую. Если ты ее еще не прочитал — сейчас самое время!
АНАТОМИЯ МНОГОНОЖЕК
Внутри микросхемы, которую также иногда называют чипом, находится электрическая цепь из очень маленьких компонентов. Микросхемы бывают совершенно разные, и их видов насчитывается великое множество, в пластиковом корпусе помещаются самые разные логические элементы. Каждый из чипов решает свою задачу.

Микросхемы, которые мы будем использовать в этой статье, облачены в так называемый DIP-корпус (dual in-line package). Такие двухрядные микросхемы легко вставляются в ячейки уже знакомого нам из прошлой статьи бредборда. «Ноги», то бишь контакты микросхемы, часто называют пинами. Как ты помнишь из прошлой статьи, цифровая логика работает на основе двоичной системы счисления, оперирующей нулями и единицами. У каждого пина есть свое назначение, и свою функцию он выполняет при подаче на него нужного сигнала, то есть логического нуля или единицы.

На схемах каждая из ног микросхемы последовательно нумеруется против часовой стрелки. Первая нога чипа обозначается круглой засечкой на его корпусе. Нумерация выводов микросхемы в DIP-корпусе происходит от этой ноги против часовой стрелки. Обрати внимание, что одна и та же микросхема может обозначаться на схемах по‑разному, поэтому для подключения надо смотреть на номера пинов и их названия.
На схеме ты всегда встретишь пины VCC и GND, ведь каждой микросхеме для работы необходимо питание. Прежде чем подключать источник питания к этим пинам, посмотри в даташите (документе с характеристиками), поддерживает ли данный чип это напряжение. Остальные пины, как правило, обозначаются аббревиатурой от их назначения (например, DS = Data Serial). Черта над ней означает инверсию: пин будет активирован, если подать на него логический ноль.

НЕКОТОРЫЕ ВИДЫ МИКРОСХЕМ
В электронике различают десятки тысяч микросхем, и все они необходимы для выполнения тех или иных задач. Микросхемы разрабатываются сериями, которые обозначают в первую очередь тип логики. Также микросхемы одной серии схожи по характеристикам, например потребляемому напряжению. Поэтому чипы лучше взаимодействуют с собратьями из одной серии. Рассмотрим подробнее несколько разновидностей микросхем.
INFO
Полное и максимально подробное описание характеристик микросхем ты можешь прочитать в их даташите. К каждому используемому и разобранному чипу я приложу ссылку — читай на здоровье.
Триггер Шмитта
Как ты помнишь из прошлой статьи, различают цифровой и аналоговый сигналы. Чтобы «округлить» нестабильный аналоговый сигнал до стабильного цифрового, используется этот чип. В одной такой микросхеме нередко делают сразу несколько независимых триггеров (схем с несколькими устойчивыми состояниями). Иногда выходы триггера инвертируют.
Популярный чип с шестью инвертирующими триггерами Шмитта — 74HC14. У этой микросхемы также есть пин питания VCC и общей земли GND. Еще есть два вида пинов xA и xY (на местах x может быть любое число — номер пина). При этом xA обозначает аналоговый вход, а xY — цифровой выход. На картинке ниже показана схема этого чипа и обозначение вентиля триггера — обычного и инвертированного.

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

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

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

Последний элемент в этой цепочке — триггер Шмитта. Он делает из сглаженного аналогового сигнала цифровой.

Сдвиговый регистр
Этот чип необходим для увеличения количества цифровых пинов. Одна из самых популярных микросхем данного типа — 74HC595. Для управления ей требуется всего три пина, а на выходе она дает целых восемь.

Разберем назначение пинов. Как и всегда, VCC и GND — питание и земля. DS — это линия входных данных для внутренней памяти регистра. SHcp — линия такта, которая переносит 1 бит из DS в память регистра Dx. STcp — линия строба данных, служит для их переноса из памяти на Qx. Qx (на местах x может быть любое число — номер пина) — это восемь выходов чипа общего назначения. Q7 — выход для сцепления нескольких регистров в ряд. OE с чертой сверху — это линия включения/выключения выходов Qx. MR с чертой сверху — линия для обнуления состояния регистра.
Микросхема принимает последовательный сигнал на одном пине Ds и превращает его в параллельный сигнал на восьми пинах Qx. Тактом последовательной передачи управляют через дополнительный пин SHcp. Также отдельным пином управляется регистр данных STcp, что позволяет изменять сигнал на восьми выходах единовременно, когда передача данных завершена.
Каждый из восьми выходов Qx — это бит информации, который может быть нулем или единицей. Все эти 8 бит первым делом пропихиваются во внутреннюю память Dx, а после все биты оттуда сразу переносятся на реальные выходы Qx.
НЕКОТОРЫЕ ЭЛЕКТРОННЫЕ КОМПОНЕНТЫ
По аналогии с прошлой статьей, где мы изучили резистор и диод, перед экспериментами и сборкой схем поговорим об электронных компонентах, которые могут нам понадобиться.
Конденсатор
Конденсатор — это крошечный аккумулятор, который очень быстро заряжается и так же быстро разряжается. У конденсатора есть одна важная величина, именуемая емкостью, которая фактически определяет, какой заряд он может принять. Емкость обозначается буквой C и измеряется в фарадах. Существует два основных вида конденсаторов — керамический и электролитический. Первый полярности не имеет, и его емкость не может превышать 1 мкФ. У электролитического конденсатора «плюс» и «минус» имеются, я уже рассказывал, что они называются анод (+) и катод (–). У катода данного типа конденсатора более короткая нога, а также светлая полоска на корпусе сразу над ним. Его емкость начинается с 1 мкФ.

Номинал, то есть в данном случае значение емкости конденсатора, записывается на его корпусе. Но если у электролитического это число с указанием величин, то с керамическим немного сложнее. На корпусе его номинал записан в виде трех цифр, первые две из которых — основание числа, а третья — множитель (10 в степени третьей цифры).
INFO
У конденсатора существует еще одна характеристика под названием «постоянная времени». Высчитывается она по формуле t = C * R, в которой C — это емкость конденсатора, а R — сопротивление цепи (о нем я рассказывал в прошлой статье). За t секунд конденсатор заряжается/разряжается на 63%. За 5 * t секунд конденсатор заряжается/разряжается на 99%.
Семисегментный индикатор
В прошлой статье я рассказывал о светодиоде. Так вот, семисегментный индикатор — это сразу восемь светодиодов в одном корпусе (семь сегментов, из которых составляются числа десятичной системы счисления, и точка).

Ноги данного элемента нумеруются последовательно, против часовой стрелки. Анод у каждого светодиода свой, а вот катод общий, он находится на ноге 3 или 8.
WARNING
При подключении семисегментного индикатора для каждого светодиода используй отдельный резистор, иначе при разном числе включенных сегментов яркость светодиодов будет изменяться.
РУБРИКА «Э-Э-ЭКСПЕРИМЕНТЫ!»
Наконец мы переходим от слов к делу. Запасайся многоножками, и в бой!
Hello, world!
В мире информационных технологий существует традиция — начинать изучение нового языка программирования с вывода фразы «Hello, world!». Мигание светодиодом — это аналог данного обычая в электронике. Давай и мы начнем практическое изучение микросхем с такого приветствия.
Список деталей, которые нам понадобятся:
- микросхема‑таймер NE555;
- светодиод;
- резисторы 220 Ом, 10 кОм и 100 кОм;
- керамический конденсатор на 100 нФ;
- электролитический конденсатор на 22 мкФ.
Сердцем и мозгом нашей схемы будет легендарный чип‑таймер NE555. Эта интегральная схема генерирует одиночные и повторяющиеся импульсы со стабильными временными характеристиками.

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

Так же как и в прошлой статье, собирать схемы мы будем на макетной плате. У маяка схема очень простая и уместится даже на самом маленьком бредборде.

Комбинирование логических вентилей
Как я говорил в начале статьи, внутри микросхемы находится сразу несколько логических вентилей. Практически у всех разобранных ранее логических блоков было два входа. Составляя таблицы истинности и используя знания из прошлой статьи по проектированию логических вентилей, можно собирать их с большим количеством входов самостоятельно из полевых транзисторов.
Совмещая вентили внутри чипов, мы можем увеличить количество их входов. Так, из разобранных в предыдущей статье трех вентилей конъюнкции 2И (то есть блоков с двумя входами) можно получить 4И (тут входов четыре) или, например, из двух 2И получить 3И. Давай разбираться, как это сделать.
Для создания таких комбинированных вентилей используется соединение элементов блоков в каскады вентилей, расположенные поочередно. От этого и происходит название такого метода — каскадирование. На картинке ниже приведена схема вентиля 3И на базе 2И.

Как ты видишь, здесь мы соединили выход первого блока 2И с одним из входов второго 2И. Раз уж мы разбираем конъюнкцию, то, как ты помнишь, на выходе этого блока будет логическая единица, только если на обоих его входах высокий уровень сигнала HIGH. Таким образом, последний вентиль даст на выходе 1, если по единице будет на его оставшемся входе, а также на входе первого 2И. А это, в свою очередь, требует наличия единиц уже на его входах.
Этим же способом можно создать, например, вентиль 4И. Для этого к обоим входам блока 2И подключим по еще одному такому же блоку, получив вентиль с четырьмя входами.

У микросхем существует цоколевка. Цоколевка показывает расположение входов и выходов вентилей внутри микросхемы, а также пины питания (VSS или VCC на схеме — это «плюс», а GND или VDD — «минус»). Найти ее можно в даташите на микросхему. Ниже представлен пример цоколевки микросхемы с четырьмя вентилями 2И внутри.

Соответственно, чтобы получить 4И, нам надо соединить, например, 3-й пин с 8-м, а 4-й с 9-м. Тогда входы вентиля будут на 1, 2, 5, 6-м пинах, а выход на 10-м.
Propagation delay
В даташитах встречается такая характеристика, как propagation delay — задержка распространения. Каждый вентиль имеет свою задержку срабатывания, а это значит, что при последовательном каскадировании (его пример — 3И на базе двух 2И) сигналы с разных входов дойдут до выхода за разное время. В комбинированных вентилях, состоящих из двух блоков, это неощутимо, но, если от схемы требуется быстродействие, а в ней могут комбинироваться десятки вентилей, такой способ каскадирования очевидно проигрывает. Поэтому, если количество входов четное, каскады вентилей лучше всего делать древовидными, как в 4И на базе трех 2И. Если количество входов нечетное, можно комбинировать эти способы каскадирования.
Что делать, если у вентиля остались незадействованные входы? Допустим, в микросхеме есть блок 4И, но нам нужно только три входа. Оставшийся четвертый мы подключаем либо к питанию, либо к одному из других используемых входов. Это необходимо, так как вход, «болтающийся в воздухе», будет работать как антенна и неизвестно, какой сигнал он поймает и как это повлияет на выход.
Единственная проблема — понять, какой сигнал нужно на него подать, чтобы он не помешал работе вентиля. Для этого необходимо посмотреть на таблицу истинности вентиля. Если, например, на вход логического И подать 0, то никаким образом мы не сможем получить на выходе 1. Посмотрев на таблицы истинности других вентилей (смотри прошлую статью), мы можем сделать вывод, что оставшиеся входы И и И — НЕ надо подключать к единице, то есть к плюсу питания, а ИЛИ и ИЛИ — НЕ — к минусу.
Шифраторы и дешифраторы
Сразу огорчу: название «шифратор» не связано ни с какими тайнами. Шифраторы и дешифраторы нужны для того, чтобы переводить числа из одной системы счисления в другую. Например, у нас есть десять кнопок, подключенных к какому‑нибудь устройству, и наша задача — перевести нажатия кнопок в двоичный код, понятный машине. Последовательно нажимая на кнопки, мы передаем унитарный код, ведь каждый из десяти подключенных к клавишам проводов может передать один высокий логический сигнал. Преобразователь чисел из неудобной системы счисления (работать с унитарным кодом гораздо сложнее, чем с двоичным) в более компактную называется шифратором. А обратный преобразователь, соответственно, дешифратором.
Шифратор для семисегментного индикатора
Всего цифр, которые можно показать на одном семисегментном индикаторе, десять, от нуля до девяти. Прежде чем составлять таблицу истинности для данного устройства, переведем эти числа в двоичную систему, чтобы понять, сколько входов нам потребуется.

Как видишь, для обозначения самого большого числа требуется четыре цифры, то есть четыре двоичных разряда. А это, в свою очередь, значит, что нам потребуется всего четыре входа — x0 (самый младший разряд), x1, x2 и x3 (самый старший разряд). Для удобства сегменты обозначим прописными английскими буквами.

Для составления таблицы истинности условимся, что горящий светодиод равен единице. Получаем такую таблицу.

А сейчас давай выведем «формулы», ведь необходимо понимать, какими комбинациями сигналов мы зажжем нужный сегмент индикатора. Как можно заметить, нулей в этой таблице меньше, чем единиц. Поэтому проще будет составить формулы, для которых светодиод НЕ должен светиться. Напомню, что инверсия обозначается чертой сверху, логическое сложение — это V, а логическое умножение — это &. Существуют правила сокращения формул алгебры логики. После всех преобразований формулы будут выглядеть так.

Еще раз напомню, что эти формулы гасят сегмент. Чтобы на выходе получить сигнал для зажигания, в схеме нужно заменить все И на И — НЕ. В формулах b и f, так же как в d и e, присутствуют одинаковые части, они общие для обеих функций.

Чтобы собрать такую схему, используя вентили из мосфет‑транзисторов, нам потребуется несколько крупных бредбордов. К счастью, существуют специальные микросхемы для управления разными элементами, и семисегментный индикатор не исключение. Такие микросхемы называются драйверами, а не просто дешифраторами, ведь они не только позволяют переводить числа, но и предлагают полезные функции для управления компонентами. Например, как в случае с семисегментным индикатором, выключать разом все светодиоды при подаче нужного сигнала на один из пинов. Один из драйверов управления семисегментным индикатором — микросхема CD4511BE.

У этой микросхемы, помимо четырех входов, задающих число, которое необходимо зажечь, а также семи выходов, которые зажигают сегменты, имеются еще три пина — LE, LT и BL. LE необходим для разрешения защелкивания (latch enable) — это режим записи входных данных во внутреннюю память. Если сигнал на этом пине высокий (HIGH), то изменение входных данных никак не отображается на выходе, а значит, показания индикатора также не меняются. В нашей схеме мы просто подключим его к минусу питания — блокировка вывода нам не нужна. LT — это lamp test, он служит для теста и включает все индикаторы разом. Черта сверху говорит о том, что он активируется нулем. BL (blanking), наоборот, выключает разом все сегменты. Он тоже активируется низким сигналом.
Схему подключения драйвера к семисегментному индикатору, а также ее, собранную на бредборде, я привожу ниже.


Нажимая определенные кнопки, мы можем изменять показания семисегментного индикатора.
ПОДВОДИМ ИТОГИ
Надеюсь, сегодня мир микросхем и цифровой электроники стал для тебя немного понятнее и ближе. Теперь ты можешь не только делать свои схемы гораздо компактнее, но и создавать новые, ранее недоступные.
Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei