Цифровая электроника и основы микроконтроллеров
Как эта тема связана с предыдущими
В прошлых статьях курса мы разобрали электрические величины и законы цепей, пассивные компоненты (R, C, L), полупроводники (диоды, транзисторы, стабилизаторы) и типовые аналоговые узлы (усилители, фильтры, источники питания).
Цифровая электроника использует те же физические законы и те же компоненты, но опирается на идею двух устойчивых состояний (0 и 1). Микроконтроллеры добавляют к цифровой логике программируемость: вместо того чтобы строить сложную логику из десятков микросхем, мы задаём поведение в коде.
В этой статье разберём:
что такое цифровой сигнал и логические уровни
двоичную систему и базовые логические операции
комбинационную и последовательностную логику, тактирование
практику работы с входами/выходами, кнопками, светодиодами
что такое микроконтроллер и какие периферийные блоки в нём естьЦифровой сигнал и логические уровни
Аналог против цифрового
Аналоговый сигнал может принимать
любое значение в диапазоне (например, 0,73 В, 1,02 В, 2,58 В). Цифровой сигнал тоже является напряжением и током, но для него заранее задают две области:
логический 0: напряжение ниже некоторого порога
логическая 1: напряжение выше некоторого порогаМежду ними существует переходная зона, где уровень считается неопределённым. Поэтому цифровая схемотехника постоянно заботится о том, чтобы сигнал уверенно попадал в область 0 или 1.
Справка: Цифровая электроника
Почему «0» и «1» это не ровно 0 В и 5 В
В реальных микросхемах всегда есть допуски и помехи, поэтому уровни задаются диапазонами. Например, типичная логика на питании 5 В может считать «1» всем, что выше некоторого значения (например, около 2 В), а «0» всем, что ниже другого (например, около 0,8 В). Конкретные числа зависят от семейства логики.
Два распространённых семейства:
TTL (исторически важное): Транзисторно-транзисторная логика
CMOS (очень распространено сегодня): КМОППрактический вывод: всегда смотрят даташит и проверяют совместимость уровней, особенно при смешивании 5 В и 3,3 В устройств.
Двоичная система и бит
Бит и байт
Бит — это минимальная единица цифровой информации, принимающая значение 0 или 1.
Байт — обычно 8 бит.
Цифровые устройства хранят, обрабатывают и передают данные именно в виде наборов бит.
Почему двоичная система удобна для электроники
Электронным схемам проще надёжно различать два состояния, чем много уровней. Два устойчивых уровня дают лучшую помехоустойчивость и упрощают построение логики.
Логические элементы и таблицы истинности
Логический элемент — это схема, которая преобразует входные логические уровни в выходной по определённому правилу.
Справка: Логический элемент
!Символы основных логических элементов
Базовые операции
NOT (НЕ): инвертирует вход (0 становится 1, 1 становится 0)
AND (И): 1 на выходе только если на всех входах 1
OR (ИЛИ): 1 на выходе если хотя бы на одном входе 1Таблицы истинности для двух входов A и B:
| A | B | AND | OR |
|---:|---:|---:|---:|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Для NOT:
| A | NOT(A) |
|---:|---:|
| 0 | 1 |
| 1 | 0 |
Почему NAND и NOR считаются важными
Элементы
NAND (НЕ-И) и
NOR (НЕ-ИЛИ) называются функционально полными: из одних только NAND (или одних только NOR) можно построить любую логическую функцию. Это удобно в теории и в реальном проектировании.
Справка: Штрих Шеффера (NAND), Стрелка Пирса (NOR)
Комбинационная и последовательностная логика
Комбинационная логика
Комбинационная схема не имеет памяти: выход зависит только от текущих входов.
Примеры:
логические элементы
мультиплексоры
дешифраторы
сумматорыСправка: Комбинационная логика
Последовательностная логика
Последовательностная схема имеет память: выход зависит от входов и от того,
что было раньше.
Основные строительные блоки:
триггеры (flip-flop)
регистры
счётчикиСправка: Последовательностная логика, Триггер
Тактирование, частота и временные диаграммы
Тактовый сигнал
Многие цифровые системы работают от
тактового сигнала (clock), который задаёт моменты времени, когда состояние регистров обновляется.
Частота такта обозначается и измеряется в герцах (Гц). Период такта обозначается и измеряется в секундах.
Связь между ними:
Где:
— время одного полного цикла такта
— сколько циклов происходит за 1 секунду
— «одна секунда, разделённая на число циклов в секунду»Пример смысла: при период равен , то есть одна микросекунда на такт.
!Временная диаграмма: такт и захват данных триггером
Почему время важно в цифровых схемах
Даже если логические уровни «правильные», схема может ошибаться из-за временных эффектов:
сигнал приходит слишком поздно к моменту фронта такта
фронт слишком «шумный» и вызывает ложные переключения
кнопка дребезжит и даёт серию импульсов вместо одногоЭти проблемы решают сочетанием грамотной схемотехники (R, C, иногда триггеры Шмитта) и программной обработки в микроконтроллере.
Справка: Триггер Шмитта
Входы и выходы: что реально происходит на выводе микросхемы
GPIO
У микроконтроллеров и многих цифровых микросхем есть выводы общего назначения:
GPIO.
GPIO может работать как:
вход (считываем 0 или 1)
выход (выдаём 0 или 1)
альтернативная функция (например, UART, SPI)Справка: GPIO
Вход не должен «висеть в воздухе»
Если вход не подключён ни к 0, ни к 1, он может ловить помехи и случайно переключаться. Поэтому используют
подтягивающие резисторы:
pull-up подтягивает вход к «1»
pull-down подтягивает вход к «0»Это прямое применение резисторов из темы про пассивные компоненты.
Справка: Pull-up resistor
Внутренние подтяжки
Во многих микроконтроллерах можно включить внутренний pull-up или pull-down резистор. Это экономит детали, но нужно помнить:
внутренние резисторы часто имеют большой разброс номинала
иногда их сопротивление довольно велико, и вход становится более чувствительным к помехам на длинных проводахВыходы: push-pull и open-drain
Два частых режима выхода:
push-pull: вывод активно тянется и к 0, и к 1
open-drain/open-collector: вывод умеет активно тянуть только к 0, а «1» формируется подтяжкойOpen-drain важен для шин, где несколько устройств делят одну линию, например I2C.
Справка: Open collector, I%C2%B2C
Ограничение тока и защита выводов
Вывод микроконтроллера не является «идеальным источником». У него есть ограничения по току:
слишком большой ток может перегреть выходной транзистор внутри микроконтроллера
подача напряжения выше питания (или ниже земли) может повредить входПоэтому в реальных схемах часто используют:
резистор последовательно со светодиодом (как в теме про диоды)
защитные диоды или специальные TVS-диоды на внешних разъёмахСправка: TVS-диод
Кнопка, дребезг и RC-цепочка
Что такое дребезг
Механическая кнопка при нажатии редко даёт один идеальный фронт. Контакты несколько миллисекунд «прыгают», и на цифровом входе получается серия 0/1 переключений.
Справка: Дребезг контактов
Аппаратное подавление дребезга: RC
Один из простых методов — RC-цепочка (резистор и конденсатор), которая делает фронты более плавными. Часто используют понятие
постоянной времени:
Где:
— постоянная времени (секунды), грубо задаёт «насколько быстро» меняется напряжение
— сопротивление (Ом)
— ёмкость (Ф)Смысл: чем больше или , тем медленнее будет реагировать напряжение на быстрые изменения, и часть дребезга сгладится.
Важно: RC не «магия», а фильтр из темы про аналоговые фильтры. Его нужно выбирать так, чтобы он не делал кнопку слишком «тормозной».
Программное подавление дребезга
Даже если дребезг не фильтровать аппаратно, его почти всегда подавляют в программе:
считать изменение состояния действительным только если оно стабильно держится заданное время
обрабатывать кнопку по событиям (нажатие, отпускание), а не по мгновенным уровнямЧто такое микроконтроллер
Микроконтроллер — это микросхема, внутри которой находятся:
процессорное ядро (выполняет инструкции)
память программы (обычно flash)
оперативная память (RAM)
периферия (GPIO, таймеры, интерфейсы связи)Справка: Микроконтроллер
!Упрощённая внутренняя структура микроконтроллера
Тактирование микроконтроллера
Микроконтроллеру нужен тактовый источник:
внешний кварц или резонатор
внутренний RC-генераторОт такта зависят скорость выполнения кода и точность временных измерений.
Справка: Кварцевый генератор
Питание, развязка и сброс
Цифровые схемы особенно чувствительны к питанию из-за резких импульсов тока при переключениях логики. Поэтому почти обязательны:
стабилизатор подходящего типа (из темы про источники питания)
развязывающий конденсатор рядом с питанием микроконтроллера (часто 0,1 мкФ керамика)
корректная цепь сброса (Reset), чтобы при включении питание успело стабилизироватьсяСправка: Развязывающий конденсатор
Периферия микроконтроллера: что стоит знать в базовом курсе
Таймеры и ШИМ
Таймер — аппаратный счётчик, который может:
измерять время
генерировать периодические события
формировать ШИМ (PWM)PWM (широтно-импульсная модуляция) часто используется для:
управления яркостью светодиодов
управления скоростью моторов
получения «псевдоаналогового» уровня через RC-фильтрСправка: PWM
Прерывания
Прерывание — механизм, который позволяет микроконтроллеру быстро реагировать на событие:
изменение уровня на входе
переполнение таймера
приём байта по UARTВместо постоянного опроса (polling) микроконтроллер «занимается своим делом» и отвлекается только при событии.
Справка: Прерывание
АЦП и работа с аналоговыми величинами
Хотя микроконтроллер цифровой, он часто измеряет аналоговые сигналы (датчики, напряжение батареи) через
АЦП.
АЦП преобразует напряжение в число. В базовом понимании важно:
у АЦП есть опорное напряжение, относительно которого измеряется вход
есть разрядность, определяющая «шаг» квантованияСправка: Аналого-цифровой преобразователь
Интерфейсы связи
Три интерфейса встречаются особенно часто:
UART: простой асинхронный последовательный интерфейс, часто для отладки
SPI: быстрый интерфейс «ведущий-ведомый», удобен для дисплеев, АЦП, флеш-памяти
I2C: двухпроводная шина, удобна для датчиков и расширителей, обычно требует подтяжек линийСправка: UART, SPI, I%C2%B2C
Минимальный практический пример: кнопка управляет светодиодом
В этом примере сходятся почти все темы курса:
Светодиод подключают через резистор, потому что диод требует ограничения тока (тема про диоды и резисторы).
Кнопку подключают с подтяжкой, чтобы вход не был плавающим (тема про резисторы).
Дребезг подавляют программно и, при необходимости, RC-цепью (тема про RC-фильтры).
Питание микроконтроллера стабилизируют и развязывают конденсаторами (тема про источники питания).Типовые ошибки новичков в таких схемах:
подключить светодиод напрямую к выводу без резистора
оставить вход кнопки без подтяжки
забыть про общий провод (землю) между источником сигнала и микроконтроллером
питать микроконтроллер «как получится» без развязки, а потом ловить случайные сбоиИтоги
Цифровая электроника использует два логических состояния, но они реализованы реальными напряжениями и токами, поэтому важны пороги, помехи и питание.
Логические элементы описываются таблицами истинности; комбинационная логика не имеет памяти, последовательностная использует триггеры и такт.
На практике входы требуют подтяжек, кнопки дребезжат, а выводы имеют ограничения по току.
Микроконтроллер объединяет процессор, память и периферию; базовые полезные блоки: GPIO, таймеры/PWM, прерывания, UART/SPI/I2C, АЦП.Дальше на этих основах можно переходить к проектированию простых цифровых устройств: чтение датчиков, управление нагрузками через транзисторы, обмен данными по интерфейсам и построение устойчивого питания для всей системы.