Size: a a a

2021 March 15

jp

jon pedro in Embedded Group
hold3r
Так а в чем проблема при любом запросе гонять туда и обратно по 32-64 байта со всей нужной информацией?
ну как spi работает. Ты шлёшь мастером слейву данные, мастер, если нет готовых данных от слейва, получает мусор. Слейв не знает сразу что хочет мастер, пока мастер не отошлёт всё что надо, поэтому мастером необходимо ещё одну посылку послать, чтобы получить ответ. Чтобы всё было шикарно, необходимо рассчитать время, когда в худшем случае слейв точно сможет сформировать посылку. Вот эти задержки мне и не нравятся, а так же тот факт, что приходится мастером ещё мусорные посылки считывать
источник

RC

Roman Clor in Embedded Group
Какой у вас камень?
источник

h

hold3r in Embedded Group
jon pedro
ну как spi работает. Ты шлёшь мастером слейву данные, мастер, если нет готовых данных от слейва, получает мусор. Слейв не знает сразу что хочет мастер, пока мастер не отошлёт всё что надо, поэтому мастером необходимо ещё одну посылку послать, чтобы получить ответ. Чтобы всё было шикарно, необходимо рассчитать время, когда в худшем случае слейв точно сможет сформировать посылку. Вот эти задержки мне и не нравятся, а так же тот факт, что приходится мастером ещё мусорные посылки считывать
Что плохого в том что бы считывать мусорные посылки? 🙃
Мастер когда хочет считать тоже мусорный dummy-байт отправляет, вас же это не смущает
источник

jp

jon pedro in Embedded Group
hold3r
Что плохого в том что бы считывать мусорные посылки? 🙃
Мастер когда хочет считать тоже мусорный dummy-байт отправляет, вас же это не смущает
мне кажется это не приличным=)) а так, больше ничего не смущает
источник

h

hold3r in Embedded Group
jon pedro
мне кажется это не приличным=)) а так, больше ничего не смущает
Неприлично заводить новый интерфейс, когда для решения задачи все уже есть )
источник

jp

jon pedro in Embedded Group
hold3r
Неприлично заводить новый интерфейс, когда для решения задачи все уже есть )
С этим согласен =) но из тех соображений, что у меня были, spi подходил, пока не оказалось, что кто-то что-то свое решил на городить и уже как-то смотрится очень криво все)
источник

PB

Petr Belyaev in Embedded Group
Короче, разгоняешь UART до максимума и гоняешь данные по внутреннему модбасу в полудуплексе :D
Или embedded usb (usb в пределах платы; на СТМ зачастую CAN и USB мультиплексируются на одинаковые ноги). И мне тут стало любопытно, имеет ли "embedded CAN", т. е. в пределах платы и без трансивера право на жизнь. Может еще и разогнать его удастся до космических для CAN скоростей, раз там push-pull на обоих концах
источник

PB

Petr Belyaev in Embedded Group
Выглядит субъективно странно, но не особо изучал вопрос. Могу только предполагать
источник

SK

Stas Koynov in Embedded Group
jon pedro
ну как spi работает. Ты шлёшь мастером слейву данные, мастер, если нет готовых данных от слейва, получает мусор. Слейв не знает сразу что хочет мастер, пока мастер не отошлёт всё что надо, поэтому мастером необходимо ещё одну посылку послать, чтобы получить ответ. Чтобы всё было шикарно, необходимо рассчитать время, когда в худшем случае слейв точно сможет сформировать посылку. Вот эти задержки мне и не нравятся, а так же тот факт, что приходится мастером ещё мусорные посылки считывать
а у вас в классическом модбасе тоже есть задержки. они есть всегда. просто делают ручки для подкрутить. а так, чтобы вы ответили до того как я вас что-то спросил, это закрытая технология для нашего уровня развития!
источник

jp

