Рекомендація щодо налаштувань за замовчуванням для невикористаних штифтів на STM32 (ARM Cortex M3) - тягнути вгору / тягнути вниз?


15

В даний час ми використовуємо різні варіанти сімейства мікроконтролерів STM32. Я хотів би знати наступне:

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

  2. Зокрема, я хотів би знати, що робити з невикористаними штифтами для сімейства мікроконтролерів STM32. Для мене очевидно, що ми не повинні залишати штифти плаваючими (це все, що говорить в аркуші: :(), але я повинен налаштувати їх на введення за допомогою підтягувань або входів зі спадними падіннями? Зокрема, я хотів би вибрати налаштування, яке найменш сприйнятливе до ОУР, а також, якщо можливо, споживає найменшу кількість енергії.

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

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

Я думаю, що це коштує дорожче - це обладнання.

Будь-яке світло, яке ви можете пролити вище, буде дуже вдячний.

Спасибі..


Чому б не встановити невикористані штифти як вихід? Це призведе до усунення проблеми "підтягування" та "спаду".
Коннор Вольф

Зверніть увагу: "При будь-якій події скидання всі GPIO плаваючі входи. Це запобігає випадковому пошкодженню GPIO у разі надзвичайної ситуації." embedded-lab.com/blog/stm32-gpio-ports-insights
cp.engr

Відповіді:


11

Ця відповідь не є специфічною для STM32, але ґрунтується на досвіді та багатьох таких дискусіях протягом багатьох (багатьох) років. Інші можуть додати до цього - він охоплює основні моменти (я думаю), але може бути не завершеним.

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

тобто "Якщо мікроініціалізація не ініціалізується належним чином ..." дійсно читає "... коли мікро ініціалізація належним чином ..." :-) - і очевидно, що ви це усвідомлюєте.

Так:

  • Використання зовнішньої підтяжки або спаду має важливе значення для тих, хто дійсно прагне отримати чітко визначений результат. Це є найбільшим обов'язковим для цього завданням. Все інше - бонус. тобто налаштування на входи з внутрішнім pullxxx - це компроміс, який майже завжди буде працювати.
    Але, якщо "майже завжди" недостатньо добре для вашого дизайну, тоді вам потрібні зовнішні ххх.

  • Натягування або опускання, здається, не мають переважно кращого результату. Він може відрізнятись від ІМС, але їх можна визначити на сторінці даних. При рівних обставинах (як це може бути) я віддаю перевагу пониженню, оскільки є потенціал зменшення струмів витоку до зовнішньої схеми пристрою - але це може бути мінімальним у відповідній друкованій платі та / або доброякісному середовищі.

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

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

  • Питання 3 - зовнішні pullxxxs бажані, але здається безпечним використовувати значення, які знаходяться на граничному високому рівні належної конструкції, а потім використовувати внутрішні ххх паралельно, якщо потрібно. Однак, оскільки внутрішні тяги xxx часто мають 2: 1 ефект, ви можете отримати найбільший R та найменший струм, використовуючи лише зовнішній. Чого ви, звичайно, хочете уникнути, - це зовнішні підйоми та внутрішні падіння або віце-берса - але це навряд чи буде проблемою.

  • Коли я кажу "... обмеження високого кінця належного дизайну ...", я маю на увазі саме це, а не "минуле обмеження ...". тобто штифт матиме задане значення опору, що дозволяє виконувати найгірший вигляд специфікації Vin. Більший резистор може зайняти менший струм в резисторі, але може почати дуже незначно включати внутрішній вимикач. тобто може статися, що існує Rpulldown_current проти найнижчого загального поточного компромісу, оскільки внутрішній драйвер починає бачити струм витоку (який буде вкрай малим), збільшуючи струм до dirver і дуже незначно шепочучи його.

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

  • Майже вбік - НІКОЛИ не дозволяйте діодам захисту обробляти "будь-які значні струми" на будь-якій стадії під час роботи. Дозволити їм це може призвести до абсолютно незрозумілих дій процесора. Чим менше течія, тим менша ймовірність того, що речі не можуть помилитися - і тим складніше їх знайти, коли вони роблять.


1
Дуже прониклива відповідь. Велике спасибі. Чи можете ви детальніше зупинитися на цьому - "Якщо ви дуже турбуєтесь про ОУР, то, можливо, ви хочете використовувати низькі виходи з пониженням, оскільки шлях з низьким опором (мабуть) запропонує кращий захист від ОУР"? Якщо встановити вихід - ви за замовчуванням відкриєте злив або натисніть (високий / низький)?
IntelliChick

@IntelliChick Весь сенс встановлення цього виходу полягає в тому, щоб перевести його у відомий стан з низьким опором, а це означає, що ви, безумовно, НЕ встановлювати його для відкриття стоку, особливо відкритого стоку з виходом HI, оскільки це просто високий опір.
DKNguyen

@DKNguyen 8+ років на ... :-). І Intellichick не бачив цих 8+ років - Але все-таки варто додати свій коментар.
Рассел Макмахон

@RussellMcMahon Відпустіть себе з тюрми, що є звичайним сприйняттям часу.
DKNguyen

@DKNguyen Я давно робив подруг фотонами. Ми живемо у вічному зараз. Я все ще не встигаю досягти того, що вони роблять. ВСІ фотони живуть у позачасовій, "просторовій" спільності. Фотон, що залишає Соля, і фотон, який залишає альфа-кентаврі проксима, завжди є разом, ніколи не знають значення приходу першого або останнього або часу між ними. Коли я запитую їх, як цього досягти, вони просто посміхаються. || Постійний струмок людей коментує мої пости через багато років після їх публікації. Або навіть редагувати їх. Ваші також, без сумніву.
Рассел Макмахон

2

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

Мені колись довелося перевірити розрахунки надійності плати процесора. Це було добре розроблено, з роз'єднуваними кришками повсюдно та резисторами, що підтягуються до всіх штифтів вводу / виводу. Інженер з надійності вийняв свій посібник, додав показники відмов усіх задіяних компонентів і закінчив цифру, в якій переважали показники відмов пасивних компонентів. Ця цифра була вищою за вимогу, тому у нас виникла проблема. Зніміть ці резистори, і цифра буде в порядку. Але на цю пропозицію інженери-електрики почали гнівно кричати (правда, ІМО). Я не пам'ятаю, як закінчилася історія; Я думаю, що ми звернулися до клієнта і попросили розподілити за те, щоб пропустити коефіцієнт відмов резисторів з розрахунку, виходячи з того, що вони не мають значного струму.


1

Я просто конфігурую невикористані штифти як виходи та встановлюю їх низькими.


як правило, ви встановите їх на «тягнутий» або «відкрити» стік? І в обох випадках ви встановили їх на низький рівень? Чи можете ви сказати мені, чому б ви вибрали одне над іншим.
IntelliChick

@Leon Heller - це відповідає тесту "працює, як правило", але виходить з ладу, коли мікропроцесор не ініціалізується належним чином, або коли Мерфі перевертає трохи навмання випадково, як це час від часу робить. , твори.
Рассел Макмахон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.