• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Согласование уровней ESP и AVR.

Vova777

New member
Подскажите, пожалуйста.
Хочу подключить модуль ESP8266 (ESP-01) к МК AVR ATmega16. Проблема в том, что у них разные логические уровни.

Не имею никакого желания городить на линиях TX и RX огород из транзисторов и т. д. Если использовать метод последовательных резисторов, будет ли это работать?

Схема: http://robozone.su/uploads/posts/2008-03/1205399956_2.gif
 

tretyakov_sa

Moderator
Команда форума
Последнее редактирование модератором:

Sanchos

New member
Из своего опыта скажу, что если ваша схема со сменой сигналов TX и RX (swap pins), тогда (поскольку она будет двухсторонней) лучше ставить 2 гасящих резистора на линию TX и RX. Если в схеме не предвидится смены сигналов, то на линию ТХ модуля ESP можно ничего не ставить, а на линию RX - метод делителей напряжения, но, к сожалению, этот метод не очень годится, если будете использоваться аккумулятор, поскольку будет происходить потребление тока делителем.
По мне так (уже опробовал и доволен), вместо метода делителей напряжения лучше использовать метод диодный интерфейс - простой и надежный метод, и изолирует устройства друг от друга.
Метод с мосфет транзистором (BSS138), к сожалению, не работает с ESP модулями (ну у меня лично не вышло).
 
Последнее редактирование:

msg31

New member
Я обычно пользуюсь для согласования уровней резистором 330 ом и стабилитроном на 3,3 в. Причем подключаю и на RD и TX тоже, чтобы гарантированно их не спалить, даже если случайно перепутал.
Чем такой способ универсальнее, по сравнению с делителем - он двунаправленный и не зависит от питающего напряжения.
 

msg31

New member
Внутри ESP уже есть защита.
Это хорошо, что есть защита. Для AVR есть апноут, где это подробно описано, в том числе как на этой внутренней защите сделать детектор нуля сетевого напряжения. Для ESP8266 я этого не нашел.
 

nikolz

Well-known member
Это хорошо, что есть защита. Для AVR есть апноут, где это подробно описано, в том числе как на этой внутренней защите сделать детектор нуля сетевого напряжения. Для ESP8266 я этого не нашел.
All digital IO pins are protected from over-voltage with a snap-back circuit connected between
the pad and ground. The snap back voltage is typically about 6V, and the holding voltage is 5.8V.
This provides protection from over-voltages and ESD. The output devices are also protected
from reversed voltages with diodes.
 

Sanchos

New member
Я обычно пользуюсь для согласования уровней резистором 330 ом и стабилитроном на 3,3 в.
Проверил ваш способ согласования уровней. Получилось следующее: при отсутствии стабилитрона напряжение на пинах RX-GND 3.3В, при подключении стабилитрона (на 3.3В) - падение напряжения до 2.6В. Не вижу преимуществ.
 

msg31

New member
Проверил ваш способ согласования уровней. Получилось следующее: при отсутствии стабилитрона напряжение на
Стабилитрон надо ставить плюсом к общему проводу, минусом к защищаемому входу. А чтобы не было слишком больших токов от выхода высокого напряжения к защищаемому входу нужен резистор около 330 ом.
 

Sanchos

New member
Стабилитрон надо ставить плюсом к общему проводу, минусом к защищаемому входу. А чтобы не было слишком больших токов от выхода высокого напряжения к защищаемому входу нужен резистор около 330 ом.
Если вы имеете ввиду анодом к земле, катодом к защищаемому входу, то я так и делал.
 

msg31

New member
Я такого большого падения напряжения не замечал. Но поскольку на входах ESP8266 стоит защита, то действительно просто резистора достаточно. Хотя я всегда стабилитрон и резистор ставлю на всякий случай и работает.
 

Vova777

New member
Добрый день. У меня есть схема, основанная на приведенной выше. Что скажете, допускается ли такой способ согласования уровней между AVR ATmega16 и ESP8266?Согласование уровней.png
 

msg31

New member
Очевидно, что выход где TX, то есть передача. Кстати ТХ от Atmega должен идти к RX ESP8266, хоть и можно их местами поменять, но как-то привычнее так.
Кстати, почему схема плохая, ведь внутренняя защита есть, а польза от резистора в том, что резистор ограничит ток и не приведет к перегрузке защиты?
Единственное что резистор я бы поменьше поставил, 1-2Ком, например.
 
Сверху Снизу