Klarifikasi resistor pull-up

12

Saya cukup baru di bidang elektronik dan saya kesulitan memahami prinsip "pull-up resistor". Saya telah membaca banyak artikel tentang itu, dan saya pikir saya sudah mendapatkannya tetapi saya tidak 100% yakin sehingga saya punya pertanyaan. Dalam artikel ini , setelah gambar pertama, dikatakan:

Ketika tombol sesaat ditekan itu menghubungkan pin I / O ke Vcc dan mikrokontroler akan mendaftarkan input sebagai tinggi.

Tapi saya tidak mengerti. Dimanakah VCC? Dari apa yang saya lihat, tidak ada sumber daya pada skema ini, hanya mikrokontroler yang disambungkan ke tombol yang sama-sama ditransfer ke tanah, jadi bagaimana mungkin ada tegangan sama sekali di sirkuit ini?

ssougnez
sumber
Saya pikir mereka mengacu pada gambar 2 dan 3 ketika mereka menyebutkan VCC bahwa gambar tersebut memiliki VCC.
axk
2
Ingatlah bahwa U1 adalah gerbang logika, yang menyiratkan koneksi daya dan arde pada IC yang sebenarnya. Ini tidak digambar untuk menyederhanakan diagram sirkuit.
Ryan Griggs
5
Saya akan mengatakan itu kesalahan dalam artikel ini. Setelah tombol ditekan, itu menghubungkan input gerbang ke GND, bukan ke Vcc.
Eugene Sh.
Saya setuju dengan Eugene, ini adalah artikel yang buruk. Temukan sumber yang lebih baik.
pipa
2
Tampaknya penulis makalah itu mungkin telah berubah pikiran antara membuat gambar dan menulis teks. Seharusnya mengatakan "... I / O pin ke Ground, dan gerbang NOT akan mendaftarkan input sebagai Rendah." Seluruh paragraf itu pada umumnya bingung.
Peter Bennett

Jawaban:

32

Artikel itu tampaknya cukup membingungkan: teks dan angka tidak cocok. Saya akan mencoba menyajikan di sini tiga skema yang sama seperti di sana, dengan mudah-mudahan penjelasan yang lebih cocok.

Asumsikan U1 adalah mikrokontroler Anda, dan P1 adalah pin I / O yang dikonfigurasi sebagai input. (Bisa jadi itu gerbang logika, sungguh.) Koneksi lain ke U1 tidak begitu relevan sehingga tidak digambarkan, tetapi menganggap itu memiliki koneksi daya dan kebutuhan lainnya.

(1) Jika tombol ditekan, port P1 terhubung ke ground, dan akan merasakan level logika rendah. Tetapi ketika tombol dilepaskan, port tidak terhubung di mana pun, tetapi mengambang . Tidak ada tegangan yang pasti, sehingga bahkan gangguan kecil dapat menyebabkan input digital beralih dari satu nilai ke yang lain. Mungkin juga berosilasi, dan menyebabkan peningkatan konsumsi daya. Tidak baik.

(2) Sekarang, ketika tombol tidak ditekan, port akan merasakan level tinggi, karena terhubung langsung ke Vcc. Tetapi jika tombol ditekan, Vcc dihubung pendek ke ground, dan sumber listrik mungkin akan terbakar dan mati. Lebih buruk lagi.

(3) Di sini, jika tombol tidak ditekan, port akan kembali merasakan tingkat logika yang tinggi: itu ditarik tinggi melalui resistor. (Tidak ada kehilangan tegangan pada resistor, karena impedansi input digital sangat tinggi, dan oleh karena itu arus ke port kira-kira nol.)

Ketika tombol ditekan, port terhubung langsung ke ground, sehingga merasakan level rendah. Sekarang, arus akan mengalir dari Vcc ke ground, tetapi resistor akan membatasi itu untuk sesuatu yang masuk akal. Ini bagus.

