3v3 ESP односторонняя связь с 5 V Arduino?

Возможно, я не совсем понимаю разницу между логическим уровнем и функцией контактов TX и RX? Мне просто интересно, может ли ESP отправлять односторонние данные на Arduino. (Я обнаружил, что для двусторонней связи потребуется преобразователь логического уровня.)

Спецификация ESP32 https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf#page=42


Похоже, что в таблицах данных Arduino не указаны допуски логического уровня. Судя по этому сообщению на форуме Arduino, это сработает.

Повсеместно ли предполагается, что 3v3 будет иметь высокий допуск к логике? https://learn.sparkfun.com/tutorials/logic-levels/all

, 👍1


1 ответ


Лучший ответ:

2

Да, это сработает, но только справедливо. Это пограничное состояние.

ESP32 выдает максимум 3,3 В в качестве высокого сигнала. Arduino принимает "выше 0.6Vcc" в качестве ВЫСОКОГО сигнала. Это означает, что он должен видеть напряжение, которое составляет не менее 60% от напряжения на выводе Vcc (5V pin) Arduino.

Если Arduino имеет ровно 5 В, то 60% из них - 3 В. Поскольку 3,3 В выше, чем 3 В, он видит, что у него ВЫСОКИЙ УРОВЕНЬ.

Однако если Arduino питается от немного более высокого напряжения, чем 5 В (некоторые USB-порты могут выдавать 5,2 В, и это все еще в спецификации), и если ESP32 питается чуть ниже 3,3 В, то погрешность 0,3 В становится все уже и уже. В конце концов он исчезает, и ВЫСОКИЙ уровень больше не может быть обнаружен.

Например, если Arduino имеет 5,2 В, а ESP32 - 3,1 В, то Arduino ожидает не менее 3,12 В, а ESP32 выдает не более 3,1 В.

Таким образом, в большинстве случаев он работает, но есть факторы, которые могут помешать ему работать. Эти факторы могут быть смягчены с помощью перевода логического уровня.

,

Сам фактор 0.6 тоже выбран на всякий случай. Никто не уверяет, что 2,6 В никогда не интерпретируется как ВЫСОКОЕ. Однако ваше последнее утверждение очень правильно., @DataFiddler

@DataFiddler Небезопасно сомневаться в данных. Приведенные значения являются гарантированными значениями. Конечно, она может быть и ниже, но предполагать это небезопасно. Разные чипы из разных партий могут быть разными, но все они гарантированно будут не более 0,6Vcc. В 90% случаев это нормально, хотя и для использования Arduino штрафа обычно достаточно. Лично я обычно работаю только с микроконтроллерами 3,3 В (кто действительно использует 5 В в наши дни ?!), @Majenko

Кроме того, частично противореча моему вчерашнему мнению, 0.6 является частью четко определенной функции гистерезиса: входной вывод либо НИЗКИЙ, либо ВЫСОКИЙ: Он переключает LOW-> HIGH @ 0.6 Vcc и переключает обратно HIGH->LOW @ 0.3 Vcc На эту функцию тоже можно положиться., @DataFiddler