|
|
  |
Как включить внутренние подтягивающие резисторы?, Вроде все делаю правильно, но... |
|
|
|
Dec 24 2006, 18:36
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Здравствуйте!
У меня 5 пинов PB0, PB6, PB4, PB5 и PB7 предназначены для кнопок. Т.е. анализируется, нажата ли кнопка, один контакт которой подсоединен к соответствующему пину, второй к плюсу питания.
с PB0 и PB6 все нормально.
С остальными же проблемы - то они ловят единицу, то нет (у меня на других портах, настроеных на вывод светодиоды стоят). Ну в общем похоже на то, что ловят шумы. Может быть дело в разводке платы, не знаю, но повторюсь с первыми двумя пинами все ОК. При подключении к проблемным пинам резистора 10 кОм это явление исчезает. Пытаюсь использовать внутренние подтягивающие резисторы. Может быть неправильно делаю, подскажите.
Делаю так:
DDRB=0x00; PORTB=0x00;
Это, получается pullup отключены. Результат - PB0 и PB6 работают нормально, PB4,PB5 и PB7 - глючат.
Подключаю pullup:
DDRB=0x00; PORTB=0xFF;
ТОгда единицы ловятся на всех пинах. Напряжение при этом на входах - менее 0,2 вольт, что подтверждаает что это именно шумы.
Может быть я не правлиьно управляю портами?
Подскажите как найти проблему? СТавить внешние подтягивающие из принципа не хочу.
Спасибо.
|
|
|
|
|
Dec 24 2006, 18:50
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(Зверюга @ Dec 24 2006, 22:36)  Здравствуйте!
У меня 5 пинов PB0, PB6, PB4, PB5 и PB7 предназначены для кнопок. Т.е. анализируется, нажата ли кнопка, один контакт которой подсоединен к соответствующему пину, второй к плюсу питания. Если вы намерены использовать внутренние pullup резисторы, то кнопки нужно подключать между выводом МК и "землей". Когда кнопка будет разомкнута, на выводе будет лог. 1, когда замкнута - соответственно лог. 0. Последовательно с кнопкой желательно поставить резистор 330 ... 1 кОм, для ограничения тока через вывод МК при его ошибочной конфигурации и замыкании кнопки. Конфигурировать порт надо так: DDR = 0, PORT = 1, считывать значение нужно с порта PIN
--------------------
|
|
|
|
|
Dec 24 2006, 18:53
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Dec 24 2006, 18:36)  У меня 5 пинов PB0, PB6, PB4, PB5 и PB7 предназначены для кнопок. Т.е. анализируется, нажата ли кнопка, один контакт которой подсоединен к соответствующему пину, второй к плюсу питания. И чем могут помочь pull-up резисторы там, где нужен pull-down? Цитата(Зверюга @ Dec 24 2006, 18:36)  СТавить внешние подтягивающие из принципа не хочу. По-моему, не самый лучший подход - значение внутреннего pull-up может меняться в пределах 20-100кОм, ловить помехи будет. Тем более, что в данной ситуации без внешних резисторов никак.
|
|
|
|
|
Dec 26 2006, 21:37
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Dec 26 2006, 21:29)  Внешние резисторы ведь в итоге соединятся вместе на минусе, и кнопки влияют друг на друга. Можно конечно сделать диодные развязки, но... Как влияют??? Земля поднимается??? Цитата(Зверюга @ Dec 26 2006, 21:29)  Я выкинул резисторы, влкючил pullup, кнопки посадил на минус - все заработало как часы! Даже исчезла проблема, которую я в соседней теме ошибочно расценил, как дребезг контактов. Дребезг обычно никуда не исчезает. Антидребезг нужно делать всегда. Про внутренние pull-up уже все сказали - ставьте внешние.
|
|
|
|
|
Dec 26 2006, 21:45
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Как влияют??? Земля поднимается??? Ставил по 12 кОм. Нарисуйте мысленно схему - если от каждого пина по одному резистору на землю, то два отдельных пина будут соединены между собой через два резистора. В результате, почему - то через 24 кОм одна кнопка оказывает влияние на все входы, с частотой примерно один к трем. Повторюсь, сделал через внутренние pullup - все ОК. Цитата Дребезг обычно никуда не исчезает. Антидребезг нужно делать всегда. Так я и не говорю, что он исчез. Исчезда другая поблема, которую я принял за дребезг. Что касается самого дребезга - сколько я не нажимал кнопки - ни разу такого эффекта не было. И вообще, делаю для дома, так что обойдусь пока без антидребезга. Ламер-любитель я )))
|
|
|
|
|
Dec 27 2006, 01:50
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(defunct @ Dec 25 2006, 14:07)  "В корзину" такие кнопки. Вот и меняю пачками  Цитата Ставил по 12 кОм. Нарисуйте мысленно схему - если от каждого пина по одному резистору на землю, Не смешно . А вообще попробуйте сзади кнопки пальцем дорожки коротнуть,если не реагирует ,то и на pullup пойдет.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|