Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PULL-UP
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
asp
Подскажите пожалуйста!

При програмном подключении PULL-UP резистора, должен ли появляться высокий уровень на выводе к которому произведено подключение?

Если отслеживать замыкание кнопки на корпус нужен ли внешний резистор с Vdd?
Если можно использовать внутренний, то нужно ли дополнительно ограничивать ток через кнопку?
uriy
Цитата
При програмном подключении PULL-UP резистора, должен ли появляться высокий уровень на выводе к которому произведено подключение?

Да, конечно, собсно для этого он и сделан.
Если использовать PULL-UP то во внешнем резисторе отпадает надобность. Ограничивать ток тоже не вижу смысла. Номинал встроенного резистора обычно бывает указан в даташите.
iosifk
Цитата(asp @ Jun 18 2007, 13:01) *
Подскажите пожалуйста!

При програмном подключении PULL-UP резистора, должен ли появляться высокий уровень на выводе к которому произведено подключение?

Если отслеживать замыкание кнопки на корпус нужен ли внешний резистор с Vdd?
Если можно использовать внутренний, то нужно ли дополнительно ограничивать ток через кнопку?

Проверяется все довольно просто.
Берем резистор, на порядок меньший, чем PULL-UP, но больший, чем выходное сопротивление пина, и через этот резистор на пин подаем прямоугольники.
Если пин стоит на вывод, то там будет либо 0, либо 1 в соответствии с тем, что записано в пин. А если пин стоит на ввод, то будут либо импульсы, если резистор подключен, либо 1, если не подключен.
Удачи!
asp
Всем ответившим спасибо!!!
Разобрался, эксперементировал с PIC12F629, но думаю это у всего семейства smile.gif

Когда включаем PULL-UP уровень на внешнем выводе относительно корпуса около 0,5 вольта,
но считывается как еденица.
NewMaestro
Цитата(asp @ Jun 19 2007, 18:52) *
Когда включаем PULL-UP уровень на внешнем выводе относительно корпуса около 0,5 вольта,
но считывается как еденица.


Это ерунда. Если пин настроен на вход и включен pull-up то напряжение на данном пине будет близким к напряжению питания. Если у вас 0.5 вольта, значит что-то не так.
А, может, у вас внешняя цепь не дает поднятся напряжению до 5 вольт, т.е. ваш pull-up вместе с внешней цепью образует делитель 1:10 smile.gif
asp
Цитата(NewMaestro @ Jun 21 2007, 18:16) *
Это ерунда. Если пин настроен на вход и включен pull-up то напряжение на данном пине будет близким к напряжению питания. Если у вас 0.5 вольта, значит что-то не так.
А, может, у вас внешняя цепь не дает поднятся напряжению до 5 вольт, т.е. ваш pull-up вместе с внешней цепью образует делитель 1:10 smile.gif


К выводу подключена только кнопка, она разомкнута, парадокс в том что работает smile.gif
Я сделал програмный мультивибратор на светодиодах, когда нажимаю кнопку запускается.
Мне тоже казалось что должно на пине напряжение 5 в (или близкое) появляться.
NewMaestro
Цитата(asp @ Jun 21 2007, 18:46) *
К выводу подключена только кнопка, она разомкнута, парадокс в том что работает smile.gif
Я сделал програмный мультивибратор на светодиодах, когда нажимаю кнопку запускается.
Мне тоже казалось что должно на пине напряжение 5 в (или близкое) появляться.


Значит в вашем мультиметре села батарейка smile.gif
Aqualion
Приподниму немного темку sm.gif

Столкнулся с проблемой использования этих самых pull-up резисторов в PIC24FJ128GB006.
Порт TMS/CVref/AN10/PMA13/CN28/RB10 настроен на вход и установлен бит подтягивающего pull-up резистора.
В документации написано, что напряжение при этом будет порядка Vdd-0.7 в, что и наблюдается, при Vdd=2.8в на входе 2.1 в.
При опросе же состояния входа на PORTB10 всегда имеем "0". Ко входу подключена только разомкнутая кнопка на землю.
При всем этом в доке также указан минимальный уровень логической "1" в 0.8Vdd, что при 2.8 в составляет 2.24 в, т.е. получается не попадаем в диапазон.
Каков же тогда смысл эти pull-up резисторов? Они работают только при Vdd >3 в?
Или я чего-то забыл еще отконфигурить?
xemul
Цитата(Aqualion @ Sep 21 2011, 18:22) *
Или я чего-то забыл еще отконфигурить?

