Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 11:42:42

Привет котаны! Нужна консультация, т.к. в этом вопросе не особо знаний/пониманий. Нужно чтобы один мк принимал сигнал низкого уровня длительностью 1сек. от другого мк. Есть готовое устройство на Atmega8 на картинке обозначен МК2. Настройка его порта - вход с подтягивающим резистором, плюс указана обвязка вокруг порта на рисунке из резистора на VCC, диода и конденсатора. Хочу дополнить расширить МК2 приставкой на МК1 тоже с использование Atmega8, выход с подтяжкой к питанию VCC. Смысл по событию МК1 будет выдавать импульс низкого уровня длительностью 1сек. который и будет ловить МК2. Вопрос нужна ли еще какая либо доработка по обвязке вокруг порта МК1? ...но обвязку у МК2 не хотелось бы трогать!
Вложения
мк1 мк2.jpg
(59.96 KiB) Скачиваний: 111
Последний раз редактировалось neid Чт май 26, 2022 11:51:04, всего редактировалось 1 раз.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 11:50:51

если речь о передаче 1ных импулсоф не вижу причин неработы узла вот если нудна оганизовать обмен по обшей шине с реверсом то там боюсь все не так просто будет...и без чегото вроде мултимастер шины CAN не обойтись

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 11:54:37

если речь о передаче 1ных импулсоф не вижу причин неработы узла

нет просто импульс, ну максимум может увеличу его длительность низкого уровня с 1сек. до 3-5 минут, и все. Тут задает уже готовое устройство на МК2, куда лезть не хотелось бы.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 12:06:51

ну так в чём трудность-то? всё, что от Вас требуется - это определиться с моментом наступления события, по какому из фронтов сигнала его регистрировать то есть, смотреть документацию на тему External Interrupt pin configured as “Interrupt on Rising Edge, Falling Edge, or Any Logic Change on Pin”
Если хочется очень надёжно - регистрируете оба фронта, то есть:
1. настраиваете порт на Interrupt on Falling Edge
2. как только это событие произошло запускаете таймер и перенастраиваете порт на Interrupt on Rising Edge.
3. как только пришло новое событие останавливаете таймер
4. смотрите, сколько насчитал таймер, если около 1 секунды - считаем сигнал нашим, предпринимаем действия и возвращаемся к пункту 1.

В случае очень большого расстояния озаботиться аппаратной реализацией связи, так как в зависимости от условий на этом проводке чёрти-что может оказаться

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 12:18:11

ну так в чём трудность-то? всё, что от Вас требуется - это определиться с моментом наступления события, по какому из фронтов сигнала его регистрировать то есть, смотреть документацию на тему External Interrupt pin configured as “Interrupt on Rising Edge, Falling Edge, or Any Logic Change on Pin”
Если хочется очень надёжно - регистрируете оба фронта, то есть:

Меня обвязка вокруг порта МК1 интересует и все! МК2 на ATmega8, устройство уже созданное и очень гибкое по настройке и обработке сигнала, его не нужно перенастраивать или дописывать код. Так уж расписал более подробно.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 12:44:21

ну тогда воткните супрессор хотя бы, если предполагается на линии возможность бяки. Вы ж не написали среду обитания, может это всё в пределах спичечного коробка, тогда и Ваши детальки не нужны, а может линия с километр длиной да ещё в грозовом районе, тогда вообще иной подход желателен.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 14:30:26

Вопрос нужна ли еще какая либо доработка по обвязке вокруг порта МК1? ...но обвязку у МК2 не хотелось бы трогать!

Да нужна… нужно в линию (под вопросом) поставить резистор 130 Ом… то есть, между конденсатором МК2 и выводом МК1. Если убрать конденсатор, то резистор не нужен.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 14:38:08

нужна ли еще какая либо доработка по обвязке вокруг порта МК1?

В общем случае - не нужна. А конденсатор вообще убрать.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 16:11:04

Если по минимуму, то внешние элементы не нужны вообще. Если питание МК1 и МК2 раздельное, то нужно программно организовать открытый коллектор на МК1. Понимаете?

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 16:33:45

Если по минимуму, то внешние элементы не нужны вообще. Если питание МК1 и МК2 раздельное, то нужно программно организовать открытый коллектор на МК1. Понимаете?

Питание от одного источника 12в, далее у каждого своя КРЕНка на 5в. Длинна этой линии 10см максимум! Не совсем пока, почитаю))

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 16:35:13

Простенького 4N35 (оптрона) или какого другого вполне достаточно для любого варианта питания...
:roll:

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 16:37:09

ну тогда воткните супрессор хотя бы, если предполагается на линии возможность бяки. Вы ж не написали среду обитания, может это всё в пределах спичечного коробка, тогда и Ваши детальки не нужны, а может линия с километр длиной да ещё в грозовом районе, тогда вообще иной подход желателен.

