Перейти к содержанию

Логические уровни: пороги, запас и совместимость

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

Обновлено Редакция GAW

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

Четыре параметра

ПараметрЧто гарантируетУсловие правильной связи
VOH minвыход в единице даёт не меньше этого напряженияVOH выхода больше VIH входа
VOL maxвыход в нуле даёт не больше этого напряженияVOL выхода меньше VIL входа
VIH minвход читает единицу начиная с этого напряжения
VIL maxвход читает ноль вплоть до этого напряжения

Microchip в примечаниях к таблице 30-1 даташита ATmega328P формулирует точно: «максимум» VIL — наибольшее напряжение, которое гарантированно читается как ноль, «минимум» VIH — наименьшее, которое гарантированно читается как единица. Уровни выхода гарантируются при определённом токе: чем больше ток нагрузки, тем дальше уровни от шин питания.

Запас помехоустойчивости

Разница между гарантированным уровнем выхода и порогом входа — запас помехоустойчивости (noise margin): какую помеху выдержит связь, не исказив бит.

NMH=VOH−VIH,NML=VIL−VOLNM_H = V_{OH} - V_{IH}, \qquad NM_L = V_{IL} - V_{OL}
СемействоVOH minVOL maxVIH minVIL maxNMHNML
5 В TTL2,4 В0,5 В2,0 В0,8 В0,4 В0,3 В
3,3 В LVTTL2,4 В0,4 В2,0 В0,8 В0,4 В0,4 В
5 В CMOS4,7 В0,5 В3,5 В1,5 В1,2 В1,0 В
3,3 В LVCMOS3,0 В0,5 В2,3 В1,0 В0,7 В0,5 В

Пороги — из таблицы 4-1 документа Microchip DS41285A, запасы посчитаны по ним. У ТТЛ пороги фиксированные, у КМОП привязаны к питанию: VIH = 0,7 · VCC, VIL = 0,3 · VCC, VOH = VCC − 0,3 В. Это ориентиры, для расчёта берут числа из даташита конкретной микросхемы.

Уровни микроконтроллеров

ATmega328P, 5 ВATmega328P, 3 ВSTM32F103, 3,3 В
VIL max0,3 · VCC = 1,5 В0,3 · VCC = 0,9 В0,35 · VDD
VIH min0,6 · VCC = 3,0 В0,6 · VCC = 1,8 В0,65 · VDD
VOL max0,9 В при 20 мА0,6 В при 10 мА0,4 В при 8 мА
VOH min4,2 В при 20 мА2,3 В при 10 мАVDD − 0,4 В при 8 мА

Значения ATmega328P — из таблицы 30-1 DS40002061B (при 85 °C), STM32F103 — из таблиц 36 и 37 DS5319. ST в AN4899 отмечает, что порог единицы входа КМОП — около двух третей питания, а ТТЛ — 2,0 В. Поэтому STM32 с питанием 3,3 В, выдающий не меньше 2,9 В при 8 мА, уверенно управляет входом ТТЛ, а для входа ATmega328P на 5 В с порогом 3,0 В гарантированного запаса нет. Режимы выводов, токи и выводы, выдерживающие 5 В, разобраны в статье о GPIO STM32.

Между порогами

Напряжение между VIL и VIH вход читает непредсказуемо. На медленном фронте обычный вход может переключиться несколько раз — поэтому входы микроконтроллеров снабжают триггером Шмитта с гистерезисом: у STM32F103 это 200 мВ. В той же зоне оказывается плавающий вход без подтяжки: он ловит наводки, его триггер переключается случайно и тратит ток. AN4899 советует переводить неиспользуемые выводы STM32 в аналоговый режим или задавать им уровень.

Уровни интерфейсов

ИнтерфейсПриёмник различаетПримечание
I²Cноль до 0,3 VDD, единица от 0,7 VDDпороги привязаны к питанию шины
RS-232±3 Вбиполярные уровни ±5…±15 В, логика инверсная
RS-485разность ±200 мВдифференциальная пара
CANразность ниже 0,5 В — рецессив, выше 0,9 В — доминантдифференциальная пара

Пороги I²C — по NXP UM10204 (подробнее — в статье об интерфейсе I²C), RS-232 и RS-485 — по стандартам TIA. Уровни RS-232 несовместимы с выводами микроконтроллера напрямую — нужен преобразователь вроде MAX3232.

Согласование 3,3 и 5 В

Прямое соединение возможно, только если выполняются оба условия из таблицы параметров и вход выдерживает напряжение выхода. В остальных случаях используют делитель, защитные диоды с резистором, транслятор на MOSFET или открытый сток с подтяжкой к нужному питанию — расчёт каждой схемы на странице «Согласование уровней 3,3 и 5 В». Логические элементы и законы булевой алгебры — в статье «Цифровая логика».

Частые вопросы

Что такое VIH и VIL?

Пороги входа. VIH — наименьшее напряжение, которое вход гарантированно читает как единицу, VIL — наибольшее, которое он гарантированно читает как ноль. У ATmega328P при питании 2,4–5,5 В VIH = 0,6 · VCC, а VIL = 0,3 · VCC: при 5 В это 3,0 и 1,5 В. Между порогами состояние не гарантировано.

Чем уровни ТТЛ отличаются от КМОП?

У ТТЛ пороги входа фиксированные: единица от 2,0 В, ноль до 0,8 В — независимо от питания. У КМОП пороги привязаны к питанию: единица от 0,7 · VCC, ноль до 0,3 · VCC, то есть 3,5 и 1,5 В при 5 В. Поэтому выход 3,3 В уверенно управляет входом ТТЛ на 5 В, но не входом КМОП на 5 В.

Можно ли подключить выход 3,3 В ко входу 5 В?

Только если гарантированный высокий уровень выхода больше порога единицы входа, а низкий — меньше порога нуля. Выход 3,3 В LVCMOS даёт единицу от 3,0 В: входу ТТЛ (порог 2,0 В) этого хватает с запасом, входу КМОП на 5 В (порог 3,5 В) — нет, у ATmega328P на 5 В (порог 3,0 В) запас нулевой. Способы согласования — на странице «Согласование уровней».

Что будет, если напряжение на входе между порогами?

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

Источники

  1. Microchip. 3V Tips 'n Tricks (DS41285A), 2006 — табл. 4-1 — пороги VOH, VOL, VIH, VIL для 5 В TTL, 3,3 В LVTTL, 5 В CMOS и 3,3 В LVCMOS; TIP #5 — условие прямого соединения
  2. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — табл. 30-1 — VIL, VIH, VOL, VOH и примечания 1–2 о смысле минимумов и максимумов
  3. STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319) — табл. 36 — пороги и гистерезис входов; табл. 37 — выходные уровни при 8 и 20 мА
  4. STMicroelectronics. AN4899: STM32 microcontroller GPIO hardware settings and low-power consumption — 5.1.4 — пороги КМОП и ТТЛ; 6.1 и 7.1 — неиспользуемые входы
  5. NXP Semiconductors. UM10204: I2C-bus specification and user manual, Rev. 7.0, 2021 — табл. 10 — пороги 0,3 VDD и 0,7 VDD
  6. TIA-232-F; TIA/EIA-485-A — пороги приёмников RS-232 (±3 В) и RS-485 (±200 мВ)

Нашли ошибку?