Saya ingin memahami konsep port drain terbuka seperti port P0 dari 8.051 mikrokontroler. Mengapa kita perlu menghubungkan pull up resistor ke port P0?
Saya memiliki pengetahuan dasar tentang MOSFET dan perangkat elektronik lainnya.
mosfet
8051
open-drain
abkds
sumber
sumber
Jawaban:
Mengabaikan seluk beluk cara kerja MOSFET. Output bertindak seperti saklar ke ground. Itu tidak dapat menghasilkan sinyal tinggi (+ 5V) dengan sendirinya. Penarik pull up digunakan sehingga ketika sakelar terbuka output akan tinggi. Ketika saklar ditutup output akan rendah (0V)
sumber
Ada dua aplikasi umum open-drain (atau open-collector, dalam hal BJT):
1) Menghubungkan lebih dari satu output ke saluran yang sama. Ini disebut kabel-OR. Misalnya, Anda mungkin memiliki pin reset yang biasanya tinggi pada perangkat, yang direset dari kedua pin mikrokontroler dan sumber lain, misalnya tombol tekan. Pin reset diikat tinggi dengan resistor pull-up. Mikrokontroler dikonfigurasikan sebagai keluaran saluran terbuka. Tombol ditekan ke tanah saat ditekan. Jika mikrokontroler menarik outputnya ke 0, atau tombol ditekan, perangkat akan diatur ulang.
Perhatikan bahwa ketika mikrokontroler menetapkan pin output ke 1, pin tersebut pada dasarnya terputus dari jalur. Itu tidak menggerakkan garis ("sumber") dengan tegangan apa pun, jadi ketika tombol menarik garis ke tanah, tidak ada kekurangan.
Karena konfigurasi kabel-OR sangat berguna, inilah sebabnya pin seperti reset pada mikrokontroler, jalur interupsi, hapus dan aktifkan jalur pada perangkat seperti sandal jepit, semuanya "aktif rendah" - yang berarti mereka biasanya terikat tinggi (lagi , melalui resistor pull-up), dan salah satu dari beberapa perangkat yang dikonfigurasikan sebagai open-drain mungkin menariknya rendah. Input seperti itu biasanya ditetapkan sebagai aktif-rendah dengan bilah di bagian atas nama sinyal, atau yang terkemuka! (! CLR), atau tanda # trailing (CLR #).
2) Mengontrol perangkat yang terhubung ke tegangan suplai yang berbeda. Katakanlah Anda memiliki relay yang membutuhkan 20 mA, tetapi tegangan 5 volt. Tetapi output mikrokontroler Anda hanya dapat mendorong pin hingga tegangan catu daya (VCC) sebesar 3,3v. Dengan output drain terbuka, Anda dapat menghubungkan satu sisi relai ke 5 V, dan yang lainnya ke pin output mikrokontroler. Ketika output dari mikrokontroler adalah 1, tidak ada yang terjadi (sekali lagi, bertindak seperti pin terputus). Ketika diatur ke 0, ini alasan sisi bawah relay menyelesaikan sirkuit dan mengoperasikan relay. Dalam aplikasi seperti itu, penting untuk menempatkan dioda "fly-back" di seluruh koil relay untuk mencegah kerusakan pada mikrokontroler ketika perangkat mati energi.
Untuk driver keluaran seperti ULN2803 (array transistor Darlington), Anda dapat mendorong beban yang terhubung ke tegangan setinggi 50 v dan mengendalikannya dengan input yang kompatibel dengan logika.
sumber
a microcontroller can often sink more current (drive to ground) than it can source (drive to the VCC of the microcontroller)
Itu tidak benar lagi dengan mikrokontroler CMOS modernOutput tiriskan terbuka hanya sakelar terbuka yang terhubung ke 0V. Untuk melewati arus melewatinya, Anda perlu memberi makan arus ke dalamnya dan ini dapat dilakukan dengan resistor pull-up. Jika Anda tidak melewatkan arus ke pin, Anda tidak akan dapat melihat tegangan: -
Berikut adalah dua perangkat yang berbagi keluaran saluran terbuka yang sama - perhatikan resistor pull-up ke + 5V. Bahkan sirkuit ini menggunakan "saluran terbuka" untuk melakukan logika - jika gerbang NAND "diaktifkan" dengan 1,1, mereka akan menurunkan BUS ke 0V. Dengan demikian logika yang disampaikan kepada BUS adalah
INVESTE BUS = AB + CD
MOSFET biasanya digunakan sebagai perangkat drainase terbuka meskipun BJT biasa juga dapat melakukan fungsi ini. Keluaran saluran terbuka adalah penyederhanaan dari output CMOS biasa - ini cepat dalam berbalik turun ke tanah tetapi akan lebih lambat pada perjalanan kembali ke + Logika karena waktu pengisian kapasitor parasit melalui resistor pull-up.
Kolektor terbuka di wiki adalah bacaan yang bagus - ia melakukan hal yang sama seperti saluran terbuka dan disebutkan dalam artikel seperti diagram kecil yang ditunjukkan di atas.
sumber
1) Untuk menyederhanakan poin pertama dalam jawaban oleh tcrosley, keuntungan dari tidak menyediakan resistor pull-up di dalam output adalah kemampuan untuk berbagi resistor pull-up yang sangat banyak di antara banyak output. Keluaran kemudian ditransfer secara paralel dan semua terhubung ke resistor bersama dan ke ground.
2) Titik "di bawah" resistor (dalam skema) adalah tempat di mana output gabungan dikumpulkan oleh bagian lain dari rangkaian. (Tentu saja, semuanya bisa menjadi sebaliknya sehubungan dengan tanah dan pasokan.)
3) Jika Anda tidak ingin mengumpulkan output gabungan dari banyak output (dan sirkuit menggunakan pasokan tegangan yang sama di mana-mana), maka Anda tidak ingin menggunakan output tanpa bagian pull-up. Kalau tidak, Anda akan diberikan output "tidak lengkap" (dengan cara tertentu), yang dapat Anda sesuaikan dengan kebutuhan Anda.
sumber