Чи є двосторонній перемикач рівня 5V-3.3V?


27

Чи є інтерфейс, який інтерфейсує будь-який 3,3 В вхід / вихід до 5 В вихід / вхід? Мені це потрібно в першу чергу для Arduino Due, але якщо є якийсь двонаправлений IC, який працює так, було б чудово.

Деякі люди радили мені використовувати мікросхеми SN74AHC125 та CD4050, але я не розумію, як вони працюють або як з ними взаємодіяти.


2
Який призначений діапазон частот?
alexan_e

1
Наприклад, припустимо, що я хочу підключити пристрій 5В до ардуїно 3,3 В. Я не міг зрозуміти, куди підключити вихід 5В та вхід 3.3В. А як щодо виходу 3,3 В з ардуїно, наприклад, до 5 В пристрою? Що ви маєте на увазі під частотним діапазоном?
3bdalla

1
Я не впевнений, що я зрозумів, я раніше не займався частотами, моя мета - проста електроніка: |
3bdalla

3
sparkfun має плату, її називають "перетворювач рівня"
geometrikal

1
Зазвичай я використовував мікросхеми від інструментів Texas. У серіях TXS і TXB є двонаправлені перекладачі напруги (наприклад, у TXS0102 є два канали)
frarugi87

Відповіді:


44

Дуже простий перекладач двостороннього рівня може бути зроблений за допомогою одного N-MOSFET:

введіть тут опис зображення

Використовуваний MOSFET повинен бути моделлю з низьким порогом Vgs, щоб він міг мати відносно низький Rds-ON (опір ON) на запланованому рівні вхідної напруги (3,3 В у цьому випадку). В одному з таких прикладів
BSS138 він має Vgs-й максимум 1,5 В і вказано, що він має низький опір джерела стоку з напругою Vgs до 2,5 В (можливо, також трохи нижче).

Наведений приклад використовує переклад 3.3v <-> 5v, але він також може працювати з 2.5v <-> 3.3v або 2.5v <-> 5v, навіть між 2.5v <-> 12v. Діапазон обмежений лише характеристиками використовуваного мосфета.

Показана схема базується на примітці програми NXP
AN97055 Двонаправлений перемикач рівня для I2C-шини та інших систем
Нова коротша версія: AN10441 Техніка перемикання рівня в дизайні шини I2C

Коли L1 високий (3v3) або плаваючий R1, відключає поворотний отвір, тому R2 відводить сторону зливу високо (до 5В).

Коли L1 знижується, то мосфет проводиться і стік стає низьким.

Якщо до H1 застосовується низький рівень (0), то ця напруга передається через діод підкладки на сторону джерела (L1)

Зверніть увагу, що розмір опору може впливати на швидкість ( джерело зображення )

введіть тут опис зображення

Альтернативний транзисторний розчин введіть тут опис зображення


Відповідні статті, які можуть вам бути корисними:


11

Оскільки питання видається орієнтованим на ІМС, що забезпечує зміщення рівня в двосторонній основі, розглянемо сімейство частин Texas Instruments TXB010x: TXB0102 має 2 канали, TXB0104 - 4 канали, а TXB0108 - 8 каналів.

Особливістю цього сімейства ІМС є те, що напрямок сигналу автоматично визначається, тому окремий штифт налаштування напрямку не потрібен.

Швидкість комутації до 10 МГц працює надійно. Теоретична максимальна швидкість може бути вищою - таблиці не явні щодо цього з того, що я можу визначити.

У мене TXB0108 працює між 3-вольтовою стартовою панеллю MSP430 та 5-вольтовою Arduino Nano, тому питання щодо використання питання розглядається.

Для того, щоб спробувати це, Adafruit пропонує вбудований модуль, що містить TXB0108 , що дозволяє економити проблеми спайки SMD-деталі. Можуть бути подібні варіанти для 0102 та 0104 від них чи інших.

8-канальний двонаправлений перетворювач рівня логіки - TXB0108

Якщо наміром є зміщення рівня сигналу I2C , який не ідеально підходить для ІС серії TXB, опція, яка спеціально стосується підтягуючого резистора та топології відкритого колектора I2C, є таким модулем , який знову продається Adafruit та інших постачальників.

Перемикач рівня I2C

Цей модуль використовує BSS138 MOSFET s способом, описаним у відповіді alexan_e . Незважаючи на те, що це не один ІС, як запитання, воно, можливо, відповідає наміченій меті. Крім того, просто побудувати цю схему самостійно за допомогою MOSFET.


