Связь Arduino ESP8266

Гугля по этой теме, я заметил две странные вещи.

  1. Иногда Tx и Rx подключаются напрямую, несмотря на то, что он работает на разных напряжениях, иногда используется резисторный делитель, иногда он проходит через резистор. Почему нет консенсуса? В чем отличия?

  2. Почему участники так упрямо используют программный UART? Есть ли какая-то непонятная мне причина, которая должна помешать мне использовать встроенный UART?

, 👍3


1 ответ


3

Иногда Tx и Rx подключаются напрямую, несмотря на то, что он работает на разных напряжениях, иногда используется резисторный делитель, иногда он проходит через резистор. Почему нет консенсуса? В чем отличия?

Существует некоторая неопределенность относительно того, имеет ли ESP8266 входы, устойчивые к напряжению 5 В, или нет. Эта неопределенность связана с различиями в ранней таблице данных на китайском языке, переведенной сообществом, и текущей таблице данных на английском языке. Тем не менее, лучше перестраховаться и преобразовать сигнал 5 В с Arduino в сигнал 3,3 В с помощью надлежащего преобразователя логического уровня или резистивного делителя (обратите внимание, что последний может ограничить максимальную скорость передачи данных, которую вы можете использовать).

Подробнее можно прочитать здесь:

  • https://hackaday.com/2016/07/ 28/ask-hackaday-is-esp8266-5v-толерантный/

Почему участники так упрямо используют программный UART? Есть ли какая-то непонятная мне причина, которая должна помешать мне использовать встроенный UART?

Неверная информация порождает неверную информацию. Люди копируют некачественные примеры и руководства и передают эти плохие знания другим1.

Многие платы Arduino имеют только один аппаратный порт UART, который используется совместно с USB-подключением к ПК. Трудно надежно использовать этот UART для другой последовательной связи, поскольку это лишит вас возможности загружать код, когда ваше оборудование подключено. Так что в этом случае проще использовать SoftwareSerial (или одну из лучших реализаций).

Однако я бы никогда не рекомендовал использовать SoftwareSerial, если только вы абсолютно не обязаны. Он едва работает на скорости 115200 бод (одна из распространенных скоростей передачи ESP8266 по умолчанию ). Если у вас есть удобный аппаратный UART, то вы действительно должны использовать его, по крайней мере, ради вашего здравомыслия.


1: Еще хуже примеры, когда люди используют SoftwareSerial для связи через контакты аппаратного UART... это просто глупо...

,