دهنده – کشنده یا push-pull و درین باز یا open-drain دو گونه ی برونگذار دوگانی ( خروجی دیجیتال ) میکروکنترلر هستند .

برونگذار درین-باز یا Open-drain
در گونه ی برونگذار درین-باز Open-drain ( مشابه Open collector ) تنها یک NMOS بکار برده میشه که Drain این ماسفت که همون پایه ی برونگذار میکروکنترلر هست به جایی بسته نیست. نامگذاری این گونه ی برونگذار هم بر همین بنیان بوده.
ماسفت NMOS همچون یک سوئیچ ساده تنها میتواند پایه ی برونگذار رو به زمین ببندد و میکروکنترلر تنها میتونه روانه (جریان) رو فروکش (sink) کنه.
هنگامی که ترانزیستور خاموش است-> پایه ی برونگذار به جایی بسته نیست.
هنگامی که ترانزیستور روشن است-> پایه ی برونگذار بسته به زمین.
برونگذار دهنده-کشنده یا Push-pull
در برونگذار دهنده-کشنده یا Push-pull ، یک NMOS و یک PMOS بکار برده میشه، همچون یک کلید SPDT کار میکنه و میتونه پایه ی میکروکنترلر رو هم به زمین و هم به ولتاژ بالا ( VDD) ببنده.
کلید SPDT : کلیدی است که یک پایه ی درونپذیر دارد که میتواند به یکی از دو پایه ی برونگذار بسته شود.
در فاز کشنده یا Pull phase ماسفت NMOS روشن میشه :
- پایه ی برونگذار میکروکنترلر به زمین بسته میشه.
- پایه ی میکرو، روانه رو به ولتاژ پایین ( فرو ) میکشه یا روانه رو فرومیکشه ( سینک= Sink میکنه ) .
- سوی روانه به درون.
در فاز دهنده یا Push phase ماسفت PMOS روشن میشه:
- پایه ی برونگذار میکروکنترلر به ولتاژ بالا بسته میشه.
- پایه ی میکرو، روانه رو از ولتاژ بالا ( فرا ) بیرون میده یا روانه رو فرامیده (سورس میکنه).
- سوی روانه به بیرون.

نمونه بکار گیری از Push-pull و Open-drain برای روشن کردن led
پندارید میخواهیم یک led رو روشن کنیم. برای روشن کردن led باید در دو سوی این مصرف کننده ناهمسانی ولتاژ (اختلاف ولتاژ) بسازیم ، تا روانه (جریان) از بار (مصرف کننده) رد شود و led روشن گردد.
سوی روانه هم مهم هست و در led ها سوی روانه باید از آند به سوی کاتد باشه. پس ولتاژ بالا یا VCC رو با یک ایستاگر (مقاومت) به آند و کاتد رو هم به زمین متصل میکنیم. ایستاگر برای مهار روانه ی ای است که از LED رد میشود.

در ادامه میخواهیم این led رو با یکی از پایه های میکروکنترلر روشن و خاموش کنیم. دو گزینه داریم ، میتونیم پایه ی میکروکنترلر رو جای زمین یا ولتاژ بالا (VCC) بذاریم.

پایه ی میکرو بجای ولتاژ بالا
اگر پایه ی میکروکنترلر رو جایگزین ولتاژ بالا (VCC) کنیم ، هنگامی که بخواهیم led روشن بشه ، پایه ی میکروکنترلر باید VCC باشه و هنگام خاموش، پایه ی میکروکنترلر باید زمین بشه. چون درین-باز نمیتونه پایه ی میکروکنترلر رو به VCC ببنده در این سیم بندی باید برونگذار دهنده-کشنده یا Push-pull بکار ببریم.
در فاز دهندگی یا Push phase پایه ی میکروکنترلر به VCC بسته میشه ، میکروکنترلر روانه رو فرامیده (سورس میکنه) و سوی روانه به بیرون میکروکنترلر هست و led روشن میشه.
در فاز کشندگی یا Pull phase پایه ی میکروکنترلر به زمین بسته است و از آنجا که دو سوی بار به زمین بسته هست ، در دو سوی بار ، ناهمسانی ولتاژ نداریم و روانه ای هم نیست و led هم خاموشه.

