и обратно по 32-64 байта со всей нужной информацией?
ну как spi работает. Ты шлёшь мастером слейву данные, мастер, если нет готовых данных от слейва, получает мусор. Слейв не знает сразу что хочет мастер, пока мастер не отошлёт всё что надо, поэтому мастером необходимо ещё одну посылку послать, чтобы получить ответ. Чтобы всё было шикарно, необходимо рассчитать время, когда в худшем случае слейв точно сможет сформировать посылку. Вот эти задержки мне и не нравятся, а так же тот факт, что приходится мастером ещё мусорные посылки считывать
Что плохого в том что бы считывать мусорные посылки? 🙃 Мастер когда хочет считать тоже мусорный dummy-байт отправляет, вас же это не смущает
мне кажется это не приличным=)) а так, больше ничего не смущает
Неприлично заводить новый интерфейс, когда для решения задачи все уже есть )
С этим согласен =) но из тех соображений, что у меня были, spi подходил, пока не оказалось, что кто-то что-то свое решил на городить и уже как-то смотрится очень криво все)
а у вас в классическом модбасе тоже есть задержки. они есть всегда. просто делают ручки для подкрутить. а так, чтобы вы ответили до того как я вас что-то спросил, это закрытая технология для нашего уровня развития!
В можбасе можно и не выдерживать задержку, любое готовое решение спокойно будет работать. Если я правильно помню, протокол модбас ограничивает лишь время между пакетами, а не диктует сколько времени должен быть интервал между пакетами
ну вот почему вы это хотите диктовать? как можно ожидать, что железка на 8Мгц и 800Мгц. будут общаться на равных? эти времена оговаривает производитель. а ты подкручиваешь, чтобы одна не захлебнулась, а другой не волынил
Какая связь тут 8мгц и 800мгц? Вы о чем? Ну будет модбас работать на 9600 у мастера, и у слейва такая же скорость должна быть
а при чем тут 9600. вот я вам передал чтение регистров. вы не ответили за 200микросекунд. я вам шлю новый запрос. вы опять не ответили и что? а если вы скажите, что ответ будет в пределах 300-500 мкс. тогда я вас просто досил...
как раз наоборот. интервал между пакетами может быть любой, но не менее времени , эквивалентной 3.5 символов в битовой скорости
Я это и имел в виду. Есть максимум, но не фиксированная величина
при этом он при скорости выше 19200 фиксирован. но на это все плюют, для увеличения траффика
не максимум а минимум!
Для этого обычно выбирается время, не ответ в течении которого расценивается мастером как не ответ. Это в стандарте не прописывается, вроде как. Во всяком случае во всех готовых решениях можно выбрать у плк и т.п время, за которое им слейв должен ответить
Обсуждают сегодня