Dalam skema ini, tombol yang tidak ditekan berbunyi sebagai nilai tinggi (1), dan tombol yang ditekan dibaca sebagai rendah (0). Ini disebut logika aktif-rendah . Mengganti resistor dan saklar akan membalikkan ini, sehingga tombol yang tidak ditekan akan berbunyi serendah (0), dan tombol yang ditekan setinggi (1). ( Logika aktif-tinggi .)

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

ilkkachu
sumber
Saya pikir ini adalah penjelasan yang baik untuk pemula untuk memahami topik. +1 untuk diagram dan bahasa sederhana.
Mark Ch
Jadi jika saya mengerti Anda dengan benar, hal yang saya abaikan adalah fakta bahwa U1 sebenarnya terhubung ke Vcc, karena itu mengapa dalam skema pertama, jika tombol ditekan, arus dapat melalui? Pertanyaan kedua, ketika Anda mengatakan pada poin 3 bahwa "tetapi karena impedansi input dari port I / O digital agak tinggi, itu tidak masalah", Anda berarti 0 arus sama sekali akan pergi ke P1 atau arus sangat kecil (karena impedansi input) sehingga hampir sama dengan 0 => level rendah? Terima kasih atas penjelasannya! Saya menandai posting Anda sebagai jawaban karena skema :-p
ssougnez
1
"mungkin tidak masuk akal" ... Kami mengatakan bahwa input mungkin "mengambang", dan berliku di berbagai potensi. Penarik pull-up menarik input "tinggi". NB. saat ini tidak masalah (ya itu kecil), hanya tegangannya. Segala sesuatunya menjadi sedikit lebih rumit untuk sirkuit yang tunduk pada kondisi "balapan".
mckenzm
@ mckenzm saya mengerti sekarang. Dan Anda mengatakan bahwa yang penting adalah voltase, jadi itu berarti bahwa kebisingan di sekitar dapat menciptakan tegangan yang cukup tinggi untuk membuat gerbang dalam keadaan tinggi?
ssougnez
Atau hanya proses pembuatannya, ini sangat umum untuk chip yang tertanam pada kartu kredit sekarang. Pembaca memiliki resistor. Ini titik kegagalan sekarang dan kemudian.
mckenzm
11

Penarik pull-up atau pull-down "menahan" input pada tingkat tertentu ketika tidak ada input ke pin, alih-alih membiarkan input melayang.

Ketika Anda mempertimbangkan Gambar 1 pada gambar Anda, sakelar yang terbuka tidak menyediakan koneksi listrik ke pin, sehingga memungkinkan interferensi liar, kebocoran internal, dll untuk mempengaruhi tegangan pin input. Pengaruh eksternal ini dapat menyebabkan input ditafsirkan sebagai nilai yang berfluktuasi, menyebabkan osilasi yang tidak diinginkan atau output yang tidak terduga.

Jadi, untuk memastikan pin dipegang pada kondisi "diketahui", pin harus selalu terhubung ke VCC atau GND. Lihat gambar 2. Namun, ada masalah: jika Anda menghubungkan pin ke VCC untuk menahannya dalam keadaan "tinggi", kemudian hubungkan switch Anda ke GND dan tekan switch, Anda membuat short langsung! Anda akan meniup sekring, merusak catu daya Anda, membakar sesuatu, dll.

Jadi, alih-alih menghubungkan input secara langsung ke VCC atau GND, Anda dapat menghubungkan input melalui resistor pull-up / pull-down. Pada Gambar 3, mereka menggunakan resistor pull-up, menghubungkan input ke VCC.

Ketika tidak ada input lain pada pin, hampir nol arus mengalir melalui resistor pull-up. Jadi ada sedikit drop tegangan di atasnya. Ini memungkinkan seluruh tegangan VCC terlihat pada pin input. Dengan kata lain, pin input dipegang "tinggi".

Ketika saklar Anda ditutup, input dan resistor pull-up terhubung ke GND. Sebagian arus mulai mengalir melalui pull-up. Tetapi karena itu adalah resistansi yang jauh lebih tinggi daripada kawat yang mengarah ke GND, hampir semua tegangan turun di resistor pull-up, menyebabkan ~ 0 volt hadir pada pin input.

