Можно ли использовать простой диод и подтягивающий резистор для смещения уровня вниз в одном направлении?

Я работаю над схемой, которая включает в себя взаимодействие с микроконтроллером 3,3 В (ESP8266), и я хотел бы иметь возможность запрограммировать его, используя мой существующий FTDI, который работает на 5 В. Я новичок в смене уровней и, оглядевшись, вижу, что есть несколько разных подходов. Мой вопрос касается схемы, которую я нашел для прорыва Adafruit ESP8266, показанной здесь: https://cdn-learn.adafruit.com/assets/assets/000/024/745/original/adafruit_products_schem.png .

Для смещения уровня сигналов RST и RX с 5 В до 3,3 В они просто используют диод, ориентированный «назад», пусть внутренняя подтяжка сделает все остальное. Кажется, это работает так:

введите описание изображения здесь

Итак, мой вопрос: является ли это допустимым подходом для однонаправленного сдвига уровня? Есть ли подводные камни, чтобы сделать это таким образом? Я не смог найти других примеров этого подхода в своих поисках, поэтому я не уверен, что это просто «быстрый и грязный» способ сделать это или по какой-то причине он работает только в этом сценарии.

Ответы (1)

Если сигнал идет слева направо, 5 В с выхода FTDI на 3,3 В на вход ESP8266, то, когда на выходе FTDI низкий уровень, на входе микроконтроллера к выходному напряжению FTDI LOW будет добавлено падение напряжения на диоде. Если FTDI LOW находится на 100 м В , то можно ожидать добавления еще одного 600 м В 700 м В к тому, что. Вам нужно проверить свои входные характеристики ESP8266, чтобы увидеть, не наихудший ли случай. 800 м В по-прежнему квалифицируется как НИЗКИЙ вход. Глядя на них, я вижу, что макс. 0,25 В с с "=" 825 м В . Что слишком близко для большого комфорта. Однако сам диод может быть на нижнем конце. Так что, возможно, там есть небольшой запас. Впрочем, это немного.

РЕДАКТИРОВАТЬ: Поскольку вы выбрали направление BSS138, давайте добавим его схему и немного объясним:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Я добавил сюда три схемы с использованием BSS138 и взял их из того, что вы найдете на изображениях Google, но где я поменял местами назначения напряжения, чтобы оно шло от 5 В к 3.3 В . Я добавил диод корпуса NMOS, потому что это важно. (Эти схемы действительно рассчитаны на работу от 3,3 В до 5 В!) Верхняя схема представляет собой модифицированную версию. Нижние два ниже показывают, что происходит, когда драйвер FTDI ведет машину. 0 В в первом случае (схема слева) и ведет 5 В во втором случае (правая схема). Обратите внимание, что есть небольшая проблема?

Большинство входов 3,3 В (и я предполагаю, что это верно для ESP8266) имеют защитные диоды, которые выглядят так, как показано на самой правой схеме выше. Таким образом, исправлением будет установка последовательного резистора от стока NMOS к входному контакту. Этот резистор должен быть достаточно большим, чтобы ограничить ток в защитных диодах, чтобы соответствовать спецификациям (которые почти всегда 2 м А .) В этом случае вы можете выбрать 4.4 В 3.3 В 600 м В 500 мю А "=" 1 к Ом .

Но тогда возникает вопрос... почему бы просто не использовать резистор и не зависеть от ваших защитных диодов??

Ну, это часто делается при переходе от 5 В к 3.3 В . Вы идете читать техническое описание, выясняете пределы защитного диода (я не смог найти его там), а затем вычисляете соответствующий резистор. В этом случае я, вероятно, предположил бы, что 500 мю А это максимум, что я хотел бы попробовать, учитывая отсутствие данных, и, вероятно, остановился бы на пробном значении 200 мю А чтобы увидеть, насколько хорошо это работает. Так что в этом случае я бы просто попробовал номинал резистора 5 В 3.3 В 600 м В 200 мю А "=" 5,5 к Ом и решить использовать либо 4.7 к Ом или 5.6 к Ом для входа 3,3 В на микро, в зависимости от защитных диодов, которые выполняют свою работу.

Или, если хотите, вы можете приобрести себе BAV99 и использовать его снаружи — исходя из того, что вы не хотите зависеть от внутренних защитных диодов. Если вы сделаете это, вы можете попробовать последнюю схему в правом нижнем углу схемы выше.

Вы можете использовать диод Шоттки, чтобы увеличить запас. Другая проблема заключается в том, что при таких больших подтягиваниях время подъема будет медленным. Может быть не важно в некоторых приложениях, но в других это может быть критично.
@JohnD: Я подумал о добавлении комментария о диодах Шоттки. Рад, что вы сделали. Они сильно протекают, но, вероятно, недостаточно, чтобы вызвать проблему с резистором 10k. Договорились также о возможных проблемах со временем нарастания. Но это требует больше размышлений, чтобы приложить к этому количество, поэтому я пропустил это.
Неплохо подмечено. Это уже показалось мне далеко не идеальным решением, но я даже не подумал о влиянии падения диода. Любопытно, что Adafruit решил сделать это таким образом. Что бы вы порекомендовали вместо этого? Простой делитель напряжения?
@kcarbone: Вам не все равно, инвертирован ли сигнал? Вы предпочитаете MOSFET транзисторам BJT или наоборот? Какое текущее соответствие поддерживает чип FTDI для ввода/вывода?
@jonk: я бы предпочел не инвертировать сигнал, так как он будет использоваться для программирования ESP8266. Я стараюсь использовать мосфеты, когда могу. Насчет текущей поддержки, честно говоря не знаю. Это старый FTDI, который я обычно использую для программирования 5-вольтовых микросхем Atmega. Я мог просто получить 3,3 В ftdi, но мне было любопытно, насколько сложно будет сдвинуть уровень с 5 В.
@kcarbone: тогда используйте мосфет. Это здорово. Вы искали в Google «переключатель уровней 3.3 5», а затем выбрали изображение Google? Там вы найдете МНОГО схем. Если вы считаете, что с ними все в порядке, я изменю свой ответ, включив в него конкретный дизайн, который здесь должен быть в порядке.
@jonk: Да, я вижу, что bss138 много разбрасывается, поэтому я, вероятно, попробую один из них. Спасибо за всю вашу помощь и информацию!
@kcarbone: тогда смотрите мое расширенное обсуждение. Я добавил много для вас, чтобы рассмотреть.