Иногда надо сопрягать логические уровни схем с 5ти и 3.3в питанием. В сети можно найти например такие схемы на одном транзисторе двунаправленной схемы сдвига уровней:
Эта схема хоть и является корректной, но не позволяет понять принципа работы такого типа преобразователей уровня. Схема берет свое начало из патента Philips, схемное решение которого так же описанов [1]
А вот и практическая реализация:
Для понимая принципа работы этой схемы важно учесть что у MOSFET есть защитные диоды. В исходном состоянии потенциалы на выходах - слева 3.3в, справа 5в. При подаче на левый вход 0го уровня транзистор открывается и на правом выходе так же лог.0. При подаче лог.0 на правый вход транзистор закрыт, но левый вход оказывается закорочен на землю через защитный диод, и соответственно, его потенциал будет равен падению напряжения на диоде, т.е. равен лог.0
Требования к транзисторам простые - он должен содержать защитный диод и у него должно пороговое напряжение быть меньше чем 1.7в(=5в-3.3в). Что будет если взять транзистор с другим пороговым? Схема не будет работать до тех пор пока не будет увеличено смещение на затворе транзистора [2].
Аналогичную двунаправленную схему можно сделать и на биполярных транзисторах [3,4]
На aliexpress можно купить уже собранные платки с 4х канальной схемой сдвига уровней на BSS138. Вот такие:
Если вам потребуется схема посерьезнее то имеет смысл посмотреть на платы использующие спец.IC трансляции уровней TXS0108E
Литература
1. Philips AN97055 "Bi-directional level shifter for I²C-bus and other systems."
2. Is my MOSFET-based bidirectional level shifter insane?
3. Two transistor circuit replaces IC, Jim Hagerman, Hagerman Technology LLC
4. Two Transistors Form Bidirectional Level Translator, Jim Hagerman, Nokia Mobile Phones
Схемы сдвига уровней (level shifter)
Re: Схемы сдвига уровней (level shifter)
Попалась на днях задачка подключить 74HC595 к ESP32. При чем ESP32 питается от 3.3в, а 74HC595 - от 5в.
Если посмотреть на приатаченную картинку то не хватает уровня логической 1 от 3-х вольтовой логики для раскачки 5ти вольтовой 74HC. Есть два решения - использовать 74HCT вместо 74HC, либо буфер на 74HCT для раскачки 74HC. Либо немного снизить напряжение питания 74HC до 4.3в с помощью диода - при этом уровней от 3-х вольтовой логики становится достаточно для раскачки, а выходной уровень лог.1 остается все еще достаточно высокий для 5ти вольтовой логики
Если посмотреть на приатаченную картинку то не хватает уровня логической 1 от 3-х вольтовой логики для раскачки 5ти вольтовой 74HC. Есть два решения - использовать 74HCT вместо 74HC, либо буфер на 74HCT для раскачки 74HC. Либо немного снизить напряжение питания 74HC до 4.3в с помощью диода - при этом уровней от 3-х вольтовой логики становится достаточно для раскачки, а выходной уровень лог.1 остается все еще достаточно высокий для 5ти вольтовой логики