Зачем нам нужны внешние тянущие резисторы, когда микроконтроллеры имеют внутренние тянущие резисторы?

15

Микроконтроллеры имеют внутренние понижающие резисторы, но большинство цепей имеют внешние резисторы.

Я искал ответы в Google, и несколько сайтов сказали, что эти резисторы не такие сильные, но я подумал, что они достаточно хороши для работы. У меня была мысль, что им может понадобиться внешний, потому что внутренние резисторы должны запускаться при программировании.

Поэтому для незапланированной ситуации они также подключают внешние резисторы. Но я не уверен в этом.

Какова реальная причина использования внешних устройств, когда у нас есть внутренние?

Гунджан Гангвани
источник
6
Некоторые микроконтроллеры имеют внутренние резисторы. И эти резисторы имеют неправильный размер для всех приложений (обычно они оптимизированы для малой мощности).
Дэйв Твид
2
Что произойдет, если я опущу подтягивающие резисторы на линиях I2C? Этот поток представляет собой анализ попытки использования внутренних подтягивающих резисторов с I2C.
Ник Алексеев
«Так что для незапланированной ситуации они также подключают внешние резисторы». Иногда тоже запланированные ситуации. Зачастую в производственной среде проще / быстрее / дешевле просто переместить резистор из одного места в другое, чем заново прошивать прошивку для достижения того же результата. Выполнение этого в прошивке, вероятно, потребует второго выпуска той же самой прошивки, которая нуждается в обслуживании. С модификацией пайки все, что нужно, это условная рабочая инструкция.
Wossname

Ответы:

30

Есть несколько возможных причин, таких как

  • Необходимый резистор должен присутствовать при включении питания, так как микроконтроллер еще не запустится.
  • Требуется более точное сопротивление, чем внутренний резистор. Внутренние подтягивающие / понижающие резисторы имеют очень широкие допуски.
  • Необходимость сопротивления больше или меньше, чем это предусмотрено внутри. Например, I 2 C обычно использует более сильные подтягивания, в то время как вы можете захотеть очень слабое подтягивание для мониторинга коммутатора, чтобы сэкономить энергию.
  • Нужно тянуть к напряжению, отличному от напряжения питания или земли микроконтроллера.
  • Использование подтягивающего / понижающего резистора вместе с АЦП на микроконтроллере. Некоторые микроконтроллеры отключают свои внутренние резисторы на любом выводе, к которому подключен АЦП.
  • Необходим резистор на микроконтроллере, который имеет только подтягивания.
Абе Карплус
источник
Я не мог понять последний второй момент ... Почему микроконтроллеры отключают свои встроенные резисторы с помощью АЦП
Gunjan Gangwani
3
@GunjanGangwani Я не думаю, что это хорошее дизайнерское решение, но идея в том, что обычно вы не хотите, чтобы АЦП брал какой-либо ток из измеряемой величины, поэтому вам нужно соединение с высоким сопротивлением. Я предполагаю, что некоторые дизайнеры не доверяют разработчикам прошивки всегда отключать внутренние резисторы.
Абе Карплус
7
Я думаю, что это обычно, потому что подтягивания / понижения связаны с буферами цифрового ввода, и включение ADC иногда может полностью отключить схему цифровой буферизации (и вместе с этим резисторы подтягивания / понижения).
Коннор Вольф
3
@Ashutosh Если вы хотите высокоимпедансный, конечно, вы не используете подтягивания. Некоторые микроконтроллеры реализуют это, автоматически отключая свои внутренние подтяжки, что является проблемой в тех ситуациях, когда вам не нужен высокий импеданс.
Абе Карплус
1
Входы АЦП @GunjanGangwani должны быть изолированы от всех других цепей для обеспечения минимального минимального уровня шума. Цифровые входы часто потребляют больший ток, чем хотелось бы, когда они находятся между «высоким» и «низким» напряжениями. Старые микроконтроллеры использовали внутренний переключатель для отключения входа от цифровой части, когда этот вывод использовался для АЦП, и именно эта цифровая часть имеет подтягивание. Это отключено, чтобы изолировать АЦП и снизить минимальный уровень шума, а также предотвратить возможное дополнительное потребление тока (или в очень старых чипах, cmos latchup).
Адам Дэвис
9

Некоторые (или, возможно, многие) микроконтроллеры имеют внутренние подтягивающие резисторы, но это часто довольно высокие значения. Многие приложения требуют более низких значений.

На входах в обычные логические схемы (вентили, счетчики и т. Д.) Могут также потребоваться подтягивающие резисторы, которые не имеют внутренних подтягивающих нагрузок (а иногда мы хотим использовать понижающие резисторы ...)

Питер Беннетт
источник
1
внутренние подтягивающие резисторы, но это часто довольно высокие значения. Я недавно создавал приложение с низким энергопотреблением и обнаружил, что подтягивающие резисторы были около 50 кОм, которые, как я обнаружил, были довольно низкими, что приводило к слишком большому потреблению тока. Поэтому я использовал более высокое значение внешнего резистора. В конце концов, это зависит от ваших потребностей.
Bimpelrekkie
3

Кроме того, вы будете использовать внешний резистор каждый раз, когда вам нужно фактическое значение сопротивления. Микроконтроллеры обычно не имеют реальных подтягивающих резисторов, а скорее полевые МОП-транзисторы, потребляющие небольшой ток, поэтому их эквивалентное значение сопротивления может сильно варьироваться в зависимости от сигнала, который вы подаете на вывод.

Дмитрий Григорьев
источник