+1 Приємна знахідка! ... Ваше посилання на TXB0102 насправді є на TXS0102. Я не визначив різницю, але це зазначається у таблиці TXS0102: "Основне використання цільового додатка - це взаємодія з драйверами з відкритим злиттям даних, таких як I2C або 1-провід, де дані є двонаправленим і сигнал керування не доступний. TXS0102 також може використовуватися в додатках, коли драйвер push-pull підключений до вводу-виводу даних, але TXB0102 може бути кращим варіантом для таких додатків push-pull. " Ось фактичне посилання на TXB0102
Tut

@Tut На жаль, підкладка, спасибі Мої власні потреби відповідають TXB0108, тому інші для мене більше "приємно знати". :-)
Аніндо Гош

10

Ще одна річ, яку ви повинні врахувати, - чи вам взагалі потрібна зміна рівня. Багато мікросхем мають толерантні вхідні штифти на 5 В навіть при роботі з напругою, нижчою, наприклад, 3,3. Процесор atmega також інтерпретує що-небудь вище 0,6 * Vcc або 3V для ардуїно як логічний максимум, тому сигнал 3,3 В може безпосередньо керувати шпилькою ардуїно без зрушення рівня.

Якщо припустимо, що ви використовуєте 5V ардуїно і вам потрібно поговорити з частиною 3,3 В, якщо деталь має 5В толерантні входи (багато хто це робить сьогодні), просто підключіть їх, і це буде працювати. Якщо ваша двонаправлена ​​лінія - це конструкція з відкритим колектором, наприклад, i2c, де пристрої лише тягнуть лінію низько, тоді просто приєднайте підтягуючі резистори до 3,3 В замість 5 В, і все буде просто працювати.

Інакше все, що вам потрібно зробити, це переконатися, що лінія не виходить вище 3,3 В, ви можете зробити це за допомогою резистора і стабілітра, поставити резистор на лінію arduino, а потім ценером затиснути напругу до 3,3 В. (джерело: repetae.net )хомут резистора

Ви можете спокуситися жити небезпечно і просто використовувати резистор 10k і більше нічого. Причина цього (іноді!) Працює в тому, що всередині приймаючого мікросхеми є затискаючий діод, який перемикає зайву напругу до vcc або 3.3V. Цей діод вигорить, якщо ви спробуєте провести всю лінійку 3,3 В до 5 В через нього (крім будь-якої шкоди, спричиненої відтягуванням цієї лінії до 5 В), однак з резистором буде не сильно струм, і якщо припустити, що ваша лінія 3,3 В на нього нетривіальне навантаження, це не змінить суттєво рівень вашої лінії електропередач, але є багато застережень. Так що, як правило, не робіть цього, якщо у вас немає локальної, ізольованої шини 3,3 В, і ви справді не можете зекономити зайві два центи. Я згадую його лише тому, що ви побачите це в схемах щодо забруднення дешевих пробивних дощок, які ви отримуєте на ebay, і, можливо, захопиться скопіювати його тільки не дозволяйте йому проникнути повз дошку у виробничий дизайн. :)

Редагування щойно помітило, що ви використовуєте новіший ардуіно 3.3V, тому просто інвертуйте те, що я говорив вище, трюк резистора ще буде працювати, хоча, мабуть, деякі лінії вводу / виводу на належному рівні можуть бути толерантними 5В, мабуть, є якась незгода на форумах. Teensy 3.1 - це також приємна маленька дошка ARM, яка має всі 5В-толерантні штифти і становить менше половини вартості належного та краще розробленого IMHO http://www.pjrc.com/store/teensy31.html


3

У відділі дешевого [ер?] Рішення FET (із прийнятої відповіді на основі додатка NXP) можна замінити діодом BJT та Шотткі, як у Silicon Labs AN883 . Їх схема трохи ускладнена з іншими речами, тому я витяг тут істотний біт і переорієнтував його так, що це виглядає як у прийнятій відповіді для легкого порівняння двох схем:

введіть тут опис зображення

BJT робить переклад лише в низькому - високому напрямку ... точно так, як обговорювалося в рівні одиночного транзистора вгору . Шоткі замінює діод тіла FET для високо-> низького перекладу.

