Push-pull VS open-drain.

Push-pull VS open-drain.

В конце прошлой статьи обещал рассказать чем отличается выход push-pull(PP) от open-drain(OD). 
Для того чтобы разобраться, предлагаю рассмотреть устройство выхода push-pull.
Push-pull  VS open-drain.

По сути, он состоит из двух ключей, один подтягивает вывод к питанию, другой к земле.
А теперь open-drain.
Push-pull  VS open-drain.

На картинке видно, что open-drain может быть с внутренней подтяжкой и без неё.
Если использовать подтяжку становится вообще непонятно чем он отличается от push-pull.

А теперь давайте подумаем, что будет если мы соединим два PP выхода и установим на них разные логические уровни?
Push-pull  VS open-drain.

Из-за конфликта уровней один из выходов просто выгорит, так как ток, возникший из-за разности потенциалов, ни чем не ограничен.
А теперь так же соединим два вывода OD.
Push-pull  VS open-drain.

Видно, что потенциал линии притянется к земле и ничего не сгорит. Следовательно выводы OD можно соединять между собой не боясь чего-нибудь сжечь. Но если через один вывод можно пропустить 20 мА, то объединив 5 выводов, через них можно пропустить 100мА.
Push-pull  VS open-drain.

Это и есть тот случай когда PP не может заменить OD.

А теперь представим другую ситуацию, есть шина данных, например, I2C  у которой логическая единица не соответствует напряжению нашего МК и равна либо 1.8, либо 5 вольт. В обоих случаях, используя PP выход, подключить МК к такой шине не получится потому, что PP не может выдать ни 1.8, ни 5 вольт. Но это очень просто сделать, используя OD и внешний подтягивающий резистор.
Push-pull  VS open-drain.

На этом всё, в следующей статье опишу как отследить переполнение стека.
комментарии
0