Як обчислити необхідне значення для підтягуючого резистора?


98

Існує багато навчальних посібників, які використовують резистор, що піднімається або знижується, спільно з перемикачем, щоб уникнути плаваючої землі, наприклад

http://www.arduino.cc/en/Tutorial/button

У багатьох з цих проектів використовується 10К резистор, лише зауваживши, що це хороша цінність.

З огляду на конкретну схему, як я можу визначити відповідне значення для резистора, що випадає? Чи можна його обчислити, чи це найкраще визначати експериментально?


Я знайшов цей підручник від sparkfun хорошим вступом до підтягуючих і знижуючих резисторів sparkfun Pull-up Resistors і відповіді, надані на ваш найвидатніший розміщений питання, чудові.
Річард Чемберс

Відповіді:


82

Швидкий відповідь: досвід та експерименти - це те, як ви з'ясуєте правильне значення підтягування / витягування.

Довга відповідь: резистор підтягування / опускання - це R в ланцюзі синхронізації RC. Швидкість переходу вашого сигналу буде залежати від R (ваш резистор) і C (ємність цього сигналу). Часто С важко точно знати, оскільки це залежить від багатьох факторів, включаючи те, як цей слід прокладений на друкованій платі. Оскільки ви не знаєте C, ви не можете зрозуміти, яким повинен бути R. Ось тут і досвід, і експерименти.

Ось декілька правил, коли відгадуєте про хороше значення резистора підтягування / опускання:

  • У більшості речей 3,3 к 10 к Ом працює чудово.
  • Для схем, що чутливі до потужності, використовуйте більш високе значення. 50k або навіть 100k Ом можуть працювати для багатьох застосувань (але не для всіх).
  • Для схем, що залежать від швидкості, використовуйте нижнє значення. 1k Ом є досить поширеним, тоді як значення в межах 200 Ом не є нечуваними.
  • Іноді, як і у I2C, "стандарт" вказує конкретне значення для використання. В іншому випадку примітки про додаток до чіпів можуть рекомендувати значення.

10
200 Ом для підтягування? Нічого собі, це багато спокійного струму.
0x6d64

4
@ 0x6d64 - Ви припускаєте, що шина знаходиться в режимі спокою.
Коннор Вольф

3
Компанія Texas Instruments має дуже хороший довідник, який пояснює не тільки те, як обчислити значення підтягуючого резистора I2C, але і як насправді виводиться формула. Дивіться звіт про застосування розрахунку резистора підключення шини I2C за адресою ti.com/lit/an/slva689/slva689.pdf .
JamieSee

77

Використовуйте 10 кОм, це хороше значення.

Для більш детальної інформації ми повинні подивитися, що робить підтяжка. Скажімо, у вас є кнопка, яку ви хочете прочитати за допомогою мікроконтролера. Кнопка - це миттєвий перемикач SPST (однополюсний одинарний кидок). Він має дві точки з'єднання, які підключені або не є. При натисканні кнопки дві точки з'єднуються (перемикач закритий). Після звільнення вони не підключаються (комутатор відкритий). Мікроконтролери по суті не виявляють з'єднання або відключення. Те, що вони мають сенс, - це напруга. Оскільки цей перемикач має лише два стани, має сенс використовувати цифровий вхід, який, зрештою, розроблений для того, щоб бути лише в одному з двох станів. Мікрофон може відчути, в якому стані знаходиться цифровий вхід безпосередньо.

Підключення допомагає перетворити відкрите / закрите з'єднання комутатора на низьку або високу напругу, яку мікроконтролер може відчути. Одна сторона вимикача підключена до землі, а друга до цифрового входу. При натисканні вимикача лінія примушується низько, оскільки комутатор, по суті, коротко замикає її на землю. Однак, коли вимикач відпущений, ніщо не приводить лінію до якоїсь конкретної напруги. Він може просто залишатися низьким, підбирати інші сусідні сигнали за допомогою ємнісної зв'язку, або в кінцевому підсумку плавати до певної напруги через крихітний біт струму витоку через цифровий вхід. Завдання тягового резистора полягає в тому, щоб забезпечити позитивний гарантовано високий рівень, коли перемикач відкритий, але все ж дозволяти комутатору безпечно коротко замикати лінію на землю при закритті.

Існують дві основні конкуруючі вимоги щодо розміру висувного резистора. Він повинен бути досить низьким, щоб міцно потягнути лінію високо, але досить високо, щоб не викликати надто багато струму, коли вимикач закритий. Обидва вони є об'єктивно суб'єктивними і їх відносне значення залежить від ситуації. Як правило, ви робите підказку достатньо низькою, щоб переконатися, що лінія є високою, коли перемикач відкритий, враховуючи всі речі, які в іншому випадку можуть зробити лінію низькою.

Давайте подивимось, що потрібно для підтягування лінії. Дивлячись лише на вимогу постійного струму, розкривається струм витоку лінії цифрового введення. Ідеальний цифровий вхід має нескінченний опір. Справді, звичайно, це не відбувається, і те, наскільки вони не ідеальні, зазвичай виражається як максимальний струм витоку, який може вийти або вийти в штифт. Скажімо, ваш мікроекран заданий для максимальної витоку на 1 мкА на його цифрових вхідних штифтах. Оскільки тягач повинен підтримувати лінію високою, найгіршим випадком є ​​припущення, що штифт виглядає як ток 1 мкА на землю. Якщо ви, наприклад, використовували підтягувач 1 МОм, то 1 мкА спричиняв би 1 вольт через резистор 1 МОм. Скажімо, це 5В система, так що це означає, що штифт гарантовано до 4В. Тепер ви повинні подивитися на цифровий специфікацію входу і подивитися, яка мінімальна потреба в напрузі для логічно високого рівня. Це може бути 80% Vdd для деяких мікросхем, що в цьому випадку буде 4В. Тому підтяжка 1 МОм знаходиться прямо на межі. Вам потрібно хоча б трохи менше, ніж для гарантованої правильної поведінки через міркування постійного струму.