jon pedro in Embedded Group
Stas Koynov
а у вас в классическом модбасе тоже есть задержки. они есть всегда. просто делают ручки для подкрутить. а так, чтобы вы ответили до того как я вас что-то спросил, это закрытая технология для нашего уровня развития!
В можбасе можно и не выдерживать задержку, любое готовое решение спокойно будет работать. Если я правильно помню, протокол модбас ограничивает лишь время между пакетами, а не диктует сколько времени должен быть интервал между пакетами
источник

jp

jon pedro in Embedded Group
И я не говорю пров время ожидания ответа, который обычно можно самому настроить
источник

SK

Stas Koynov in Embedded Group
jon pedro
В можбасе можно и не выдерживать задержку, любое готовое решение спокойно будет работать. Если я правильно помню, протокол модбас ограничивает лишь время между пакетами, а не диктует сколько времени должен быть интервал между пакетами
ну вот почему вы это хотите диктовать? как можно ожидать, что железка на 8Мгц и 800Мгц. будут общаться на равных? эти времена оговаривает производитель. а ты подкручиваешь, чтобы одна не захлебнулась, а другой не волынил
источник

jp

jon pedro in Embedded Group
Stas Koynov
ну вот почему вы это хотите диктовать? как можно ожидать, что железка на 8Мгц и 800Мгц. будут общаться на равных? эти времена оговаривает производитель. а ты подкручиваешь, чтобы одна не захлебнулась, а другой не волынил
Какая связь тут 8мгц и 800мгц? Вы о чем? Ну будет модбас работать на 9600 у мастера, и у слейва такая же скорость должна быть
источник

SK

Stas Koynov in Embedded Group
jon pedro
Какая связь тут 8мгц и 800мгц? Вы о чем? Ну будет модбас работать на 9600 у мастера, и у слейва такая же скорость должна быть
а при чем тут 9600. вот я вам передал чтение регистров. вы не ответили за 200микросекунд. я вам шлю новый запрос. вы опять не ответили и что? а если вы скажите, что ответ будет в пределах 300-500 мкс. тогда я вас просто досил...
источник

A

Aleksandr Zharov in Embedded Group
jon pedro
В можбасе можно и не выдерживать задержку, любое готовое решение спокойно будет работать. Если я правильно помню, протокол модбас ограничивает лишь время между пакетами, а не диктует сколько времени должен быть интервал между пакетами
как раз наоборот. интервал между пакетами может быть любой, но не менее времени , эквивалентной 3.5 символов в битовой скорости
источник

jp

jon pedro in Embedded Group
Aleksandr Zharov
как раз наоборот. интервал между пакетами может быть любой, но не менее времени , эквивалентной 3.5 символов в битовой скорости
Я это и имел в виду. Есть максимум, но не фиксированная величина
источник

SK

Stas Koynov in Embedded Group
Aleksandr Zharov
как раз наоборот. интервал между пакетами может быть любой, но не менее времени , эквивалентной 3.5 символов в битовой скорости
при этом он при скорости выше 19200 фиксирован. но на это все плюют, для увеличения траффика
источник

SK

Stas Koynov in Embedded Group
jon pedro
Я это и имел в виду. Есть максимум, но не фиксированная величина
не максимум а минимум!
источник

jp

jon pedro in Embedded Group
Stas Koynov
а при чем тут 9600. вот я вам передал чтение регистров. вы не ответили за 200микросекунд. я вам шлю новый запрос. вы опять не ответили и что? а если вы скажите, что ответ будет в пределах 300-500 мкс. тогда я вас просто досил...
Для этого обычно выбирается время, не ответ в течении которого расценивается мастером как не ответ. Это в стандарте не прописывается, вроде как. Во всяком случае во всех готовых решениях можно выбрать у плк и т.п время, за которое им слейв должен ответить
источник

SK

Stas Koynov in Embedded Group
ну вот видите, уже появились ручки, где мы можем что-то там настроить...
источник