Зачем согласовывать логические уровни Микросхем
В цифровой электронике часто приходится соединять между собой микросхемы, работающие от разных напряжений питания и имеющих различные Логические Уровни.
Казалось бы, что тут сложного — «логический ноль» это ноль, а «логическая единица» это единица. Но на практике всё не так просто. Несогласованность уровней может привести не только к сбоям в работе, но и к выходу из строя дорогостоящих модулей.
📌Приглашаю всех на одноимённый Telegram канал и чат:
☑ Telegram Канал Азбука РадиоСхем
Что такое логические уровни?
Любая цифровая микросхема понимает только два состояния:
- 0 (логический ноль) – низкий уровень напряжения.
- 1 (логическая единица) – высокий уровень напряжения.
Но вот значения этих уровней зависят от технологии, в которой выполнен чип, и от его питания.
Например:
- CMOS на 3.3 В:
- 0 = 0…0.8 В
- 1 = от 2.0 В и выше
- TTL на 5 В:
- 0 = 0…0.8 В
- 1 = от 2.0 В и выше
Отсюда сразу видно: если подключить выход 3.3 В логики к входу 5 В микросхемы — скорее всего всё будет работать(но опять же , не всегда).
А вот наоборот — подача 5 В на вход, рассчитанный на 3.3 В, может его просто сжечь.

Параметры уровней напряжения для цифровых схем
Для цифровых входов:
•Uвх.0.мин. (VIL.min) – минимальное напряжение, воспринимаемое как «0»;
•Uвх.0.макс.(VIL.max) – максимальное напряжение, воспринимаемое как «0»;
•Uвх.1.мин.(VIH.min) – минимальное напряжение, воспринимаемое как «1»;
•Uвх.1.макс.(VIH.max) – максимальное напряжение, воспринимаемое как «1»;
•Uвх.п (VIT) – напряжение переключения (threshold voltage), значения выше которого воспринимаются как «1», а ниже – как «0».
Для цифровых выходов:
•Uвых.0 (VOL.typ) – типовое напряжение, которое устанавливается при выводе «0»;
•Uвых.0.мин.(VOL.min) – минимальное напряжение, которое может быть установлено при выводе «0»;
•Uвых.0.макс.(VOL.max) – максимальное напряжение, которое может быть установлено при выводе «0»;
•Uвых.1(VOH.typ) – типовое напряжение, которое устанавливается при выводе «1»;
•Uвых.1.мин.(VOH.min) – минимальное напряжение, которое может быть установлено при выводе «1»;
•Uвых.1.макс. (VOH.max) – максимальное напряжение, которое может быть установлено при выводе «1».
Зачем нужно согласование уровней?
- Защита микросхем – 3.3-вольтовые входы не выдержат прямой подачи 5 В.
- Корректная работа логики – микросхема может не «увидеть» единицу, если она недостаточно высока.
- Совместимость модулей – большинство современных датчиков, дисплеев и модулей Arduino работают на 3.3 В, а сами Arduino (UNO, Nano) – на 5 В.
Без согласования есть риск получить «мертвый» дисплей или датчик, а иногда и целую плату в утиль.
Подключение Дисплея GMT130-V1.0 (IPS 240×240, контроллер ST7789) к Arduino Nano
Основные способы согласования уровней
1. Делитель напряжения на резисторах
Самый простой вариант для сигналов в одну сторону (5 В → 3.3 В).
Формула простая: Vout=Vin⋅R2R1+R2V_{\text{out}} = V_{\text{in}} \cdot \frac{R2}{R1+R2}Vout=Vin⋅R1+R2R2
Например, при R1 = 2 кОм и R2 = 3.3 кОм из 5 В получаем примерно 3.3 В.
⚠️ Минус
- — не всегда это работает
- – плохо подходит для высоких частот (SPI, I²C).

2. Специальные микросхемы-переводчики уровней
Существуют готовые чипы (например, TXB0108, 74LVC245), которые умеют переводить уровни в обе стороны и на высоких скоростях.
Это надёжный вариант для «серьёзных» проектов.
Преобразователь логических уровней, двунаправленный модуль, 4 канала
3. Транзисторные согласователи
Можно собрать схему на MOSFET или даже на биполярных транзисторах (например, на советских КТ315 или современных BC547).
Такой преобразователь работает быстро и позволяет согласовывать линии в обе стороны, включая шину I²C.
Ниже представлен пример схемы на биполярном транзисторе обратной проводимости. Транзисторы можно использовать различные.
Схема — это дублируется в зависимости от того сколько вам ножек одной микросхемы нужно согласовать с другой

Для этих целей также кроме биполярных микросхем очень хорошо а можно сказать даже идеально подходят и mosfet.
Вот очередной пример такой схемы

Пример из практики
В одном из моих проектов я подключал дисплей на контроллере ST7789, работающий от 3.3 В, к Arduino Nano на 5 В. Сначала я сделал соединение напрямую – результат: один из дисплеев вышел из строя.
После этого я собрал плату согласования уровней на старых советских транзисторах КТ315. Несмотря на возраст этих деталей, схема заработала отлично, и теперь дисплей работает стабильно.

Это хороший пример того, что согласование уровней – не формальность, а необходимость.
Выводы
- Никогда не соединяйте напрямую микросхемы, работающие на разных напряжениях.
- Для односторонних медленных сигналов можно использовать резистивный делитель.
- Для двусторонних и быстрых шин лучше ставить транзисторные согласователи или специализированные микросхемы.
- Даже простая самодельная схема на старых транзисторах может спасти ваш модуль от поломки.
🔧 Согласование логических уровней – это простая мера предосторожности, которая экономит деньги и нервы