Использование подтягивающего резистора с высоким сопротивлением

Я пытаюсь создать схему, в которой замыкание переключателя изменит GPIO с низкого на высокий, и я хочу максимально минимизировать ток, чтобы увеличить срок службы батареи. Я буду использовать микросхему Nordic Semiconductors nRF51422 ( https://www.nordicsemi.com/eng/Products/ANT/nRF51422 ).

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

Именно такую ​​установку я себе и представлял. Я использую очень большой подтягивающий резистор (порядка мегаом). Падение напряжения на этом резисторе будет настолько большим, что он по существу будет вести себя как подтягивающий резистор с дополнительным преимуществом исключительно малого энергопотребления. Затем у меня есть переключатель, который в закрытом состоянии соединяет GPIO с землей через резистор рекомендуемого размера (13 кОм). Тогда схема будет напоминать GPIO, подключенный к земле через два параллельных резистора, один очень большой и один намного меньше, которые будут вести себя как один меньший резистор. Таким образом, когда переключатель замкнут, цифровое значение GPIO меняется с высокого на низкий. , а в открытом состоянии протекает лишь небольшая струйка тока, что значительно экономит срок службы батареи.

Будет ли это работать? В частности, имеет ли вообще смысл моя идея с большим резистором?

РЕДАКТИРОВАТЬ:

Я перефразирую свой вопрос и добавлю схему.

Насколько я понимаю, GPIO имеют высокий входной импеданс, следовательно, очень маленький ток утечки при подключении к земле. Если бы я подключил резистор с импедансом, скажем, в 10 раз превышающим входное сопротивление GPIO, между выводом GPIO и землей, был бы вывод GPIO на уровне 0,9 * VDD? Я предполагаю, что входное сопротивление GPIO не зависит от того, что к нему подключено.

Я сделал схему, которая иллюстрирует мои мысли, упрощая GPIO как резистор черного ящика. Схема

Будет ли это работать? Моя схема просто неверна?

Почему бы не использовать переключатель SPDT?
Я представляю пару перчаток, в которых каждый кончик пальца имеет какую-то проводящую поверхность. Есть 4 линии наружу (пальцы) и одна линия внутрь (большой палец). Я могу замкнуть переключатель, прикоснувшись большим пальцем к пальцам. Каждый палец подключен к GPIO на микроконтроллере, поэтому я могу сказать, к какому пальцу(ам) прикасается большой палец. Может быть, я делаю это более сложным, чем нужно, но я хочу, чтобы он использовал наименьшее возможное количество тока.

Ответы (2)

Таким образом, когда переключатель замкнут, цифровое значение GPIO меняется с высокого на низкое, а когда он разомкнут, ток остается небольшим, что значительно экономит срок службы батареи.

У вас неправильное представление. Подтягивание не должно приводить к большому току, кроме тока утечки gpio.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

На первом рисунке подтягивание приводит к высокому уровню GPIO IN. Единственным током является ток утечки, необходимый для измерения уровня входного напряжения. Это несколько нА, доли миллиампер. Чаще всего это можно проверить как высокий/низкий уровень входной логики (ILH, ILL) в таблице данных, но я не могу найти его в вашем продукте. Предположим, что в среднем 10 нА или меньше.

Только на второй картинке можно нарисовать значительный ток. Когда кнопка нажата, существует прямой путь от V+ к Gnd через R2. Предполагая 3,3 В, это 3.3V / 47000Ω = 0.00007A70000 нА. Что выглядит большим по сравнению с ним, но это всего лишь 0,07 мА или 70 мкА.

Значительное потребление тока происходит только при нажатии кнопки. Так что просто спроектируйте свою схему так, чтобы состояние кнопки по умолчанию было там, где кнопка открыта.

Это имеет смысл и, вероятно, это то, что я в конечном итоге сделаю. В моем приложении переключатель будет замыкаться довольно часто, и я пытался найти способ довести ток, когда переключатель замкнут, до одного мкА (это будет около 250 мкА с рекомендуемым резистором 13 кОм). Честно говоря, это ничто по сравнению с тем, что требуется для запуска чипа. Я просто пытался найти способ реально сэкономить на энергопотреблении.

Именно такую ​​установку я себе и представлял. Я использую очень большой подтягивающий резистор (порядка мегаом). Падение напряжения на этом резисторе будет настолько большим, что он будет вести себя как подтягивающий резистор.

Это не имеет особого смысла. Если вы подключите резистор от штыря к земле, это выпадение. Напряжение на контакте такое же, как и на земле. По закону Ома падение напряжения на резисторе очень мало, потому что течет такой небольшой ток.

Типичная конфигурация показана ниже.

Я не очень понимаю вашу мысль, если честно. Похоже, вы пытаетесь использовать большой резистор, который одновременно подтягивает вверх и вниз, а затем подключает меньший параллельно с переключателем? Мне нужна схема, чтобы прокомментировать дальше, но вам действительно нужна только стандартная конфигурация подтягивания или опускания. Для подтягивания поменяйте местами резистор и кнопку.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

(1) Я понимаю (из этого ), что GPIO переносит ток. Таким образом, когда вы помещаете резистор с подтягивающим резистором, GPIO находится под напряжением над землей, равным падению напряжения на резисторе. Источник выше, казалось, подразумевал, что этот ток был постоянным независимо от номинала резистора. Моя идея состояла в том, чтобы использовать необычно большой резистор, и падение напряжения на резисторе будет настолько большим, что GPIO будет на уровне или около VDD, даже если это подтягивающий резистор.
(2) В приведенном выше источнике примерное значение этого тока указано как 1 мкА, поэтому резистор 3 МОм, помещенный между землей и GPIO, поставит GPIO на 3 В. Когда переключатель замкнут, вы получите 13 В. резистор кОм и параллельно резистор 3 МОм, который имеет эквивалентное сопротивление около 13 кОм, что точно соответствует номинальному сопротивлению для подтягивающего резистора. схематический
Нет, это не так. Установка резистора между gpio и gnd аналогична прокладке провода между gnd и gpio. Если величина тока, потребляемого gpio, почти постоянна, это не означает, что ток, проходящий через резистор, постоянен. Большой подтягивающий или понижающий резистор просто означает, что когда мы закрываем кнопку, новый ток, протекающий от источника, будет ниже. Это также означает, что мы более восприимчивы к шуму. Вы не можете просто поставить произвольно большие резисторы и ожидать, что это изменит работу закона Ома.
Я вроде понимаю. Эти примеры относились к ситуации, когда мы подтягивали gpio, и я предположил, что это будет то же самое, что и подтягивание gpio. Меня все еще смущает ваше заявление о том, что, хотя ток, потребляемый GPIO, является постоянным, напряжение на резисторе не обязательно должно быть постоянным. Если резистор и порт GPIO соединены последовательно, то как ток через резистор может быть непостоянным?
ну на самом деле они не в серии. вы можете посмотреть некоторые схемы, чтобы увидеть, как собираются GPIO, возможно, это будет иметь немного больше смысла. Я не думаю, что сказал это ... мой вопрос к вам: как вы ожидаете изменить сопротивление и поддерживать постоянный ток, проходящий через резистор? Это просто не произойдет с постоянным источником. Похоже, у вас есть некоторые фундаментальные непонимания по некоторым темам в базовом анализе. Может быть, просмотреть некоторые хорошие источники по теме.
(1) Верно, они не в серии. Этот источник, который я разместил, дал мне впечатление, что GPIO ведет себя как источник постоянного тока , в котором изменение сопротивления меняет напряжение. Конечно, все это питается от источника постоянного напряжения, поэтому я должен был подумать об этом. Тем не менее, я не совсем уверен, почему это не сработает. Я предположил, что небольшой ток утечки из GPIO (в подтянутой конфигурации) является результатом большого входного сопротивления со стороны GPIO. Вот почему этот источник создавал впечатление постоянного тока.
(2) Резистор кОм, помещенный между GPIO и VDD, не вызовет значительного изменения тока. Однако что, если вы добавите резистор порядка 10-кратного входного сопротивления GPIO? Ток, безусловно, изменится, но разве порт GPIO не будет на 0,1 В, даже если это подтягивающий резистор?