Anda akan memilih resistor nilai relatif tinggi untuk membatasi aliran arus ke nilai wajar, tetapi tidak terlalu tinggi untuk melebihi resistansi internal input.

Resistor pull-up memungkinkan Anda menahan input pada kondisi yang diketahui saat tidak ada input, tetapi tetap memberi Anda fleksibilitas untuk memasukkan sinyal tanpa membuat sinyal pendek.

Ryan Griggs
sumber
Terima kasih atas penjelasan ini, sangat jelas. Saya punya banyak jawaban untuk utas ini dan sayangnya, saya hanya bisa memilih satu sebagai jawaban yang diterima. Saya memilih yang lain karena skema itu tetapi milik Anda juga sangat jelas. Saya membatalkannya.
ssougnez
6

Artikel ini membingungkan tetapi inilah intinya. Inverter memiliki impedansi input yang tinggi dan tidak boleh dibiarkan mengambang karena dapat mengasumsikan logika 0 atau logika 1 atau terombang-ambing di antara keduanya.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

  • (a) Tanpa pull-up, kami membutuhkan sakelar pergantian untuk bergantian antara Vss dan GND (ground). Pengaturan ini akan mengalihkan input dengan kuat ke satu arah atau yang lain, tetapi ada masalah selama pergantian kontak switch ketika input melayang sejenak. Ini dapat menyebabkannya terombang-ambing di hadapan gangguan elektro-magnetik (EMI), misalnya.
  • (B) memecahkan dua masalah: itu menggunakan saklar lebih sederhana dan tanpa adanya penutupan saklar input ditarik tinggi. Ketika saklar ditutup input ditarik rendah.
  • (C) menunjukkan pengaturan yang sama dalam terbalik. Beralih tarik terbuka rendah.

Pengaturan dalam (b) lebih umum karena banyak perangkat logika IC memiliki resistor pull-up internal yang menghasilkan jumlah komponen dan area PCB yang lebih rendah saat menggunakan pengaturan ini.

Perhatikan bahwa kekuasaan dan kekuatan diasumsikan dalam banyak skema. Dalam kasus gerbang logika, misalnya, ada koneksi Vss dan ground yang umum untuk 2, 4 atau 6 gerbang logika. Tidak masuk akal untuk menunjukkannya untuk setiap gerbang sehingga mereka diasumsikan atau ditampilkan secara terpisah dengan kapasitor decoupling di tempat lain pada skema.

Transistor
sumber
Terima kasih atas jawaban yang bagus ini. Saya punya pertanyaan tentang sesuatu yang Anda katakan. "Pengaturan dalam (b) lebih umum sebagai ...". Bukankah itu "masalah" untuk memiliki resistor pull-up, bukan pull-down? Memang, pull-up akan selalu menarik arus sampai tombol ditekan dan kita dapat mengasumsikan bahwa sebagian besar waktu, tombol tidak ditekan, sehingga itu berarti bahwa rangkaian akan menarik arus saat tidak aktif.
ssougnez
@ssougnez: Daripada memposting pertanyaan sebagai komentar, umumnya lebih baik memposting pertanyaan sebagai pertanyaan tingkat atas baru - atau sudah dijawab di electronics.stackexchange.com/questions/113009/… atau electronics.stackexchange.com/ pertanyaan / 254037 / ... ?
davidcary
@ssougnez Entah resistor akan menarik namun banyak arus input menarik. Dan saat ini akan ditarik ketika saklar ditutup, lagi, bagaimanapun banyak input menarik. Itu tergantung seperti apa rangkaian input.
David Schwartz
@ssougnez: Beberapa di antaranya karena alasan historis. Input pada chip TTL , misalnya, tidak menarik arus saat dibiarkan mengambang tinggi. Menarik rendah menarik beberapa arus. Ini berarti bahwa lebih efisien daya untuk menarik rendah ketika diperlukan. Desain modern menggunakan input berbasis FET yang memiliki impedansi input yang sama ketika tinggi atau rendah sehingga tidak ada bedanya. Pada umumnya lebih mudah dan lebih pasti untuk beralih ke ground daripada beralih ke pasokan positif - khususnya ketika rel daya tegangan campuran terlibat.
Transistor
4

