Ця відповідь не є специфічною для STM32, але ґрунтується на досвіді та багатьох таких дискусіях протягом багатьох (багатьох) років. Інші можуть додати до цього - він охоплює основні моменти (я думаю), але може бути не завершеним.
Це заохочує бачити когось, хто задає ці прості, але фундаментальні запитання і показує усвідомлення того, як такі "дрібниці" можуть "зібрати" в реальному житті.
тобто "Якщо мікроініціалізація не ініціалізується належним чином ..." дійсно читає "... коли мікро ініціалізація належним чином ..." :-) - і очевидно, що ви це усвідомлюєте.
Використання зовнішньої підтяжки або спаду має важливе значення для тих, хто дійсно прагне отримати чітко визначений результат. Це є найбільшим обов'язковим для цього завданням. Все інше - бонус. тобто налаштування на входи з внутрішнім pullxxx - це компроміс, який майже завжди буде працювати.
Але, якщо "майже завжди" недостатньо добре для вашого дизайну, тоді вам потрібні зовнішні ххх.
Натягування або опускання, здається, не мають переважно кращого результату. Він може відрізнятись від ІМС, але їх можна визначити на сторінці даних. При рівних обставинах (як це може бути) я віддаю перевагу пониженню, оскільки є потенціал зменшення струмів витоку до зовнішньої схеми пристрою - але це може бути мінімальним у відповідній друкованій платі та / або доброякісному середовищі.
Ви можете поглянути на стартові дії, якщо вам дійсно все одно. наприклад, підтягнутий штифт почне низько і на деякому етапі пройде високо. Витягнута шпилька, ймовірно, залишатиметься низькою протягом усього. Це, мабуть, не важливо, але згадується для повноти.
Сприйнятливість до ОУР буде залежати від пристрою, цілком ймовірно, симетрична, і в середньому для багатьох процесорів, мабуть, сприяє зниженню, оскільки драйвери, як правило, занурюються краще, ніж джерело, якщо несиметричні. Якщо ви дуже турбуєтесь про ОУР, то, можливо, ви хочете використовувати низькі виходи з понижуючими падіннями, оскільки шлях низького опору (мабуть) запропонує кращий захист від ОУР. Але якщо ви дуже турбуєтесь про ОУР, вам захочеться розробити його іншими способами, а не покладатися на внутрішній захист як основний захист.
Питання 3 - зовнішні pullxxxs бажані, але здається безпечним використовувати значення, які знаходяться на граничному високому рівні належної конструкції, а потім використовувати внутрішні ххх паралельно, якщо потрібно. Однак, оскільки внутрішні тяги xxx часто мають 2: 1 ефект, ви можете отримати найбільший R та найменший струм, використовуючи лише зовнішній. Чого ви, звичайно, хочете уникнути, - це зовнішні підйоми та внутрішні падіння або віце-берса - але це навряд чи буде проблемою.
Коли я кажу "... обмеження високого кінця належного дизайну ...", я маю на увазі саме це, а не "минуле обмеження ...". тобто штифт матиме задане значення опору, що дозволяє виконувати найгірший вигляд специфікації Vin. Більший резистор може зайняти менший струм в резисторі, але може почати дуже незначно включати внутрішній вимикач. тобто може статися, що існує Rpulldown_current проти найнижчого загального поточного компромісу, оскільки внутрішній драйвер починає бачити струм витоку (який буде вкрай малим), збільшуючи струм до dirver і дуже незначно шепочучи його.
Якщо ви використовуєте, наприклад, витяг, ви можете виявити меншу потужність, щоб встановити штирь на вихід і привести його в низький рівень, але це варіант, про який можна вирішити вчасно.
Майже вбік - НІКОЛИ не дозволяйте діодам захисту обробляти "будь-які значні струми" на будь-якій стадії під час роботи. Дозволити їм це може призвести до абсолютно незрозумілих дій процесора. Чим менше течія, тим менша ймовірність того, що речі не можуть помилитися - і тим складніше їх знайти, коли вони роблять.