Mengapa kita perlu resistor penarik eksternal ketika mikrokontroler memiliki resistor penarik internal?

15

Mikrokontroler memiliki resistor pull-pull down internal, tetapi sebagian besar sirkuit memiliki resistor pulling eksternal.

Saya mencari di Google untuk jawaban dan beberapa situs mengatakan bahwa resistor itu tidak begitu kuat tetapi saya pikir mereka cukup baik untuk bekerja. Saya punya pemikiran bahwa mereka mungkin perlu eksternal karena resistor internal perlu dipicu oleh pemrograman.

Jadi untuk beberapa situasi yang tidak direncanakan, mereka juga memasang resistor eksternal. Tapi saya tidak yakin tentang itu.

Apa alasan sebenarnya di balik penggunaan eksternal ketika kita memiliki internal?

Gunjan Gangwani
sumber
6
Beberapa mikrokontroler memiliki resistor internal. Dan resistor tersebut tidak berukuran dengan benar untuk semua aplikasi (biasanya dioptimalkan untuk daya rendah).
Dave Tweed
2
Apa yang terjadi jika saya menghilangkan resistor pullup pada saluran I2C? Utas ini adalah analisis upaya untuk menggunakan resistor pull-up internal dengan I2C.
Nick Alexeev
"Jadi untuk beberapa situasi yang tidak direncanakan, mereka memasang resistor eksternal juga." Terkadang situasi yang direncanakan juga. Seringkali lebih mudah / lebih cepat / lebih murah dalam lingkungan produksi untuk memindahkan resistor dari satu tempat ke tempat lain daripada harus menginstal ulang firmware untuk mendapatkan hasil yang sama. Melakukannya dalam firmware kemungkinan akan melibatkan rilis kedua dari firmware yang sama yang perlu dipertahankan. Dengan modifikasi solder semua yang diperlukan adalah instruksi kerja bersyarat.
Wossname

Jawaban:

30

Ada beberapa kemungkinan alasan, seperti

  • Membutuhkan resistor untuk hadir selama power-up, karena mikrokontroler belum akan mulai dijalankan.
  • Membutuhkan resistensi yang lebih presisi daripada resistor internal. Resistor pull-up / down internal memiliki toleransi yang sangat luas.
  • Membutuhkan resistensi lebih besar atau lebih kecil dari yang disediakan secara internal. Sebagai contoh, I 2 C biasanya menggunakan pullup yang lebih kuat, sementara Anda mungkin ingin pullup yang sangat lemah untuk memonitor switch, untuk menghemat daya.
  • Perlu menarik ke tegangan selain tegangan suplai mikrokontroler atau arde.
  • Menggunakan resistor pull-up / -down bersama dengan ADC pada mikrokontroler. Beberapa mikrokontroler menonaktifkan resistor internal mereka pada pin apa pun yang terhubung dengan ADC.
  • Membutuhkan resistor pull-down pada mikrokontroler yang hanya memiliki pullup.
Abe Karplus
sumber
Saya tidak dapat memahami poin kedua terakhir ... Mengapa mikrokontroler menonaktifkan resistor internal mereka dengan ADC
Gunjan Gangwani
3
@ GunjanGangwani Saya tidak berpikir itu adalah keputusan desain yang bagus, tetapi idenya adalah bahwa biasanya Anda tidak ingin ADC untuk menarik arus dari hal yang diukur, sehingga Anda ingin koneksi impedansi tinggi. Saya kira beberapa desainer tidak mempercayai pengembang firmware untuk selalu menonaktifkan resistor internal.
Abe Karplus
7
Saya pikir itu normal karena pull-up / pull-down dikaitkan dengan buffer input digital, dan mengaktifkan ADC kadang-kadang dapat sepenuhnya menonaktifkan sirkuit buffering digital (dan dengan itu, resistor pull-up / down).
Connor Wolf
3
@ Ashutosh Jika Anda menginginkan impedansi tinggi, tentu saja Anda tidak menggunakan pullup. Beberapa mikrokontroler menegakkan ini dengan secara otomatis mematikan pullup internal mereka, yang merupakan masalah dalam situasi di mana Anda tidak ingin impedansi tinggi.
Abe Karplus
1
Input ADG @GunjanGangwani harus diisolasi dari semua sirkuit lain untuk memberikan tingkat kebisingan terendah. Input digital sering mengkonsumsi lebih banyak arus daripada yang diinginkan ketika didorong antara voltase "tinggi" dan "rendah". Mikrokontroler yang lebih lama menggunakan sakelar internal untuk memutuskan input dari bagian digital ketika pin tersebut digunakan untuk ADC, dan bagian digital itulah yang menarik. Ini terputus untuk mengisolasi ADC dan menurunkan tingkat kebisingan, serta mencegah kemungkinan penarikan arus tambahan (atau dalam chip yang sangat lama, latchup cmos).
Adam Davis
9

Beberapa (atau mungkin banyak) mikrokontroler memiliki resistor pull-up internal, tetapi ini sering bernilai cukup tinggi. Banyak aplikasi akan membutuhkan nilai pull-up yang lebih rendah.

Resistor pull-up mungkin juga diperlukan pada input ke sirkuit logika normal (gerbang, counter, dll.) Yang tidak memiliki pull-up internal (dan kadang-kadang kita ingin resistor pull-down, sebagai gantinya ...)

Peter Bennett
sumber
1
resistor pull-up internal, tetapi ini sering nilai-nilai yang cukup tinggi. Saya sedang membangun aplikasi daya rendah baru-baru ini dan menemukan bahwa resistor pull up sekitar 50 k yang saya temukan agak rendah sehingga terlalu banyak penggunaan saat ini. Jadi saya menggunakan resistor eksternal bernilai lebih tinggi. Pada akhirnya itu tergantung pada apa kebutuhan Anda.
Bimpelrekkie
3

Selain itu, Anda akan menggunakan resistor eksternal setiap kali Anda membutuhkan nilai resistansi aktual. MCU biasanya tidak memiliki resistor pull-up yang sebenarnya melainkan MOSFET yang mengalirkan arus kecil, sehingga nilai resistansi ekivalennya dapat sangat bervariasi tergantung pada sinyal yang Anda terapkan pada pin.

Dmitry Grigoryev
sumber