پایه ی میکرو بجای زمین و بکارگیری برونگذار دهنده-کشنده
اگر پایه ی میکروکنترلر رو جایگزین زمین کنیم ، هم برونگذار Push-pull و هم Open-drain را میتوان بکار برد.
نخست برونگذار دهنده-کشنده یا Push-pull رو بررسی میکنیم. در فاز کشندگی یا Pull phase پایه ی میکروکنترلر زمین میشه ، یک سوی led به ولتاژ بالا (vcc) و سوی دیگه با بکارگیری پایه ی میکرو به زمین بسته میشه. و روانه در led روان میشه و led روشن میشه. در این شیوه، سوی روانه به درون میکرو هست و میکروکنترلر روانه رو فرومیبره (سینک میکنه).
در فاز دهندگی یا Push phase پایه ی میکرو به VCC بسته میشه و چون ناهمسانی ولتاژ در دو سوی led نیست، led خاموشه.

پایه ی میکرو بجای زمین و بکارگیری برونگذار درین-باز
اگر پایه ی میکروکنترلر رو بجای زمین بذاریم، برونگذار درین-باز یا Open-drain هم میشه بکار برد. در درین-باز پایه ی میکرو تنها میتونه به زمین بسته بشه. هنگامی که پایه ی میکرو زمین بشه در دو سر led ناهمسانی ولتاژ پدید میاد و روانه ی ردشونده از LED روشنش میکنه.
هنگامیکه NMOS خاموشه، میخواهیم که led هم خاموش باشه. برای خاموش بودن led :
1. نبود گذرگاهی پیوسته برای ردشدن روانه
هنگامی که NMOS خاموشه، راهی برای گذر روانه نیست و led هم خاموشه.
2. نبود ناهمسانی ولتاژ در دو سر led
ولی اگر بجای led، درونپذیر دوگانی ( ورودی دیجیتال ) میکروکنترلر دیگه ای اونجا باشه، برای پیشگیری از نویز افتادن روی پایه و زمین شدن ناخواسته ی پایه ی میکرو، بایستی ولتاز روی پایه را هنگامی که NMOS خاموش است، با یک ایستاگر بالاکش (مقاومت pull-up ) استوار کنیم.نیاز هست که پایه ی میکرو رو با یک ایستاگر 5 تا 10 کیلو به VCC ببندیم.

کاربرد Push-pull و Open-drain
برونگذار دهنده-کشنده یا push-pull رو هنگامی بکار میبریم که نیاز باشه پایه ی میکروکنترلر به VCC بسته بشه و روانه (جریان) بار رو فراهم کنه.
برونگذار درین-باز یا Open-drain رو هنگامی بکار میبریم که نیاز نباشه و یا نباید پایه ی میکروکنترلر به ولتاژ بالا بسته بشه.
کاربرد درین-باز در داده گذر تک سیم یا 1-wire در حسگر های دما و نم
برای نمونه پایه داده در حسگر دما و نم AM2302 یا حسگر دمای DS18B20 با یک ایستاگر بالاکش به ولتاژ بالا بسته میشه و میکروکنترلر و حسگر هر دو تنها میتونن این پایه رو زمین کنند و این پایه هیچ جوره نباید بی میانجی به VCC بسته بشه.
کاربرد درین-باز در داده گذر I2C

- پایه ی برونگذار = پایه ی خروجی .
- پایه ی درونپذیر = پایه ی ورودی .
- داده گذر I2C = ارتباط I2C .
- فراده = از فرا ( بالا ) دهنده ی جریان یا سورس کننده .
- فروکش = در پایین ( فرو ) کشنده ی جریان یا سینک کننده .
- دهنده – کشنده = push – pull .

