Привет. В микроконтроллерах LPC17xx по умолчанию после сброса пины конфигурируются как входы с подтяжкой к питанию. После старта программы все понятно - переконфигурируем как надо и все OK. Но как быть в моменты программирования, сброса, включения когда пины еще не проинициализированы?
Допустим я управляю затвором MOSFETа с помощью GPIO МК, который управляет реле (ну, в принципе, не важно какой-то нагрузкой) мне нужно, чтобы реле никогда не включалось, когда это не нужно. Как лучше поступить? В голове такие варианты, покритикуйте какой лучше или посоветуйте другие:
1) подтягиваем пин к земле внешним резистором 10 кОм. Хватит ли этих 10 кОм? Мин. порог отркытия MOSFET-а 0.5В.
2) наоборот, подтягиваем пин внешним резистором 10 кОм к питанию 3.3В, после пина ставим инвертор и в программе используем инверсное управление.
Сергей Борщ
May 3 2013, 11:32
Я ходил по пути 1. Но использовал резистор 1К. Если этот номинал не годится из соображений потребления - я бы подумал о смене производителя контроллера на того, кто не заставляет так извращаться.
ar__systems
May 3 2013, 13:59
Цитата(Сергей Борщ @ May 3 2013, 06:32)

Я ходил по пути 1. Но использовал резистор 1К. Если этот номинал не годится из соображений потребления - я бы подумал о смене производителя контроллера на того, кто не заставляет так извращаться.
Да не сильно большое извращение.
Вариантов масса, можно биполярный транзистор, например, поставить, вместо или перед мосфетом. Он от подтяжки не откроется.
А второй способ чем плох если не учитывать, что нужно дополнительный элемент - инвертор - вводить? И потребление поменьше будет.
Сергей Борщ
May 4 2013, 20:47
QUOTE (Rev0.0 @ May 4 2013, 11:02)

если не учитывать, что нужно дополнительный элемент - инвертор - вводить?
Да собственно именно этим - место на плате, неудобство в разводке, цена за кристалл и его монтаж. И все это только из-за того, что кто-то в NXP решил, что "подтяжки - это будет хорошо". Помнится, аналогичным страдал Атмел.
Хорошо, с инверторами понятно. Как тогда посчитать достаточное значение резистора подтяжки, чтобы при этом транзистор с порогом 0.5В не открылся, но в то же время максимально большое, чтобы сильно не увеличилось энергопотребление. При включении, когда пины не инициализированы напряжение составляет около 2,2 В (измерял мультиметром). В даташите указан pull-up current в диапазоне от -15 до -85 мкА. Как на основе этих данных посчитать значение резистора и вообще можно ли посчитать или только опытным путем?
QUOTE
В даташите указан pull-up current в диапазоне от -15 до -85 мкА. Как на основе этих данных посчитать значение резистора и вообще можно ли посчитать или только опытным путем?
Не поверите. Закон Ома. Например, при резисторе в 1кОм напряжение нуля будет не более 85мВ.
QUOTE
В даташите указан pull-up current в диапазоне от -15 до -85 мкА. Как на основе этих данных посчитать значение резистора и вообще можно ли посчитать или только опытным путем?
Не поверите. Закон Ома. Например, при резисторе в 1кОм напряжение нуля будет не более 85мВ.
Цитата(Rst7 @ May 5 2013, 13:49)

Не поверите. Закон Ома. Например, при резисторе в 1кОм напряжение нуля будет не более 85мВ.
Вот если бы так было, то здорово. Но вот при подтяжке 10 кОм у меня на мультиметре цифра 1.2В, а по Ому должно быть не более 0.85В. Причем 85 мкА это макс. значение, а типичное по даташиту 50 мкА. Где правда?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.