Однак є й інші міркування, і їх важче оцінити. Кожен вузол має деяку ємнісну сполуку з усіма іншими вузлами, хоча величина з’єднання падає з відстані, що стосується лише сусідніх вузлів. Якщо в цих інших вузлах є сигнали, ці сигнали можуть з'єднуватися з вашим цифровим входом. Зниження значення нижчого значення робить лінію нижнього опору, що зменшує кількість бродячого сигналу, який він буде приймати. Це також дає вам більш високий мінімальний гарантований рівень постійного струму проти струму витоку, тому є більше місця між цим рівнем постійного струму і там, де цифровий вхід може інтерпретувати результат як логічний низький замість призначеного логічного максимуму. Так скільки вистачить? Зрозуміло, що 1 МОм підтягування в цьому прикладі недостатньо (занадто високий опір). Згадати зв’язок із сигналами поблизу майже неможливо, але я хотів би хоча б на порядок границі над мінімальним випадком постійного струму. Це означає, що я хочу хоча б підняти 100 кОм або менше, хоча, якщо навколо є багато шуму, я б хотів, щоб він був нижчим.

Є ще одне враження, що призводить до того, що тягач знижується, і це час підйому. Лінія матиме деяку бродячу ємність до землі, тому буде експоненціально занепадати у бік постачання, а не миттєво їхати туди. Скажімо, вся збита ємність досягає 20 пФ. При цьому 100 кОм підтягування дорівнює 2 мкс. Потрібні 3 константи часу, щоб дістати до 95% відстійного значення, або 6 мкс в цьому випадку. Це не має жодного наслідку для людського часу, тому в цьому прикладі не має значення, але якби це була цифрова шина, ви хотіли працювати на швидкості передачі даних 200 кГц, вона б не працювала.

Тепер давайте розглянемо інший конкуруючий розгляд, який є витраченим струмом при натисканні перемикача. Якщо цей пристрій закінчується від лінійного живлення або іншим чином обробляє значну потужність, кілька мА не матиме значення. Для напруги 5В потрібно 5 кОм, щоб намалювати 1 мА. Це насправді "багато" струму в деяких випадках, і набагато більше, ніж потрібно з-за інших міркувань. Якщо це пристрій, що працює на акумуляторі, і комутатор може бути включений значну частину часу, то це може мати значення кожен µA, і вам доведеться дуже ретельно продумати це. У деяких випадках ви можете періодично пробувати вимикач і лише на короткий час увімкнути вимикач навколо зразка, щоб мінімізувати поточний розрив.

Окрім особливих міркувань, як-от робота акумулятора, 100 кОм достатньо високий опір, щоб змусити мене нервувати звук. 1 мА струму, витраченого при включенні комутатора, здається непотрібним. Таким чином, 500 мкА, що означає опір 10 кОм, є приблизно правильним.

Як я вже сказав, використовуйте 10 кОм. Це хороша цінність.


1
І додатковою вимогою є те, що деякі вимикачі, наприклад загальні вимикачі типу "такт", задаються лише для дуже низького струму, наприклад, 1 мА. Зауважимо, що 10k (при 5 В або нижче) задовольняє цій вимозі, але слід пам’ятати, що враховуються нижчі значення резисторів.
Wouter van Ooijen

1
@Wouter - мої улюблені тактові вимикачі мають не лише 50mA максимум (1mA мені здається низьким), але і мінімум. Щоб зберегти контакти чистими, я розміщую конденсатор паралельно комутатору, ідея полягає в тому, що пік струму короткого замикання при перемиканні підтримує контакти чистими. Незважаючи на те, що при тестуванні вказано лише 100 000 циклів, ми не мали проблем з їх використанням до 200 000 циклів.
stevenvh

@stevenvh Чи можете ви пояснити більше про конденсатор паралельно з перемикачем? Як це зробити, якщо високий початковий струм короткого замикання підтримує контакти чистими?
абдулла кахраман

Ця ситуація, коли можна побачити надмірну ємнісну сполуку, яка впливає на значення резистора, що підтягується. Здається, божевільно, але це не так. У мене є неприємний тридержавний вихід, який я читаю з АЦП. Однієї плати, підтягування на 220 к. Є достатнім, щоб АТС міг прочитати всі трисхеми. На іншій (більш щільно розміщеній дошці) мені потрібно як підтяжка на 100 к. Думав, що я цілий ранок переслідував божевільні таблетки.
Leroy105

23

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

Є дві ситуації: тактовий вимикач відкритий і перемикач закритий.

Ω5V10kΩμ

μμμ×Ω× VDD

Що робити, якщо ми вибрали інше значення резистора? Менше значення означало б менше падіння напруги, а вхідна напруга була б навіть вище 4,99 В. Але тоді через резистор буде більше струму, коли вимикач закритий, і це те, чого ти не хочеш.
Більше значення резистора було б добре, коли вимикач закритий, оскільки буде менше струму, але напруга на вході мікроконтролера буде нижчою 4,99 В. У нас тут є деякий запас, так що дещо вища цінність може бути в порядку.

висновок

  1. Ω
  2. Навчіться малювати схеми та читати таблиці

7
Я не погоджуюся, що це марно, адже діаграми проводки, зроблені за допомогою Фрітцінга, зараз, мабуть, поширені, ніж схеми, коли мова йде про Arduino. Аудиторію потрібно враховувати.
Дейв Ньютон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.