Логические уровни: пороги, запас и совместимость
Цифровая схема различает ноль и единицу не по точному напряжению, а по порогам. Выход гарантирует, что его ноль не выше одного значения, а единица не ниже другого; вход гарантирует, что распознает уровни за своими порогами. Разбираем эти четыре параметра, запас помехоустойчивости и пороги популярных семейств, микроконтроллеров и интерфейсов.
Обновлено Редакция GAW
Цифровой вход не измеряет напряжение, а сравнивает его с порогами. Чтобы два устройства понимали друг друга, выход одного должен выдавать уровни за пределами порогов входа другого — с запасом на помехи и падение напряжения на проводах. Все нужные числа есть в даташите в таблице характеристик по постоянному току.
Четыре параметра
| Параметр | Что гарантирует | Условие правильной связи |
|---|---|---|
| VOH min | выход в единице даёт не меньше этого напряжения | VOH выхода больше VIH входа |
| VOL max | выход в нуле даёт не больше этого напряжения | VOL выхода меньше VIL входа |
| VIH min | вход читает единицу начиная с этого напряжения | |
| VIL max | вход читает ноль вплоть до этого напряжения |
Microchip в примечаниях к таблице 30-1 даташита ATmega328P формулирует точно: «максимум» VIL — наибольшее напряжение, которое гарантированно читается как ноль, «минимум» VIH — наименьшее, которое гарантированно читается как единица. Уровни выхода гарантируются при определённом токе: чем больше ток нагрузки, тем дальше уровни от шин питания.
Запас помехоустойчивости
Разница между гарантированным уровнем выхода и порогом входа — запас помехоустойчивости (noise margin): какую помеху выдержит связь, не исказив бит.
| Семейство | VOH min | VOL max | VIH min | VIL max | NMH | NML |
|---|---|---|---|---|---|---|
| 5 В TTL | 2,4 В | 0,5 В | 2,0 В | 0,8 В | 0,4 В | 0,3 В |
| 3,3 В LVTTL | 2,4 В | 0,4 В | 2,0 В | 0,8 В | 0,4 В | 0,4 В |
| 5 В CMOS | 4,7 В | 0,5 В | 3,5 В | 1,5 В | 1,2 В | 1,0 В |
| 3,3 В LVCMOS | 3,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 max | 0,3 · VCC = 1,5 В | 0,3 · VCC = 0,9 В | 0,35 · VDD |
| VIH min | 0,6 · VCC = 3,0 В | 0,6 · VCC = 1,8 В | 0,65 · VDD |
| VOL max | 0,9 В при 20 мА | 0,6 В при 10 мА | 0,4 В при 8 мА |
| VOH min | 4,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 В) запас нулевой. Способы согласования — на странице «Согласование уровней».
Что будет, если напряжение на входе между порогами?
Даташит не гарантирует, как вход его прочитает: он может читать то ноль, то единицу, а на медленном фронте выход переключится несколько раз. Входы с триггером Шмитта переключаются чище благодаря гистерезису. Плавающий вход без подтяжки тоже попадает в эту зону: он ловит наводки и тратит ток, поэтому неиспользуемые выводы подтягивают или переводят в аналоговый режим.
Источники
- 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 — условие прямого соединения
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — табл. 30-1 — VIL, VIH, VOL, VOH и примечания 1–2 о смысле минимумов и максимумов
- STMicroelectronics. STM32F103x8, STM32F103xB datasheet (DS5319) — табл. 36 — пороги и гистерезис входов; табл. 37 — выходные уровни при 8 и 20 мА
- STMicroelectronics. AN4899: STM32 microcontroller GPIO hardware settings and low-power consumption — 5.1.4 — пороги КМОП и ТТЛ; 6.1 и 7.1 — неиспользуемые входы
- NXP Semiconductors. UM10204: I2C-bus specification and user manual, Rev. 7.0, 2021 — табл. 10 — пороги 0,3 VDD и 0,7 VDD
- TIA-232-F; TIA/EIA-485-A — пороги приёмников RS-232 (±3 В) и RS-485 (±200 мВ)
Нашли ошибку?
Смотрите также
- Согласование уровнейПрямое соединение, делитель, диоды, MOSFET-транслятор, I²C на BSS138
- Цифровая логикаВентили, таблицы истинности, СДНФ, карты Карно, мультиплексор, защёлка, триггер, регистр
- GPIO STM32Режимы выводов, регистры F1 и F4, BSRR, AF, скорость, токи, 5 В, код
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- ГистерезисДва порога переключения против дребезга, триггер Шмитта