Прочитал статью,решение понравилось: http://we.easyelectronics.ru/AVR/vremya-govorit-s-kamnyami-ili-usart-multi-processor-communication-mode.html
У меня задача, хочу соеденить СТМ32 и примерно 32 ATmega44 способом как в статье. Технически будет плата с мастер микроконтроллером (СТМ32), а дальше проводками к каждому слейву (атмега), думаю 1м максимум. Между платами гальваническая развязка на оптронах. Задача передача без ошибок, скорость 115200, если не получиться то 9600. Думаю как сделать соединения лучше:
1. Использовать микросхеми и интерфейс RS-484/422. - но соединение у меня "Звезда" токое решение неправильное.
2. Использовать буфери на каждом слейве 74HC244.
3. Использовать MAX232 на мастере, и каждом слейве.
4. Не использовать ничего, только провода.
Что можете посоветовать, как лучше?
Спасибо!
P.S. Не знал в какую ветку написать.
соединение микроконтроллеров по UART
Какая задача?
И чо что звезда? 485й в руки, витуху 2 пары. две пары туда, две обратно. Все рады.
И чо что звезда? 485й в руки, витуху 2 пары. две пары туда, две обратно. Все рады.
Задача отправлять дание с мастера на слейвы. 485 - шина , и к ней подключаються девайсы, в конце линии терминатор.
Когда "Зведза" все девайсы подключены в одну точку, и могут возникать проблеммы. Тут подробнее:
http://asutpforum.ru/viewtopic.php?f=59&t=2545
Когда "Зведза" все девайсы подключены в одну точку, и могут возникать проблеммы. Тут подробнее:
http://asutpforum.ru/viewtopic.php?f=59&t=2545
Видимо я хреново объясняю.
Есть у тебя центр, есть лучи. Из центра от мастер контроллера по одной паре идет на энный луч на эный слейв, доходит до него и по второй паре идет обратно, приходит в центр и идет в следующий луч. Понятно?
В результате у твоей звезды топология не звезда, а шлейф. Никогда все устройства не висят так на шлейфе чтобы это не выглядело как развернутая звезда.
Я хоть год инженер АСУТП, но уже несколько объектов сдал и много лулзов повидал.
Мой совет - бери 485й, ModBus RTU, 9600. Бронепаровозно. И терминаторы не забудь на обоих концах. (А еще провод обязательно в экране, и разумеется заземлить в одном месте, где мастер например.)
Есть у тебя центр, есть лучи. Из центра от мастер контроллера по одной паре идет на энный луч на эный слейв, доходит до него и по второй паре идет обратно, приходит в центр и идет в следующий луч. Понятно?
В результате у твоей звезды топология не звезда, а шлейф. Никогда все устройства не висят так на шлейфе чтобы это не выглядело как развернутая звезда.
Я хоть год инженер АСУТП, но уже несколько объектов сдал и много лулзов повидал.
Мой совет - бери 485й, ModBus RTU, 9600. Бронепаровозно. И терминаторы не забудь на обоих концах. (А еще провод обязательно в экране, и разумеется заземлить в одном месте, где мастер например.)
Qic писал(а):Видимо я хреново объясняю.
Есть у тебя центр, есть лучи. Из центра от мастер контроллера по одной паре идет на энный луч на эный слейв, доходит до него и по второй паре идет обратно, приходит в центр и идет в следующий луч. Понятно?
Тоесть,при 32двуг слейвах у меня будеть 32 луча, и в каждого пара для тх и рх?
"Мой совет - бери 485й, ModBus RTU, 9600. Бронепаровозно. И терминаторы не забудь на обоих концах. (А еще провод обязательно в экране, и разумеется заземлить в одном месте, где мастер например.) "
Растояния от мастера примерно 1м,будет гальваническая развязка.
Получаеться терминатор на мастер, и на каждом слейве? Так как соеденения паралельно, не будут терминаторы шунтировать друг друга? Допустим у нас 32 терминатора по 10к, в итоге сумарное сопротивление терминатора 10k/(32 + 1 )
Не tx rx, а шлейф идущий к слейву, и возвращающийся от слейва сразу уходящий к другому. Это топология ШИНА свернутая произвольной кракозяброй. Хоть сколько лучевой звездой. Шина останется шиной со всеми вытекающими.
Топология сети с диф.парой предусматривает установку терминаторов на концах пары. Концов два. Еще раз, это ШИНА, терминаторы ставятся на ПЕРВОМ и ПОСЛЕДНЕМ устройствах на шине.
Терминаторы не допустим, а согласно волновому сопротивлению кабеля. 120 Ом, значит 120 Ом 2 резистора. Один на первое устройство на шине, второй на последнее.
На каждом слейве кроме последнего и мастера - приходящая и уходящая пары соединяются только в самом разъеме, прямо перед ИМС 485го интерфейса.
Также желательно на каждом(!) устройстве иметь "растяжку" шины, 10кОм от А к +5В ИМС 485го интерфейса, и 10кОм от B к минусу (общему проводу) ИМС 485го интерфейса.
По поводу развязки - очень правильно будет если ИМС 485го интерфейса запитана через DC-DC преобразователь от слейва. Лично я себе для новой разработки заказал ADUM1301 для развязки. Пока руки не дошли попробовать, но выглядит многообещающе. Также хочу попробовать MAX13487 - содержит логику автоматического(!) переключения прием/передача. Чтобы например для STM32 сделать переход в режим программирования и обновлять прошивку по RS-485.
P.S. Стандарт RS-485 при корректном исполнении гарантирует работу на расстоянии до 1200м. (на 9600 если мне не изменяет память).
P.S.S. Вот на MAX13487 и ADUM1301 можно сделать автоматический ретранслятор. Но лучше сильно далеко не делать.
Топология сети с диф.парой предусматривает установку терминаторов на концах пары. Концов два. Еще раз, это ШИНА, терминаторы ставятся на ПЕРВОМ и ПОСЛЕДНЕМ устройствах на шине.
Терминаторы не допустим, а согласно волновому сопротивлению кабеля. 120 Ом, значит 120 Ом 2 резистора. Один на первое устройство на шине, второй на последнее.
На каждом слейве кроме последнего и мастера - приходящая и уходящая пары соединяются только в самом разъеме, прямо перед ИМС 485го интерфейса.
Также желательно на каждом(!) устройстве иметь "растяжку" шины, 10кОм от А к +5В ИМС 485го интерфейса, и 10кОм от B к минусу (общему проводу) ИМС 485го интерфейса.
По поводу развязки - очень правильно будет если ИМС 485го интерфейса запитана через DC-DC преобразователь от слейва. Лично я себе для новой разработки заказал ADUM1301 для развязки. Пока руки не дошли попробовать, но выглядит многообещающе. Также хочу попробовать MAX13487 - содержит логику автоматического(!) переключения прием/передача. Чтобы например для STM32 сделать переход в режим программирования и обновлять прошивку по RS-485.
P.S. Стандарт RS-485 при корректном исполнении гарантирует работу на расстоянии до 1200м. (на 9600 если мне не изменяет память).
P.S.S. Вот на MAX13487 и ADUM1301 можно сделать автоматический ретранслятор. Но лучше сильно далеко не делать.
На такое расстояние звезда будет работать, особенно на скоростях указанных автором...
Даешь гарантию?
Не уверен - не обгоняй.
И да, я хочу знать зачем опторазвязка и почему нельзя сделать общую землю?
А если тайна великая - то вероятно там будут помехи или еще что.
Я не буду рассказывать как в одном щите с длиной шины 3м и шестью устройствами (3 из них частотники, два МДВВ и ПЛК) пришлось включать на концах терминаторы, ибо даже на 9600 оно сбоило.
А ведь всё опторазвязаное =)
Не уверен - не обгоняй.
И да, я хочу знать зачем опторазвязка и почему нельзя сделать общую землю?
А если тайна великая - то вероятно там будут помехи или еще что.
Я не буду рассказывать как в одном щите с длиной шины 3м и шестью устройствами (3 из них частотники, два МДВВ и ПЛК) пришлось включать на концах терминаторы, ибо даже на 9600 оно сбоило.
А ведь всё опторазвязаное =)
Система такая: к компютеру по юсб подключен мастер микроконтроллер стм32, дальше гальваническая развязка интерфейста (обычный уарт,или rs-485) нексолько конекторов для подключение слейвов. На каждом слейве тоже думаю гальваническую развязку , мк слейва атмега.
Опторазвязка нужна чтобы не сжечь компютер если на слейв модуль попадет высокое напряжение. опторазвязка на каждом модуле чтобы не сжечь соседний модуль.
Помехи могут быть разными, домустим я буду управлять АС двигателем с напряжением 220V.
Основная задача выбрать интерфейс, вот и решаю что лучше в даном случае рс 485 или обычний уарт(соеденить ка в статье).
Опторазвязка нужна чтобы не сжечь компютер если на слейв модуль попадет высокое напряжение. опторазвязка на каждом модуле чтобы не сжечь соседний модуль.
Помехи могут быть разными, домустим я буду управлять АС двигателем с напряжением 220V.
Основная задача выбрать интерфейс, вот и решаю что лучше в даном случае рс 485 или обычний уарт(соеденить ка в статье).
Сначала мы автомобиль делаем, а потом на Марс летим.
Нет, я не осуждаю, просто надо иметь ввиду что запросы растут.
Гальваническая развязка, шина, терминаторы, минимально возможная скорость, витая пара, экранирование, только диф.сигнал - круче только оптика по световодам.
Вообще кстати говоря все пром. устройства с 485м - обязаны иметь полную его гальваническую развязку, что все адекватные производители пром автоматики и делают.
Я выговорился, каждый сделает выводы для себя сам.
Нет, я не осуждаю, просто надо иметь ввиду что запросы растут.
Гальваническая развязка, шина, терминаторы, минимально возможная скорость, витая пара, экранирование, только диф.сигнал - круче только оптика по световодам.
Вообще кстати говоря все пром. устройства с 485м - обязаны иметь полную его гальваническую развязку, что все адекватные производители пром автоматики и делают.
Я выговорился, каждый сделает выводы для себя сам.
Спасибо!
Жаль что нельзя использовать соеденение звездой, так монтажние удобней, сделал на мастере конекторы и подключаеш сколько нужно слейвов...
Жаль что нельзя использовать соеденение звездой, так монтажние удобней, сделал на мастере конекторы и подключаеш сколько нужно слейвов...
(при 8 битном модбасе) 255 коннекторов на одной плате?! Серьезно? А если адресация 16 битная?
Ну, каждому своё.
Ну, каждому своё.
нет, максимум 32. модбас можно не делать, а сделать как в статье. Штука не для АСУ ТП, и больших растояний нет.
Если нужно соединение точка-точка, то самый правильный вариант - куча rs232. Он специально для этого разрабатывался, и, поэтому, гарантированно будет работать.
Второй правильный вариант - CAN. Его вполне можно использовать и как точка-точка.
Третий правильный вариант - rs485 из stm23 девайса выходит шина, к которой коннектятся остальные.
Неправильные варианты - rs485 звездой. При 1 метре практически 100% работать. Звездой 485 нельзя включать из-за терминаторов - ненагруженная линия начинает звенеть. Это существенно метров эдак после 100 в тихой обстановке.
При непосредственном подключении проводов к контроллеру есть большая вероятность его выжечь.
Второй правильный вариант - CAN. Его вполне можно использовать и как точка-точка.
Третий правильный вариант - rs485 из stm23 девайса выходит шина, к которой коннектятся остальные.
Неправильные варианты - rs485 звездой. При 1 метре практически 100% работать. Звездой 485 нельзя включать из-за терминаторов - ненагруженная линия начинает звенеть. Это существенно метров эдак после 100 в тихой обстановке.
При непосредственном подключении проводов к контроллеру есть большая вероятность его выжечь.
Соеденение точка (мастер) и много точек (слейвы). На стм32 CAN не сложно реализовать, а на AVR сложнее.
Вернуться в «Микроконтроллеры и ПЛИС»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя