Сергій
почитайте по запросу "uart network"
Сергій
ещё можно задействовать SPI шину, ESP - мастер, остальные - slave, но нужно много выводов на CS
Сергій
или даже I2C, но она медленне
Evgeniy
Коллеги, возник интересный вопрос, может кто пробовал такие извращения.
Всего описанного еще не существует, но есть проект.
6 СТМ-к, стоят рядом, каждая имеет свою задачу. Есть ECP, которая по сети получает команды и сливает команды в уарт.
Все 6 СТМ включены в этот уарт, все получают эти команды и разбирают свои. Сами в уарт ничего не гонят.
С программной точки зрения мне все просто и понятно, но есть сомнения на предмет того, что параллельное подключение по уарт может не работать по какой либо причине с точки зрения железа.
Никто не подключал параллельно несколько устройств?
Всё будет работать как есть, нюанс только во входной емкости RX пина и теоретически, при определенном битрейте и кол-ве устройств - будут завалены фронты из-за входной емкости - система работать перестанет.
Евгений
Evgeniy
Евгений
Да вообще без разницы, для надежности хоть 1200 можно. Но я думаю 9600
Сергій
по идее если не делать двунаправленную шину, TX мастера будет работать в режиме push pull и с фронтакми будет проще
Evgeniy
будет рабоать и так, без шаманств
Сергій
Evgeniy
Сергій
там есть штатные решения для адресации устройств
Евгений
может всё же I2C, если такая скорость?
Просто опция с WiFi планируется дополнительной (не для всех) и на плату изначально не распаивается чип ЕСп, а распаивается гнездо под ЕСП-01/07 и тому подобных (благо у них распиновка одинаковая). Удобно - надо WiFi, воткнул платку в гнездо и готово. А у них только uart.
Сергій
на ESP-01 можно сделать I2C на io0/io2
Сергій
и uart0 остаётся свободным для отладки и прошивки
Сергій
io0 по идее можно сделать SDA
Evgeniy
Правильно - оставить UART и режим master-slave, если сильно нужно - диоды поставить на TX
Сергій
> I2C гораздо сложнее
спорное утверждение, учитывая что есть стандартные библиотеки под все МК, у которых есть TWI/I2C
Евгений
io0 по идее можно сделать SDA
Лень😎
Прошивка для ЕСП уже давным-давно отработана и оттестирована на десятках контроллерах, на СТМ, атмегах и на ГД кстати тоже. Но только в режиме т есп - 1 контроллер.
И прошивки на контроллерах тоже уже готовы под уарт. А тут все переделывать на и2с
Сергій
и I2C изначально под много устройств, а UART чаще под PPP
Andrey
Еще можно применить модбас, где есть адресация и контрольные суммы
Сергій
Andrey
И отлаживать его в разы проще, можно шпиона повесить на шину
Сергій
если RS-485 - да, если UART и в обе стороны - чуть сложнее, если не использовать лог.анализатор)
Сергій
Сергій
Сергій
Evgeniy
Еще таймауты - ограничивают пропусную способность
ok-home
Сергій
Сергій
Сергій
я пробывал выкидывать таймауты и тестить
Evgeniy
Да как же годами датчики на i2c работают то ?
Если программная реализация I2C -то нет вопросов. Обычно там нет вечных циклов. Если аппаратная - сплошь везде - вечные циклы, аппаратные стейт машины, где не предусмотрен сброс в случае ошибок на линии.
Сергій
Andrey
Evgeniy
я пробывал выкидывать таймауты и тестить
Так и правильно, так и должно быть. Ничего удивительного нет. Для разделения кодом -байт стаффинг, там уже и асинхронный обмен можно сделать, если нужно - из коробки.
Сергій
просто смысл в том, что стандартные протоколы, используются в промышленных решениях и нормально там живут
Сергій
то что ошибки в отдельных библиотеках - это проблемы этих библиотек
Evgeniy
обычно аппаратный модуль I2C нужно ребутить))
Сергій
Dima
модбас топорное простое решение - пользуюсь уже 4 года и проблем нет
Евгений
Ну вы поняли аллегорию)
Dima
да старое и далеко не лучшее
Сергій
Evgeniy
Сергій
да, косяк
но modbus позволяет восстановить работу без перезагрузки всей системы
Евгений
Evgeniy
Сергій
ведомому приходит, например
данные, crc, id (от следующего пакета)
Сергій
он это пытается анализировать, фигня,
Evgeniy
Не бывает таких косяков, если внешних помех нет
Сергій
дальше так же
Evgeniy
А их нет!)
Сергій
а они есть
Сергій
холодильник, кондей, ещё что-то мощное
Евгений
он это пытается анализировать, фигня,
Вы говорите с точки зрения модбаса опять. Либо рукописных протоколов типа модбаса.
Повторю - если посылка искажена, то ведомый ее просто игнорирует. И ничего страшного не будет. Ведущий повторит ее через какое то время (скажем через секунду или 10 секунд.
У нас тут не ракета, даже и минутная задержка не критична.
Сергій
Evgeniy
хм, а где-то была же тема про самодельную самонаводящуюся ракету? не помните где? в рунете было
Сергій
ведомый повтор словит снова с ошибкой, т.к. для него произошло выпадение байта по пути следования
Evgeniy
сначала найдите помехи там, которых нет 😁
Сергій
Евгений
Сергій
а дальше идёт рассинхронизация
Сергій
сейчас нарисую)
Евгений
Да я понимаю о чем вы. Просто вы не понимаете как это обходится
Сергій
как?)
Сергій