Подскажите пожалуйста коды программ МК (для Bascom-AVR) для связи двух устройств по RS-485, к примеру, ATMega8 <> RS-485 <> ATMega16.
Заранее благодарю.
Те же что и через USART.ZN-GAME писал(а):Но не понял какие команды/операции отвечают конкретно за отправку и прием по RS-485.
не обязательно - можно поставить на выход поставить 2 передатчика и гнать SPIМурик писал(а):Те же что и через USART.
Как правило, по технологии RS-485 строят сети, в которых есть одно ведущее устройство (master) и несколько ведомых (slave), и обмен выглядит так - master послал запрос конкретному slave, обращаясь к нему по уникальному адресу. Этот запрос получают все slave сети, но отвечает только тот, чей адрес совпадет с адресом, указанным в пакете запроса. Только при такой реализации сети не встает проблема арбитража.AlekseyV писал(а):Размышляю над способом реализации общения между устройствами, соединенными между собой по RS-485 - как согласовать временные интервалы отправки пакетов?
В этом случае master последовательным опросом всех возможных адресов должен определить наличие устройств в сети. Ввести в протокол обмена короткую команду инициализации или что-то в этом роде, которую посылает master, и на которую slave должен дать короткий ответ.AlekseyV писал(а):К примеру, кол-во подключаемых устройств периодически меняется, сегодня 5 устройств, завтра 30.
Бродкастовыми пакетами лучше делать те, на которые не нужно отвечать. Например, команда установки времени. Её можно сделать бродкастовой, ответ на неё не требуется. Или какая-нибудь команда начала измерения.AlekseyV писал(а):Мастер отправил пакет (бродкаст) и чтобы все одновременно не начали отправлять обратный ответ, а поочередно.
Пожалуй, то, что мне и нужно.Alkul писал(а):Ввести в протокол обмена короткую команду инициализации или что-то в этом роде, которую посылает master, и на которую slave должен дать короткий ответ.
Master создает в своей памяти таблицу занятых адресов из всего адресного пространства, можно тут же указать идентификаторы устройств, если они есть. И периодически проверять "свободные" адреса на предмет появления новых устройств с такими адресами.