Подключение Pro-Mini и ESP8266 с помощью последовательного порта
Я хочу создать систему, состоящую из WEMOS mini & Pro-Mini sharing info с использованием последовательного ( один MCU предназначен для ввода-вывода react, а второй для команд MQTT ) совместного использования той же потребляемой мощности. Из того, что я читал в учебниках, при загрузке последовательные провода должны быть отключены, чтобы выполнить загрузку.
А) верно ли, что при загрузке последовательный должен быть отключен?
B) есть ли способ подключения 2 MCU в любое время, включая перезагрузку при необходимости ( например, сбои питания ) ?
@Guy . D, 👍0
Обсуждение2 ответа
Лучший ответ:
А) правда ли, что при загрузке последовательный порт должен быть отключен?
Нет, это не так. Однако если вы используете Serial
для связи на Pro Mini, вам нужно будет отключить ESP8266, чтобы запрограммировать Pro Mini, так как это будет мешать последовательной связи с ПК.
B) есть ли способ подключения 2 MCU в любое время, включая перезагрузку при необходимости ( например, сбои питания ) ?
Учитывая, что А) есть а, то Б) не имеет значения. Он просто загрузится.
Единственное предостережение заключается в том, что ESP8266 будет выдавать некоторые загрузочные сообщения из последовательного режима, когда он загружается на 74880 бод, поэтому вы должны быть в состоянии справиться с этим шумом в любом протоколе, который вы разрабатываете между двумя платами.
Возможно, ваша первая фраза была тем, что я вспомнил, когда требовалось отсоединить провода. Что касается серийного "шума" - вы правы... некоторые маневры были сделаны для преодоления сапог ESP8266, @Guy . D
А) правда ли, что при загрузке последовательный порт должен быть отключен?
Не совсем, если вы внимательно относитесь к тому, что с чем и когда общается. Что вы защищаетесь от нескольких вещей, управляющих одним и тем же соединением, и т. Д. И вы не возражаете, что большую часть времени пребываете в замешательстве. И что вы держите одну плату в режиме сброса, в то время как другая программируется.
Б) есть ли способ, чтобы 2 микроконтроллера могли быть подключены в любое время, включая перезагрузку при необходимости ( например, при отказе питания ) ?
Если у вас нет веских причин избегать этого, возможно, вам лучше использовать I2C между ними. Затем ваш Serial остается один на обеих платах, чтобы вести себя так, как он обычно ведет. Вам не нужно разбираться в конфликтах между платами, пытающимися использовать последовательный канал для разговора друг с другом, и пытаться использовать их последовательные приемопередатчики для разговора с хостом и выводом, что результаты от хоста и обеих плат все видят трафик от разных вещей. И у вас есть открытая настройка коллектора между двумя платами, что делает независимое питание их несколько менее проблематичным.
Если вы попытаетесь использовать Pro Mini и ESP8266 USARTs, соединенные вместе, у вас должно быть некоторое последовательное сопротивление в соединении между FTDI (или чем-либо еще) TX-сигнал и RX-сигнал на Pro Mini. Или между Pro Mini RX и WEMOS TX. Другими словами, везде, где у вас есть два контакта, приводящие в движение то, что в противном случае было бы одним и тем же узлом в цепи, вам нужно некоторое ограничение тока в случае, если они движутся в противоположных направлениях, как это произойдет, если вы соедините их последовательные соединения вместе. Если вы посмотрите на мини-схему Wemos D1 или схемы Arduino UNO, Nano и т. Д., то увидите, что по этой причине они вставили туда некоторое сопротивление. Если вы посмотрите на мини-схему Pro, вы увидите, что линия FTDI TX подключена непосредственно к приемнику AVR.
Ниже вы спросили, зачем вам нужно соединение FTDI. Если вы не программируете Pro Mini и не используете его, то вы этого не делаете.
Однако, если вы думаете, что сможете запрограммировать Pro Mini, используя последовательный трансивер на Wemos и связь между ними, это не сработает. TX последовательного приемопередатчика Wemos будет подключен к его RX ESP8266, который будет подключен к TX Pro Mini (не RX), потому что проект работает нормально, ему нужно получать данные от Pro Mini на этом выводе. Если вы позволите последовательному приемопередатчику Wemos говорить с Pro Mini RX, вам потребуется подключить его таким образом, чтобы две платы не могли использовать свои USARTs для разговора друг с другом. Эти два использования совместимы только с двумя различными схемами проводки.
Я предполагаю, что ваш Pro-Mini-это версия 3,3 В. Если это версия 5V, вы действительно не должны подключать свой TX непосредственно к ESP8266., @timemage
А) Я не думал использовать I2C.... Как я могу поделиться text/JSON таким образом ? Б) Зачем нужен FTDI ? Не могу ли я подключить Tx/Rx напрямую ? ( на моем испытательном стенде используется Нано или Про-Микро ), @Guy . D
I2C не волнует, что вы посылаете по нему. Конструкция библиотеки проводов Arduino такова, что ее нужно разбить на небольшие куски. Я постараюсь ответить на вопрос "Почему FTDI должен это делать" (в той мере, в какой я его понимаю) в ответе. Что касается *"Не могу ли я подключить Tx/Rx напрямую"*: в общем случае вы не подключаете сигналы 5 В и 3,3 В непосредственно друг к другу, особенно выход 5 В к входу 3,3 В; иногда вы можете это сделать, но не всегда. Это то, о чем вы можете написать [целую главу]. (http://ww1.microchip.com/downloads/en/DeviceDoc/chapter%208.pdf)., @timemage
Рассмотрю возможность использования i2c : вот учебник https://www.instructables.com/I2C-between-Arduinos/, @Guy . D
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- В чем разница между Serial.write и Serial.print? И когда они используются?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Программы построения последовательных данных
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Очистить существующий массив при получении новой последовательной команды
А) нет Б) нет проблем. почему ты спрашиваешь?, @Juraj
@Juraj с тех пор , как я попытался перезагрузить 2 микроконтроллера, подключенных последовательно ( Tx-> Rx, Rx->>Tx), потерпел неудачу. Это удалось только тогда когда провода убрали, @Guy . D
земля была подключена?, @Juraj
@Juraj - Да
GND
был подключен, @Guy . D