Ну возможно я тут и упустил что то, вообще длинна от платы до платы от 5см до 10см, все... До ближайшей проводки 220в более 1м.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 16:39:30

neid,
У вас там нормальная рабочая схема. Просто конденсатор уберите и всё.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 16:39:57

Питание от одного источника 12в, далее у каждого своя КРЕНка на 5в. Длинна этой линии 10см максимум! Не совсем пока, почитаю))

Если один БП, то не нужно никаких изгалений. И никаких доп. элементов.

Re: взаимодействие 2х atmeg8 по одному порту

Чт май 26, 2022 23:31:32

Питание от одного источника 12в, далее у каждого своя КРЕНка на 5в. Длинна этой линии 10см максимум! Не совсем пока, почитаю))

Если обвязка МК2 сделана только для подключения МК1 (без дополнительной периферии), то по сути она лишняя. Если настроить вывод МК2 на вход с подтяжкой внутреннего резистора, то этого будет достаточно. Настройка вывода МК1 останется по умолчанию (настроен на вход без подтяжки внутреннего резистора). Для управления данной линией (прижатие её к общей шине) по какому-то событию, у МК1 потребуется всего лишь перевести данный вывод из режима входа в режим выхода и вывод МК2 будет прижат к общей шине. Затем переводите вывод МК1 вновь на вход и линия (вывод МК2) отпускается. При такой конфигурации выводов дополнительной обвязки не требуется, даже в том случае если бы у Вас один МК питался бы от 3,3 В, а другой от 5 В. :beer: Единственное условие – общая шина у обоих МК должна быть соединена. А так как питание у Вас осуществляется от одного общего БП, то условие с соединением общих шин обоих МК выполнено. :)

Re: взаимодействие 2х atmeg8 по одному порту

Пт май 27, 2022 10:18:07

Если обвязка МК2 сделана только для подключения МК1 (без дополнительной периферии), то по сути она лишняя.

МК2 - делалось универсальным устройством, и входы у МК2 можно настроить на сколько это позволяет даташит Atmega8, но плата когда то уже была разведена именно под такую обвязку и стоить давно в корпусе, лазить сейчас туда и кроить что то там не особо хотелось. Я повторял это устройство по стопам автора лет пять назад.

Настройка вывода МК1 останется по умолчанию (настроен на вход без подтяжки внутреннего резистора). Для управления данной линией (прижатие её к общей шине) по какому-то событию, у МК1 потребуется всего лишь перевести данный вывод из режима входа в режим выхода и вывод МК2 будет прижат к общей шине. Затем переводите вывод МК1 вновь на вход и линия (вывод МК2) отпускается. При такой конфигурации выводов дополнительной обвязки не требуется, даже в том случае если бы у Вас один МК питался бы от 3,3 В, а другой от 5 В. :beer: Единственное условие – общая шина у обоих МК должна быть соединена. А так как питание у Вас осуществляется от одного общего БП, то условие с соединением общих шин обоих МК выполнено. :)

Действительно простое решение :beer: Спасибо!
Котаны :)) спасибо ВСЕМ не равнодушным и откликнувшимся!

Re: взаимодействие 2х atmeg8 по одному порту

Пт май 27, 2022 12:29:31

стоит давно в корпусе, лазить сейчас туда и кроить что то там не особо хотелось.

Если обвязку МК2 не трогать, то поставь резистор 130 Ом и всё. Резистор нужен для ограничения тока при разряде конденсатора через порт МК1. Чтобы хоть и кратковременно но всё же не перегружать вывод МК1.

Re: взаимодействие 2х atmeg8 по одному порту

Пн сен 18, 2023 14:07:29

Всем привет, еще раз подниму данную тему! По вашим советам собрал, добавил резистор в 130ом и все это у меня прекрасно работает уже второй сезон. Но понадобилось поставить на место МК1 не атмегу8, а ESp8266, питание конечно же у ней 3.3V, вопрос что лучше сделать снизить питание MK2 atmga8 не могу, там питать только 5В. Преобразователь уровней с алишки поставить на полевых транзисторах, хотя эта схема является односторонней и работает 5в выход - 3.3в вход((( просто увеличить резистор вместо 130Ом поставить 10кОм или оптрон наверное лучше.

Re: взаимодействие 2х atmeg8 по одному порту

Пн сен 18, 2023 16:26:42

neid писал(а):Преобразователь уровней с алишки поставить на полевых транзисторах, хотя эта схема является односторонней и работает 5в выход - 3.3в вход
Они вообще то двунаправленные. Еще лет 20 назад ей уже согласовывали уровни 3,3 контроллеров и 5В например памяти 24C или тюнеров, аудиопроцессоров в теликах.

Re: взаимодействие 2х atmeg8 по одному порту

Пн сен 18, 2023 21:15:42

Они вообще то двунаправленные.

Да, извиняюсь, пересмотрел схему, статейку прочитал на easyelectronics. Вопрос остался еще, по поводу если просто поставить резистор 10кОм?
Ответить