Нижче наведено їх збільшення в масштабі вимірювання для 3,3 <-> 1,8 В перекладача; вони також пропонують цю схему для 5 <-> 1,8 В перекладу і т. д. При виконанні 3,3 <-> 1,8 В перекладу MMBT3904 мав лише 150mV (насиченість) падіння. Діод BAS40 мав падіння 350мВ у зворотному напрямку. Ці правопорушники впливають (очевидно) на логічно низький рівень виходу на низькій та відповідно високій стороні перекладача.

введіть тут опис зображення

Вони мали гарні пристрої CMOS з обох сторін, тому вхідний опір не було великою проблемою. Не було видимої деградації / зміщення логічно високих запасів у їхньому сліді 1V / div, тому я не заважав включати це сюди. Вхідний опір їхніх пристроїв становив щонайменше 1 МОм від того, що я можу сказати з моделювання. Логічно високі запаси починають знижуватися нижче вхідного опору 100 Кб або близько того.

Крім того, вони рекомендують цей перекладач на основі BJT лише до 300 КГц або близько того.

Я не впевнений, яке з цих рішень на практиці дешевше, FET або Schottky + BJT ... але для цього, безумовно, потрібно більше деталей ... якщо ви не використовуєте один із тих пакетів діодних транзисторів, які існують, наприклад, PZMT1101 . Але вам також потрібні 3 резистора.


Яке очікуване споживання / споживання енергії цього методу порівняно з методом, заснованим на FET?
KyranF

@KyranF: Я не порівнював їх, але якщо ти переживаєш, що це не буде недоброзичливим через підтягування. Версії CMOS з низькою потужністю виглядають як m.eet.com/media/1103155/Fig2.gif Це з easures.com/document.asp?doc_id=1231111, яка є хорошою статтею, яка порівнює різні підходи.
Фіз

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

@KyranF: Я дивився на це в симуляції: транзистор і діод розсіюють uW потужності, тоді як резистори розсіюються mW. Насправді BJT розсіюється близько 100uW, діод 1uW. FET або BJT тут не мають значення ... резистори, які мають шлях до землі для статичного розсіювання, - це важливе значення. Це з вхідними опорами 1Meg.
Фіз

@KyranF: Я намагався використовувати модель BSS138LT1 ON, але це дає негативну диспасацію середньої потужності в LTspice (-63uW) ... тому я думаю, що їх модель може бути проблематичною. Сміття в ... сміття. Також він почав коливатися (набагато вищою частотою, ніж сигнал), коли рухався з високої сторони. Це підкладка, а не проста модель MOS, тому важко зрозуміти, що відбувається. [продовження]
Fizz

2

Ну, їх багато. Вам потрібно вказати, яка ваша максимальна частота, скільки бітів вам потрібно і т. Д. Коротше, ви можете використовувати будь-який перекладач рівня напруги. Компанія Texas Instruments має чіткий інструмент вибору з цією ж метою: http://www.ti.com/logic/docs/translationresults.tsp?sectionId=458&voltageIn=5.0&searchDirection=2&voltageOut=3.3#voltintf


2

Крім того, якщо ви шукаєте чудову електричну ізоляцію, а також функцію зміщення рівня в двосторонньому напрямку, я б рекомендував ISO1541 . Це досить дешево і забезпечує хороший захист через ізоляцію.



1

Найпростіше рішення - запустити всі схеми на 3,3 В. HC фішки будуть радісно працювати на цьому рівні.

Коли це неможливо, ви можете зробити речі набагато простішими, обмежившись одним напрямком. Чіп HCT на 5 В буде чудово приймати рівні 3,3 В, а простий двоопірний дільник може зменшити 5 В до 3,3 В. Деякі UC мають толерантність на 5В на своїх штифтах, тому дільник вам не потрібен. І якщо ви покладете на штирі 5В підтяжки та переключитесь між землею та відкритою (= вхід), у вас є прохідний вихід 0-5В.

Для з'єднання автобусів відкритого колектора (I2C, 1-провід даллас) трюк BS138 - це шлях. Є невеликі мікросхеми для I2C, які містять два FET в одному корпусі. (PCA9306 тощо)

Але якщо ви дійсно хочете двоступеневого перекладу: такі чіпи існують, перевірте, наприклад, TXB0108.


-4

Просте рішення - використання SN74LVC244AN. Може живитись 3V3 і має 5В толерантності на входах.


5
Це не двостороння.
Метт Янг

Ні, крім 74LVC4245 є.
Брегалад
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.