Port mikrokontroler saluran terbuka

9

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.

abkds
sumber
oke jadi apa yang saya pahami adalah pada dasarnya berfungsi seperti port lain tetapi kita harus memberikan catu daya melalui beberapa sumber eksternal. Apakah saya benar ?
abkds

Jawaban:

13

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)

masukkan deskripsi gambar di sini

JIm Dearden
sumber
9

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.

tcrosley
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 modern
m .lin
1
Kasus penggunaan kedua Anda jarang berlaku untuk mikrokontroler: dalam banyak kasus pin IO mereka tidak dapat mentoleransi tegangan di luar interval daya-tanah (meskipun beberapa chip tegangan-rendah mengklaim toleran 5V). Pengecualian adalah pin RA4 pada beberapa Microchip uc's. Tapi chip driver gaya 2003/2803 adalah contoh yang sangat baik dari kasus penggunaan kedua Anda.
Wouter van Ooijen
Antara MSP430's, Atmel AVRs, dan Pic 16/18s, saya belum melihat mikrokontroler modern yang tidak dapat tenggelam atau sumber jumlah yang sama saat ini.
Pejalan kaki
m.Alin, Wouter_van_Ooijen, Passerby - terima kasih atas komentar Anda, saya telah mengedit jawaban saya.
tcrosley
2

Output 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: -

masukkan deskripsi gambar di sini

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.

Andy alias
sumber
0

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.

omong kosong
sumber
Saya mem-parsing dinding teks Anda menjadi paragraf bernomor. Ini membuatnya lebih mudah untuk dipahami ketika membaca dan mengomentari bagian atau pernyataan tertentu yang Anda buat. Perhatikan paragraf mulai dari perubahan konteks dalam jawaban Anda.
Sparky256