Size: a a a

ESP8266 & ESP32 [RU]

2021 September 11

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
Стартовый бит есть конечно, он в протоколе прописан, но если его ловить принимающей стороной не по прерыванию, а в цикле опроса ног, то можно поймать его в разный момент времени.
Если передающая сторона и принимающая не от одного кварца работают, то это время может быть разным. И можно принимающей стороной поймать его самый конец, или самое начало. Или вообще не поймать. Общей линии clock ведь нету. Из-за не идеального совпадения тактов 2х приборов есть шанс промахнуться и не словить все оставшиеся биты верно. Это может случиться когда угодно, например через несколько дней работы приборов.
Это как часы могут отставать или спешить в год на несколько секунд/минут.
источник

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
Это вариант, когда стартовый бит ловится прерыванием, а не опросом ног. При прерывании мы всегда ведём одинаковый отсчёт от стартового бита, и небольшая разница в тактах невилируется, как на рисунке. При опросе ног - так не получится. Когда успели опрос и и увидеть стартовый бит, тогда и начинаем отсчёт.

И даже прерывания не гарантируют приём всех данных.

Если будет 10 приборов, то они могут начать слать данные одновременно, и тогда мы не успеем словить все прерывания, они могут перекрыть друг друга.

Тут только хардварный UART может дать гарантию. Так как он работает и наполняет свой буффер независимо от основной программы.
источник

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
источник

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
Вот такое может быть, если ловим стартовый бит опросом ног, а не прерыванием.
источник

В

Васька in ESP8266 & ESP32 [RU]
тут два момента: ядро опроса ног, должно заниматься только опросом ног. нагуглить смог только, что на 1бит при 115кбод выделяется 8.6 миксек., грубо говоря, остается выяснить, сколько опросов можно успеть сделать за это время. допустим, если получится прочитать каждый вход по 100 раз за это время, то точность старта будет мало отличаться от прерывания. кроме того, в ардуино можно было прочитать 8 портов за раз, вроде как это самое медленное в этом коде, если так можно в есп, то и эта операция ускорится неслабо.

по поводу 1-2с в сутки: этот алгоритм (если скорости хватит) допускает весьма широкие погрешности скорости, больше процента, а даже 10 с это всего 0.01%
источник

В

Васька in ESP8266 & ESP32 [RU]
вопрос только, хватит ли скорости опросить. допустим, 100 раз каждый вход
источник

В

Владимир in ESP8266 & ESP32 [RU]
Есть платы nodemcu esp32s и esp-01s. Вопрос можно ли как то прошить вторую при помощи первой? Отдельно конвертера usb-ttl у меня нету.
источник

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
Теоретически можно сделать, чтобы один прибор прошивал другой прибор, но для этого надо прошить прибор, который будет прошивать другой прибор.
источник

SZ

Slava Zagaynov in ESP8266 & ESP32 [RU]
Читаю, читаю и никак не пойму что за чудо техники вы хотите сделать? Если это не военная тайна, расскажите нам пожалуйста что вы делаете и для чего.
источник

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
Не военная тайна.
Но пока подробности рассказать не могу. Это коммерческая разработка.
источник

Б

Богдан in ESP8266 & ESP32 [RU]
купи себе домой штук 5, они стоят 1-3$, он тебе 300 раз понадобится
источник

D

Denisio in ESP8266 & ESP32 [RU]
Двачую что запас карман не трёт
источник

В

Васька in ESP8266 & ESP32 [RU]
для ардуины была прошивка для такой фигни.
источник

Б

Богдан in ESP8266 & ESP32 [RU]
ты саму ардуину можешь как просто usb-ttl использовать
источник

SZ

Slava Zagaynov in ESP8266 & ESP32 [RU]
Ну хоть в личку опиши суть проекта. Здаётся мне вы не первый, кто здесь велосипед изобретает.
источник

АЖ

Алексей Жуковский... in ESP8266 & ESP32 [RU]
Если есть подозрения на велосипед, то лучше озвучьте их вы 😁
Если попадёте - я честно признаюсь.
В другом случае не могу озвучить, до проверки гипотезы.
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
отпаять esp или отрезать дорожки от моста на nodemku  и перекинуть на esp01. но это конечно изврат. или написать прошивку тупо транслирующую на node uart0 на uart1
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
на такую задачу ставил SCC2698 но это было давно. сейчас наверно поставил бы трансляторы на новых attiny из uart в i2c. А все дело в том, что даже если делать на прерываниях, то одно ядро на esp будет точно полностью занято этой самой ловлей стартового бита. Из-за немаскируемых прерываний (а может что-то еще вмешивалось) такое решение нестабильно даже на три канала uart. Поэтому протоколом выше пришлось защищаться от ошибок передачи.
источник

Д

Димьян Засипатыч... in ESP8266 & ESP32 [RU]
источник

D

Denisio in ESP8266 & ESP32 [RU]
нркмния
источник