3.8. Узгодження рівнів

Вивід GPIO на камері видає близько 3,3 В у стані «high». Пристрій на іншій стороні може працювати при 5 В (старіші мікроконтролери, багато плат датчиків) або 1,8 В (новіші датчики, деякі міжчипові шини). Пряме підключення двох сторін іноді є безпечним, а іноді руйнівним; узгодження рівнів — це схема, яка надійно усуває цю розбіжність.

3.8.1. Чому пряме підключення між різними напругами може пошкодити вивід

Кожен вивід введення-виведення мікросхеми має пару вбудованих захисних діодів: один від виводу до землі, інший від виводу до шини живлення мікросхеми. Вони призначені для поглинання електростатичного розряду (ESD) — короткочасного імпульсу високої напруги від статичної електрики, що може виникнути при роботі з платою. Людина, яка пройшлась по килиму, може нести кілька кіловольт статики; торкання неправильного виводу передає цей заряд на мікросхему за наносекунди. Верхній захисний діод відкривається у прямому напрямку та безпечно шунтує імпульс на шину живлення до того, як він досягне транзисторів всередині мікросхеми.

Коли сигнал 5 В подається постійно на вивід 3,3 В, що не підтримує 5 В, верхній захисний діод провідний увесь час. Діоди розраховані на короткі імпульси ESD, а не на постійний струм; шина живлення починає підніматися вище 3,3 В, діод нагрівається, і зрештою виходить з ладу або вивід, або вбудований регулятор напруги.

Виводи, сумісні з 5 В, мають інший вхідний каскад — верхній діод підключений до більш високої шини або взагалі відсутній — тому подача 5 В не шкодить. Наявність сумісності виводів із 5 В залежить від плати; перевіряйте короткий довідник OpenMV Cam.

Зворотний напрямок теж має свою проблему. Вивід GPIO 3,3 В у стані «high» видає ~3,3 В на лінію. Приймач 5 В, якому потрібно 0.7 × Vcc для розпізнавання high, має поріг на рівні 3,5 В; 3,3 В може читатися як «low» або як невизначений стан. Навіть без пошкоджень сигнал не буде надійно працювати.

Узгоджувач рівнів вирішує обидва напрямки.

3.8.2. N-MOSFET як перемикач

Схеми нижче використовують один N-канальний MOSFET. Він має три виводи — затвор, стік і витік — і поводиться як електрично керований перемикач.

Керуючим сигналом є напруга між затвором і витоком, позначена Vgs (напруга затвор-витік):

Vgs = (gate voltage) - (source voltage)

MOSFET реагує на цю різницю, а не на абсолютну напругу на будь-якому окремому виводі. Його поведінка визначається значенням Vgs:

  • Коли Vgs перевищує порогову напругу MOSFET (зазвичай близько 1 В для малосигнального логічного компонента), транзистор відкривається і струм вільно протікає від стоку до витоку.

  • Коли Vgs дорівнює або менше 0, транзистор закривається і майже жодний струм не протікає від стоку до витоку.

Шлях стік-витік є комутованим шляхом струму; Vgs відкриває або закриває цей перемикач.

N-MOSFET також має паразитний діод між стоком і витоком, який провідний, коли стік опускається нижче витоку більш ніж на ~0,6 В. Цей діод є побічним ефектом виробництва; двоспрямована схема узгодження нижче використовує його навмисно.

3.8.2.1. Правила підключення

