|
|
  |
PIC16F628A. RA4 открытый сток на выходе |
|
|
|
Feb 9 2007, 21:35
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(SergSit @ Feb 9 2007, 20:48)  У PIC16F628A RA4 имеет открытый сток на выходе. Собираюсь использорвать его как выход для опроса кнопок(4 кнопки из 16, матрица 4X4) Считывание кнопок будет осуществлять порт B, с подключенными подтягивающими резисторами. Есть ли необходимость подключать между RA4 и Vcc резистор, чтобы обеспечить назрузку открытому стоку. Что плохого, если этот резистор неставить, особенно в плане помехоустойчивости? Он же не только сток, но еще и вход. Соответственно, в закрытом состоянии свободно болтающийся CMOSовый вход увеличивает потребление (когда напряжение болтается вблизи половины питающего напряжения). Некрасиво. Но на помехоустойчиваости в плане реакции на кнопки не скажется. Да, если опрос непрерывный - то по крайней мере наводок-утечек не будет, транзистор будет разряжать емкость вывода.
|
|
|
|
|
Feb 9 2007, 22:37
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 14-12-06
Пользователь №: 23 498

|
Цитата(SergSit @ Feb 9 2007, 20:48)  У PIC16F628A RA4 имеет открытый сток на выходе. Собираюсь использорвать его как выход для опроса кнопок(4 кнопки из 16, матрица 4X4) Считывание кнопок будет осуществлять порт B, с подключенными подтягивающими резисторами. Есть ли необходимость подключать между RA4 и Vcc резистор, чтобы обеспечить назрузку открытому стоку. Что плохого, если этот резистор неставить, особенно в плане помехоустойчивости? доктор жить буду ? а смысл ? а смысл не ставить.. обоснуйте, плиз. не ставят развязывающие диоды на клавиатуре из-за того, что сопротивление кнопки не превысимт допустимый ток.. простите, господин президент, я не танцую.. (из фильма)
Сообщение отредактировал urry1 - Feb 9 2007, 22:38
|
|
|
|
|
Feb 10 2007, 10:54
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 14-12-06
Пользователь №: 23 498

|
лучше ставить
|
|
|
|
|
Feb 10 2007, 13:35
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(VXDRV @ Feb 10 2007, 12:16)  Не просто лучше ставить а ставить конкретно - если вы запишите туда еденичку кто ножку подтягивать будет это же элементарная схемотехника. Кстати всю матрицу можно подключить к PORTB, а диоды нужны чтобы обезовасить ножки PIC-а от КЗ при одновременном нажатии двух и более кнопок - можно два выхода перемкнуть между собой когда на одном 1 на другом 0. Насчёт помех - внутренняя подтяжка в контроллере около 50кОм лучше навешайте сами резисторов нужно 4 штуки сопротивлением эдак 10кОм. Вот с диодами - поосторожее. Если у нас pull-up на входах, то опрос производится "бегущим нулем". Т.е. если берем ширпотребные кремниевые диоды - на вроде при "0" - больше 0.6V. А у PIC16, между прочим, нормируется максимум "0" как раз 0.6V. Так что если с диодами - то надо переходить на pull-down и опрашивать "бегущей единицей". Но есть и другие варианты - развязываться последовательно включенным резистором (что дешевле, но надо помнить про уровни), либо переводом выходов опроса из приема в передачу (но резисторы утечки надо бы поставить).
Сообщение отредактировал rx3apf - Feb 10 2007, 13:40
|
|
|
|
|
Feb 10 2007, 14:13
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(SergSit @ Feb 10 2007, 13:52)  Забыл о важном, о алгоритие опроса матрицы. В начальном моменте порт А и порт В включены как входы(все ножки), т.е находяться в третьем состоянии. Для опроса один выход порта А конфигурируется выходом и выставляеться лог. 0 на нем и считываеться порт В. Т.е. диоды не нужны (т.к КЗ быть не может даже если нажмеш несколько кнопок). В один момент времени выходом являеться только один пин. Что касаеться RA4. Постоянно он как вход. Когда он конфигуруеться , как выход и на нем появляеться 0, и при этом нажимаеться кнопка нагрузкой открытого стока будет являться подтягиваюший резистор порта В. Еденичку в RA4 записывать ни когда не буду. Или третье состояние как вход, или 0 как выход. Тогда, если хочешь иметь минимальное и предсказуемое потребление, придется поставить резисторы на все ноги, которые могут стать висящим входом. В этом плане хорошо использовать PortB и для приема, и для передачи, задействовав pull-up. Но если младшие биты заняты чем-то еще - облом.
|
|
|
|
|
Feb 10 2007, 19:23
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(SergSit @ Feb 10 2007, 18:16)  Втом то и дело, что порт В все пины задействованы с подключенными резисторами. Поэтому и вынужден использовать порт А и пин 4. На сколько можен вырасти потребление? На десятки, а то и сотни микроампер - легко. Так проверить же нетрудно - программируешь их на ввод, процессор усыпляешь и смотришь потребление. Только смотреть надо внимательно - там эффекты хитрые, вроде бы все нормально, а неудачно коснешься или руку поднесешь - и поползло. Я так, кстати, всегда проверяю свои микропотребляющие разработки, не забыл ли где чего на выход перевести. Если вдруг потребление нестабильное - ищи, где чего оставил болтаться... Но проблема-то в чем - четыре резистора ведь ничего не стоят и практически не занимают места ? А оставлять висящие входы - дурной тон, так же, как забывать поставить блокировочную керамику.
|
|
|
|
|
Feb 11 2007, 01:19
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Цитата(SergSit @ Feb 10 2007, 19:38)  Т.е. на амперы или десятки миллиампер ток не измениться))) К этому устройству требование микропотребление не предъявляеться. Значит наверно всетаки оставлю без резистора. Спасибо всем за советы. странные Вы право... и вывод сделали мягко говоря странный... Этот пин просто просит подтяжку, так как он открытый... напоминает анекдот прямо таки: - что можеш делать: - могу копать; а еще что? - могу не копать... ... эт Ваш случай...
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|