Yah, itu bukan gerbang jadi saya kira kita seharusnya membayangkan pin I / O terhubung di mana LED ditampilkan dengan tidak benar tanpa resistor seri. Ketika Anda menghubungkan input ke ground, output harus pergi ke Vcc (yang juga bisa disebut Vdd, yang merupakan cerita lain).

Cukup normal untuk tidak menunjukkan pin daya pada gerbang logika. Ini hanya untuk mengurangi kekacauan dalam skema. Perhatikan bahwa pin daya ground pada gerbang logika juga tidak ditampilkan.

Ini agak membingungkan (menyembunyikan pin) ketika Anda memiliki tegangan logika campuran seperti 1,8, 3,3 dan 5V pada papan yang sama, jadi saya tidak melakukannya sendiri biasanya, tapi itu memang menyimpan banyak kekacauan pada hari-hari tenang. ketika semuanya berlari dari 5V.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Spehro Pefhany
sumber
Apakah mungkin, itu tidak terlalu banyak meminta untuk menunjukkan kepada saya contoh lengkap dari sirkuit ini? Saya ingin dapat memvisualisasikan rangkaian dengan benar tanpa resistor pull-up agar dapat juga melihat gambaran global. Terima kasih
ssougnez
Lihat edit. Internal inverter yang disederhanakan (biasanya lebih banyak transistor untuk buffering dan setidaknya beberapa dioda perlindungan). Input akan mengambang ketika saklar tidak ditekan, tetapi ketika ditekan outputnya pasti tinggi (M1 aktif dan M2 mati).
Spehro Pefhany
Bukankah port I / O di sebelah kanan dalam skema Anda ditarik ke beberapa tegangan yang diketahui melalui LED bukannya benar-benar mengambang? Saya pikir artikel tersebut mengacu pada input dari gerbang NOT ketika mengatakan "I / O pin". Pada teks setelah Gambar 1, itu hanya membingungkan Vcc dengan GND dasar. Setelah Gambar 2, mereka adalah jalan yang benar lagi.
ilkkachu
Tidak, LED tidak akan mempengaruhi tegangan yang cukup untuk dikhawatirkan (itu masih berupa logika 1 atau logika 0). Seperti yang saya katakan pada awalnya, saya tidak berpikir itu mengacu pada input gerbang NOT. Ini bukan mikrokontroler dan hanya input bukan pin I / O, tapi sebenarnya halaman ini tidak begitu jelas untuk pemula.
Spehro Pefhany
Terima kasih, sekarang lebih jelas berkat jawaban Anda dan semua yang lainnya. Saya
membesarkan hati
2

Penarik pull-up atau pull-down dimaksudkan untuk memperbaiki level logika (0 pada GND atau 1 pada VCC). Resistor memiliki impedansi yang lebih tinggi daripada tombol. Ketika Anda menekan tombol, level dapat berubah (jika kabel terkoreksi).

"Not gate" yang mewakili MCU dalam angka-angka sangat mendasar dan penulis mengabaikan pasokan VCC. Tentu saja dalam Gambar 2 dan 3 Vcc hadir dan terhubung dengan baik.

Kalimat yang Anda pilih adalah untuk menjelaskan logika "aktif tinggi". Yang sesuai dengan gambar 1 adalah

Menggunakan resistor pull-up, pin I / O biasanya akan melihat logika tinggi dan ketika tombol ditekan itu akan melihat rendah

Julien
sumber
1

Karena input mengambang pada CMOS dapat bocor ke level input salah, cenderung rentan terhadap gangguan, baik input tersembunyi R-up di port input uC dengan beralih ke ground atau bias eksternal R ke satu rel pasokan Vdd atau Vss dan beralih ke rel yang berlawanan.

Tony Stewart Sunnyskyguy EE75
sumber