Anonymous
если у вас всего два МК - ненужно никаких мульти мастер, простой обмен - мастер отправил пакет - слейв ответил - ВСЕ
А если CRC не сошёлся? Тогда нужно повторно запросить битый пакет и фуллдуплекс сразу исчезает
Василий
задача полностью не описана - навряд ли это будет обмен мегабайтнымит файлами между МК так что предположительно десяток байт туда - десяток обратно - неверная CRC просто - запрос очередных десяти байт, или тех же
Василий
да и вообще пофиг чем обмениваться - там логика примитивная - запрос - ответ
Александра
Всем привет. Помогите разобраться. ESP8266, adruino mega or mega. Первый раз пишу под espшку, подключен через usb, свитодиод припаян на 8 порт(тускло горит на данный момент) При заливке скетча выдает вот такую ошибку avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_getsync(): timeout communicating with programmer Заливаю через юсб, ноут, win7.
Александра
сам скетч
Василий
Василий
плюс минус - похоже на Modbus
Anonymous
нет, все проще "код команды + тело команды + crc"
Если crc не сошелся а в приемном буфере уже лежит начало следующего пакета. Там каша получается.
Василий
никакой каши - пришел пакет - посмотрели что за пакет по коду - разобрали - ответили
Александра
stk500v2 - вроде как avr программатор?
Я первый раз этим занимаюсь, если честно не понимаю вашего вопроса
SetPf
Либо ждать пока придет ответ.
Василий
конечно ждать - идеалогия же запрос-ответ
SetPf
Ждать пока придет ответ - хрень какая то, разве что совсем редкий обмен.
Andy
Я первый раз этим занимаюсь, если честно не понимаю вашего вопроса
Возможно имеет смысл почитать https://esp8266.ru/arduino-ide-esp8266/
Василий
Ждать пока придет ответ - хрень какая то, разве что совсем редкий обмен.
мда уж.. может стоит хоть какие то протоколы посмотреть - это обще принятая практика - отправляем запрос - ждем ответ
SetPf
Ну и у меня вопрос все равно стоит что необходимо что бы оба устройства имели возможность начинать обмен.
Василий
все давно регламентировано 3,5 длины байта - считается концом пакета
SetPf
мда уж.. может стоит хоть какие то протоколы посмотреть - это обще принятая практика - отправляем запрос - ждем ответ
На чем то совсем допотопном или когда идет управление глупым слейвом да. Но тип я выше сказал, что у меня оба устройства могут обмен начать. Но вы начали убеждать, что мне это не надо =)
Anonymous
Ну и у меня вопрос все равно стоит что необходимо что бы оба устройства имели возможность начинать обмен.
Модбас , хоть он и избыточен для двух контроллеров, но эти вопросы в нем решены
Andy
Кажется вырисовываются требования к протоколу - асинхронный, с разрешением коллизий, с контролем целостности. :)
SetPf
Кажется вырисовываются требования к протоколу - асинхронный, с разрешением коллизий, с контролем целостности. :)
Я не заморачивался с описанием, т.к. ожидал что ответят одной фразой, тип есть вот вот и вот, посмотри может че понравится\ подойдет =)
Anonymous
Кажется вырисовываются требования к протоколу - асинхронный, с разрешением коллизий, с контролем целостности. :)
Ну и получается что это требования к любому не текстовому протоколу на уарте 🙂
Anonymous
Ну почти любому, если не брать адресацию
SetPf
https://github.com/min-protocol/min/wiki Нагуглил такую штуку. Очень похоже на то что надо.
Василий
куда катиться мир - неизвестно, - никто не хочет думать, разбираться, понимать...
Василий
вы туда еще TCP/IP стек засуньте - а ЧЁ, с пушки по воробьям - самое оно ))
SetPf
куда катиться мир - неизвестно, - никто не хочет думать, разбираться, понимать...
Жопоголизм же. Можно писать в каждое устройство новый велосипедный протокол, а можно писать прикладную его часть. Недовольны тем, что не хочу изобретать колесо же.
Yuriy
есть protobuf портированный для esp - еще поверх его помазать
Василий
Жопоголизм же. Можно писать в каждое устройство новый велосипедный протокол, а можно писать прикладную его часть. Недовольны тем, что не хочу изобретать колесо же.
лучше сразу - сообщить - какая у вас цель, тогда и ответы будут - уместны. - Разобраться изучить - понять - или состряпать устройство выходного дня.
Anonymous
На мой взгляд, цель понятна по первым сообщениям
Yuriy
https://ru.wikipedia.org/wiki/Protocol_Buffers - серьезно кстати
Andy
Такое на форум выносят, а не в конфу. Я ожидал быстрого ответа (вот вот и вот, выбирай).
Я например так и не понял какие требования к протоколу, а потому ответ простой - выбирай любой :)
SetPf
https://ru.wikipedia.org/wiki/Protocol_Buffers - серьезно кстати
Я чет открыл, увидел сериализация, испугался и закрыл. Жирновато же будет не?
Yuriy
Я чет открыл, увидел сериализация, испугался и закрыл. Жирновато же будет не?
специализация - это процесс никак жирность не определяющий - а как без нее то? Она в любом случае будет - надо ведь передать данные через серийный порт, он не может объекты передавать. Жирно будет xml использовать для этого - и везде ns указывать для каждого тега . вот тогда жир покапает
SetPf
у вас же ESP32 ? с ардуино IDE?
У меня 8битный контроллер с довольно жирной программой и довольно глубоко вросшей архитектурой обмена данных\команд. И надстройка из ECП, призванная предоставить высокоуровневые или тяжелые в реализации фичи.
SetPf
И переписывать в нее надо дофига.
Yuriy
По пинам не потянет.
есть мулитиплексаторы всего и вся
SetPf
В обоих умеет =)
romanetz
а дальше гитхаб в помощь, тысячи их
romanetz
https://github.com/mengguang/minihdlc
romanetz
как пример
SetPf
Во, спасибо буду смотреть тоже.
Yuriy
а чего делает - вообще мини такой... просто бьет на фреймы... crc считает и всё?
Василий
не нужно оно тут все - для этой примитивной задачи
Yuriy
https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
а там нифига не такое - там mini
Василий
"код команды+тело команды+crc" например 01 - получить данные настроек 02 - отправить данные настроек 03- получить данные от датчиков 04- установить выходы и весь баян
Yuriy
"код команды+тело команды+crc" например 01 - получить данные настроек 02 - отправить данные настроек 03- получить данные от датчиков 04- установить выходы и весь баян
как раз это - вот в mini и всё "код команды+тело команды+crc" - низкоуровневый такой :) надо переписывать под esp - к гадалке не ходи- надежности не будет - франкеншейн получится
romanetz
https://github.com/mengguang/ArduinoHDLC
romanetz
"This Project is based on https://github.com/jarkko-hautakorpi/Arduhdlc . I changed some function name, make code more clean and added one example. The example is mainly tested on ESP8266 Arduino 2.3.0 environment."
Yuriy
Вы снова утверждаете, что инициирование с двух устройств не нужно и от этого отталкиваетесь
код команды - инициализация - для выполнения инициализации - предусмотреть надо
romanetz
если hdlc не слишком сложный/объёмный по футпринту - чего бы и его не запилить?
romanetz
но я не настаиваю, конечно
Yuriy
tyua протокол обмена между mcu и вторым (не знаю тоже mcu но проще - как раз как тут) можно посмотреть - там как раз один проц с другим общаются - у них работает - и там точно есть инициализация :)
Yuriy
https://images.tuyacn.com/smart/aircondition/Guide-to-Interworking-with-the-Tuya-MCU.pdf
Yuriy
Василий
Вы снова утверждаете, что инициирование с двух устройств не нужно и от этого отталкиваетесь
что такое - "инициирование с двух устройств" ?? одновременная передача или что еще за инициирование?