Приветствую котов. Возникла проблема при реализации кнопок. Обычно я кнопку коротил на корпус, а регистры выставлял PORTB=1; DDRB=1. Однако сейчас появилась задача подачи 20 сигналов на МК при помощи +27В. До 5В опустить напряжение не проблема. Но при выставлении регистров на "вход" (DDRB=0;PORTB=0), Если подать на ножку 5В, она реагирует, однако если сигнал пропал, то она все равно остается с логической единицей. Даже если написать после этого в коде PORTB=0, ножка остается единицей. Если закоротить на корпус, то ножка переходит в 0, однако если отпустить- то снова встает в 1.
При выставлении регистров PORTB=0; DDRB=1. Все отлично работает, однако при симуляции в протеусе показывает на ножках желтый цвет ( то бишь кроткое замыкание). Боюсь оно может спалить МК, если в железе проверять.
Как реализовать данную задачу? Почему лог 1 застревает и не хочет уходить?
Вход висит в воздухе и из-за наводок напряжением на нём определяется как логическая единица.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Последний раз редактировалось smacorp Сб май 21, 2016 13:14:10, всего редактировалось 1 раз.
Заголовок сообщения: Re: Настройка регистров для входящих сигналов
Добавлено: Сб май 21, 2016 13:13:50
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:1 Медали: 1
MEGAORC писал(а):
Обычно я кнопку коротил на корпус, а регистры выставлял PORTB=1; DDRB=1.
Это Вы настроили ножку порта на выход и выставили 1. Т.е. в реальном устройстве, если посадите такую ногу на 0 - выход из строя МК из-за КЗ.
MEGAORC писал(а):
При выставлении регистров PORTB=0; DDRB=1. Все отлично работает, однако при симуляции в протеусе показывает на ножках желтый цвет ( то бишь кроткое замыкание).
И тут КЗ, только ток в обратную сторону течет
MEGAORC писал(а):
Но при выставлении регистров на "вход" (DDRB=0;PORTB=0), Если подать на ножку 5В, она реагирует, однако если сигнал пропал, то она все равно остается с логической единицей.
Видимо она у Вас в воздухе остается, подтяните ее к "земле" резистором.
Не кажется ли Вам , что было бы логично настраивать порт как вход, если он используется как вход??? Покажите ка лучше схему, чего там задумали.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Подтянуть к земле резистором на 1-10K. Вход висит в воздухе и из-за наводок напряжением на нём определяется как логическая единица.
Спасибо большое, разобрался, очень помогли!!
Z_h_e писал(а):
Это Вы настроили ножку порта на выход и выставили 1. Т.е. в реальном устройстве, если посадите такую ногу на 0 - выход из строя МК из-за КЗ.
Делал в железе и все работало. Но может быть МК просто терпит, и это не надолго
Z_h_e писал(а):
Видимо она у Вас в воздухе остается, подтяните ее к "земле" резистором.
Это помогло, спасибо.
Z_h_e писал(а):
Не кажется ли Вам , что было бы логично настраивать порт как вход, если он используется как вход??? Покажите ка лучше схему, чего там задумали.
Т.е. при заземлении тоже вход сделать... И не напрямую, а через резистор. Нужно попробовать...
Схема там проста два МК передают информацию друг на друга по UART. На одном жму кнопки (замыкаю на корпус), на другом выдается 5В на ножках. На второй МК подаются сигналы 27В (которое нужно понизить до 5. Сначала думал резисторы поставить, но тогда ток пойдет большой. Наверно нужно ставить реле. Или какую нибудь микросхемку.), и информация об этих сигналах подается на первый МК, где светятся Светодиоды. ПС. Резисторы использовал только для светодиодов.
Заголовок сообщения: Re: Настройка регистров для входящих сигналов
Добавлено: Сб май 21, 2016 13:57:10
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
MEGAORC писал(а):
Т.е. при заземлении тоже вход сделать... И не напрямую, а через резистор. Нужно попробовать...
Ну конечно только вход, посмотрите в ДШ схему порта, там два ключа, которые подключают ногу к земле или к питанию накоротко (это если порт выход)
MEGAORC писал(а):
На второй МК подаются сигналы 27В (которое нужно понизить до 5.
Глядите на схему, что начертил smacorp. Между портом и включателем поставте еще один резистор 4.5 кОм. И тока большого не будет, и напряжение разделится до нужного.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Между портом и включателем поставте еще один резистор 4.5 кОм. И тока большого не будет, и напряжение разделится до нужного.
Спасибо большое, буду пробовать. И еще раз такая проблема возникла, не подскажете, если светодиоды подключать между двумя портами, проблем не будет. Нужно ли тоже дополнительно резисторы к земле цеплять? У меня такая схемка и нужно менять направление тока, что бы светились разные светодиоды. Естественно тут ножка с +5В настроена на выход, а принимаемая ножка на вход с 0. И меняються друг с другом местами.
Перевертите диод D27 и катод каждого подключите к разным портам, а резистор к +5В.
Дело в том что у меня дефицит портов. Из светодиодов у меня матрица. 6х2 Т.е. 12 светодиодов. Плюс подаю питание в обе стороны, получается 24 светодиода. При быстром переключении горят все. Хотел сделать 4х4, что бы было 32, но моргание заметно для глаз. 2х6 само то. Вот полная схемка светодиодов, только без резисторов. Спойлер ПС. В железе проверял, все работает (пару часов гонял). Но на всякий случай спросил что бы не спалить. ток через 1 светодиод 6 милиампер, через 6 светодиодов 36мА. Предел в АВР 40мА на ножку. Однако все 6 светодиодов в ветке гореть не будут, или очень редко.
_________________ Платы для HLDI - установки лазерной засветки фоторезиста. ФоторезистыOrdyl Alpha 350 и AM 140. Жидкое олово для лужения плат (видео) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения