Використання резистора на підйомному та вихідному MCU на штифтах MCU


18

Чи потрібні резистори підтягування / опускання (внутрішні чи зовнішні) тільки для входів MCU INPUT? На відміну від цього, штифт MCU, сконфігурований як OUTPUT, "знає, на якому рівні він знаходиться", тому що він працює за рухом - "плаваючий" штифт MCU OUTPUT, прив'язаний до деякого входу іншої схеми, не має сенсу, оскільки стан штифта MCU може бути лише високим чи низьким ... чи маю я це право? Тепер, після завантаження або відмови MCU, може бути вигідним, щоб підтяжка / вниз була прив'язана до цієї лінії "вихід MCU на IC вхід", щоб гарантувати, що вхід до деяких ІС ніколи не плаває.

Можливо, я щойно відповів на власне запитання тут ... резистори, що піднімаються / вниз, можуть використовуватися як на вхідних, так і на вихідних штифтах, залежно від застосування?

Відповіді:


21

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

Але більшість mcu-штифтів є GPIO, а іноді при запуску визначаються як входи замість виходів. Як ви вже говорили, іноді не потрібно, щоб IC-контактний вхід плавав під час запуску, особливо як контактний контакт, який ви зазвичай працювали за допомогою GPIO мікроконтролера.

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

Інша нормальна настройка виходу, яка використовує підтягування (або рідкісні спади, рідше) - це підключення Open Drain або Open Collector . Вони лише забезпечують низьке з'єднання або відпускають лінію, залишаючи її плаваючою. Підтяжки використовуються для приведення лінії у високий логічний стан.


Ви згадуєте підключення Open Drain та Open Collector, це не стосується мікроконтролерів, чи не так? Просто Мосфети використовуються для встановлення логічного рівня? Я хотів уточнити, чи може мікроконтролер керувати лінією, яка має високий резистор, що знищується.
genericpurpleturtle

9

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

Ще одна причина використання підтягування на виході: якщо кілька виходів з декількох мікропроцесорів з'єднані один з одним, ви на самому справі не хочете, щоб один ведучий VCC і інший ведучий 0V на одному проводі! Таким чином, ви або запускаєте 0 V на вихід, або вимикаєте висновок (можливо, конфігуруючи його як вхід). Коли всі виходи вимкнено, дріт підтягується до «1» (Vcc). Це називається сигналом "провідний І". (Ви можете зробити те ж саме за кермом "1" або вимкнути, зі спадним R, тоді це називається провідним АБО).

Ця схема має декілька застосувань, зокрема дозволяє будь-якому MPU сигналізувати про помилку або вмикати світлодіод, або дозволяти всім по черзі надсилати повідомлення один одному на один провід.


4

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

Це робиться для пом’якшення несправностей прошивки / MCU, але буде працювати лише для захисту від стану прискореного опору (в основному штифт налаштований як вхід випадково).

Більшість MCU мені знайомі штифти IO за замовчуванням до стану вхідного сигналу з високим опором під час завантаження (але жодної гарантії, і я не маю досвіду в будь-якому місці поблизу всіх сімейств MCU), а це означає, що коду може знадобитися деякий час, перш ніж код ініціалізувати штифт стан виконується.

Іноді це не має значення, інше - це.


Дякую за відповідь, яка також компліментує інші відповіді! FYI, серія PIC24F встановлює штифти GPIO на високий імпеданс (вхід) після скидання (контактний лист вводу / виводу).
The_Ders

3

Відповідь - це залежить від сімейства мікроконтролерів, і те, що його поведінка за замовчуванням, увімкнено. Якщо мікроконтролер може бути налаштований лише на "вихід" або "вхід" на штифті, це зазвичай означає, що він використовує драйвер Totem-Pole для виводу - що означає, що це по суті вихідний затвор CMOS, і в цьому випадку вихід завжди спрямовується на рейку, тому немає причин пасивно впливати на нього. Єдиний випадок, коли є сенс використовувати підтяжки / спади на виході, коли він налаштований як топологія Open Collector / Open Drain. Набагато частіше бачити внутрішні параметри підтягування / витягування, застосовні лише тоді, коли штифт налаштовано як вхід. Якщо ви можете гарантувати, що у вашій системі вхід завжди чимось керується, це витрачає трохи енергії.


Чудове пояснення на апаратному рівні. Дякую!
The_Ders

2

Ви можете мати шпильку, яка є виведенням деякий час , наприклад, для виконання I2C.


Я маю це пам’ятати під час роботи з I2C у майбутньому. Я вважаю, що в серії PIC24F модуль I2C бере на себе повний контроль над штифтами, а лінії вимагають зовнішніх підтягувань. Тепер я знаю, чому це так - модуль I2C по суті налаштовує контактний контакт як вихід з відкритим зливом / колектором (потрібен резистор, що підтягується), або вхід з високим опором, залежно від того, виводяться / вводяться дані з / в I2C модуль ... чи маю я це право? Я не такий знайомий з I2C.
The_Ders

Це точно так.
pjc50

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