N-MOSFET — це не симетричний триполюсний пристрій. Паразитний діод направлений від витоку (анод) до стоку (катод), а Vgs керує каналом. З цього випливають два правила, яких слід дотримуватися в кожній схемі перемикача на N-MOSFET:

  • Витік підключається до нижчої напруги; стік — до вищої. Коли стік підключений до вищої шини, паразитний діод зміщений у зворотному напрямку та не впливає на роботу. При зворотному підключенні паразитний діод завжди зміщений у прямому напрямку: струм протікає з тепер вищого витоку через паразитний діод до тепер нижчого стоку незалежно від стану затвора. MOSFET перестає бути перемикачем — він постійно протікає, сигнал неможливо вимкнути, і пристрій часто перегрівається та виходить з ладу.

  • Затвор підключається до шини живлення витоку. Тримання затвора на тій самій шині, що й витік у спокої, забезпечує Vgs = 0 в режимі очікування, що значно нижче порогу; MOSFET залишається надійно закритим, доки щось або не піднімає затвор вище витоку (однонаправлена схема нижче), або не опускає витік нижче затвора (двоспрямована схема). Підключення затвора до іншої точки робить стан закрито невизначеним — шум, витоки або паразитна ємність можуть підняти Vgs вище порогу та випадково відкрити MOSFET.

Порушення будь-якого з цих правил перетворює узгоджувач рівнів на ненадійний шлях із витоками. Обидві схеми узгодження нижче дотримуються цих правил: витік на нижній стороні, стік на вищій, затвор прив’язаний або керований від шини витоку.

3.8.3. Однонаправлений 3,3 В → 5 В

Найпростіший узгоджувач рівнів передає однонаправлений сигнал з GPIO камери на вхід 5 В. Для цього достатньо одного N-MOSFET і двох резисторів.

An N-channel MOSFET wired as an inverter. The 3.3 V GPIO drives the gate; the source goes to ground; the drain pulls up to 5 V through 10 kΩ; the drain is also tapped as the 5 V output.

N-MOSFET узгоджує (та інвертує) сигнал 3,3 В у вихід 5 В.

Коли GPIO видає «high» (3,3 В на затворі), Vgs перевищує поріг і MOSFET відкривається; стік опускається до ~0 В. Коли GPIO видає «low» (0 В на затворі), MOSFET закритий і підтягуючий резистор 10 кОм піднімає стік до 5 В.

Вихід є інверсією входу. Програмно сигнал можна інвертувати назад (записати 0 для «вихід 5 В high»), або каскадувати два каскади, щоб отримати неінвертований сигнал ціною подвоєної кількості компонентів.

3.8.4. Двоспрямований на одному N-MOSFET

Для лінії, яку потрібно керувати з будь-якої сторони — спільна шина, де будь-який кінець може опускати лінію до нуля — стандартна схема — один N-MOSFET на лінію з підтягуючими резисторами до живлення кожної сторони.

A bidirectional N-MOSFET level shifter. The MOSFET bridges a 3.3 V signal line on the left and a 5 V signal line on the right; the gate connects to the 3.3 V supply, the source connects to the 3.3 V signal, the drain to the 5 V signal; each signal line has its own pull-up resistor to its supply.

Один N-MOSFET з’єднує лінії 3,3 В і 5 В; кожна сторона має власний підтягуючий резистор.

Затвор прив’язаний до живлення 3,3 В, тому поведінка MOSFET залежить від того, яка сторона керує:

  • Обидві сторони в режимі очікування. Витік знаходиться на 3,3 В через лівий підтягуючий резистор; затвор на 3,3 В; Vgs = 0; MOSFET закритий. Сторона 5 В піднімається до 5 В через правий підтягуючий резистор. Обидві сторони читають «high».

  • Сторона 3,3 В опускає до нуля. Витік опускається до 0 В; Vgs перевищує поріг; MOSFET відкривається і провідний від витоку до стоку. Сторона 5 В опускається до нуля через транзистор.

  • Сторона 5 В опускає до нуля. Стік опускається до 0 В; паразитний діод MOSFET (стік до витоку) зміщується у прямому напрямку і починає провідним; витік (сторона 3,3 В) опускається приблизно до 0,6 В. Потім Vgs перевищує поріг і MOSFET повністю відкривається, опускаючи обидві сторони до нуля.

BSS138 — стандартний N-MOSFET для цієї схеми; малосигнальні логічні N-MOSFET з аналогічними порогами затвора поводяться однаково.