Наверняка. Вход будет работать обычным входом, только когда будут выключены все периферийные функции, повешенные на него.
Смотрите, что из TMS/CVref/AN10/PMA13/CN28 забыли отключить.
Aqualion
Спасибо, еще раз внимательно посмотрю, хотя после включения питания вроде все выключено и все порты на вход настроены.
volodya
Цитата(Aqualion @ Sep 21 2011, 17:43) *
Спасибо, еще раз внимательно посмотрю, хотя после включения питания вроде все выключено и все порты на вход настроены.


Обратите внимание на ADxPCFGy включение функции ADC на пине , и регистры компаратора стоить проверить
Aqualion
Вроде все вчера проштудировал:
TMS относится к JTAG - отключил в битах конфигурации;
PMA13 относится к режиму параллельного порта - отключен изначально по включению питания;
AN10 относится к АЦП, после сброса к АЦП подключен вход AN0;
CVref после сброса тоже отключен от вывода.

Причем на других выводах с использованием подтягивающих резисторов значение нормально считывается.
На этом же провел эксперимент: настроил его на вывод, отключил pull-up резистор и вывел на него меандр, попробовал считать из PORTB10 значения и все равно считывается "0" всегда, хотя размах на порту от 0в до Vdd.
Даже не знаю что и думать...
xemul
Цитата(Aqualion @ Sep 22 2011, 13:13) *
AN10 относится к АЦП, после сброса к АЦП подключен вход AN0;

Это совсем не значит, что пин не сконфигурирован как аналоговый - он просто сейчас не выбран входом АЦП.
Цитата
Даже не знаю что и думать...

Пришлось таки скачать ДШ.
См. REGISTER 22-5: AD1PCFGL и 10.2 Configuring Analog Port Pins (а лучше - весь раздел 10.0)
Aqualion
Цитата(xemul @ Sep 22 2011, 13:36) *
Это совсем не значит, что пин не сконфигурирован как аналоговый - он просто сейчас не выбран входом АЦП.

Пришлось таки скачать ДШ.
См. REGISTER 22-5: AD1PCFGL и 10.2 Configuring Analog Port Pins (а лучше - весь раздел 10.0)

Точно!
Аналоговые пины по дефолту сконфигурены как аналоговые входы.
Огромное спасибо за тыканье носом в нужное место laughing.gif
нечитатель
Цитата
кнопка на землю
Тут в зале напоминают, что у сферической в вакууме кнопки есть ограничение по току через контакт не только сверху (разрушение), но и снизу (надёжность срабатывания).
Про это не принято лишний раз задумываться, но всё-таки.
Ruslan1
Цитата(Aqualion @ Sep 22 2011, 14:33) *
Точно!
Аналоговые пины по дефолту сконфигурены как аналоговые входы.
Огромное спасибо за тыканье носом в нужное место laughing.gif

А вы все равно не расслабляйтесь sm.gif
Я тут недавно на проблему с тем же самым TMS на PIC32 наткнулся, даже специальный багфикс-документ для объяснения причины переработки схемы-платы писать пришлось.
С английского переводить самого себя лениво, да и думаю и так понятно
Речь идет именно о ситуации когда RESET активен, то есть процессор не работает
Цитата
Reason:
During the CPU is in RESET condition (VDD is less than 2.3 V), all I/O pins are inputs. In this time Input Leakage Current is not more than 1 uA. But TMS/RA0 pin is pull-up pin (current is around 260 uA and voltage is around Vdd). Sorry, It is not described anywhere in PIC32 documentation. May be it is an internal CPU JTAG module pull-up.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.