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

- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Настройка регистров для входящих сигналов
Перевертите диод D27 и катод каждого подключите к разным портам, а резистор к +5В.
Re: Настройка регистров для входящих сигналов
Дело в том что у меня дефицит портов. Из светодиодов у меня матрица. 6х2 Т.е. 12 светодиодов. Плюс подаю питание в обе стороны, получается 24 светодиода. При быстром переключении горят все.Z_h_e писал(а):Перевертите диод D27 и катод каждого подключите к разным портам, а резистор к +5В.
Хотел сделать 4х4, что бы было 32, но моргание заметно для глаз. 2х6 само то.
Вот полная схемка светодиодов, только без резисторов.
Спойлер

ток через 1 светодиод 6 милиампер, через 6 светодиодов 36мА. Предел в АВР 40мА на ножку. Однако все 6 светодиодов в ветке гореть не будут, или очень редко.
Re: Настройка регистров для входящих сигналов
И помните о пределах на VCC и GND пинах.MEGAORC писал(а):Предел в АВР 40мА на ножку
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: Настройка регистров для входящих сигналов
Спасибо, буду принимать в расчетsmacorp писал(а):И помните о пределах на VCC и GND пинах.



