Pertimbangan saat menggunakan resistor pull-up / down internal

11

Saya bekerja dengan mikrokontroler STM32. Kontroler mikro ini memiliki opsi untuk mengatur pin input sebagai menarik ke atas atau ke bawah:

masukkan deskripsi gambar di sini

Sebelumnya saya biasa memberikan resistor pull up atau pull down eksternal di mana pun diperlukan, tetapi sekarang saya bertanya-tanya apakah saya dapat menghilangkan komponen eksternal dan menggunakan fitur pull down dari mikrokontroler itu sendiri.

Apakah itu hal yang baik untuk dilakukan?

Apakah ada beberapa use case di mana saya harus mengambil tindakan pencegahan ekstra atau tidak menggunakan fitur ini sama sekali?

Whiskeyjack
sumber
2
Saya menggunakan internal pu / pd kapan pun saya bisa dan tidak punya masalah sofar. Jadi, kecuali Anda memiliki alasan yang sah untuk tidak menggunakan pull-in built-in, Anda bisa menggunakannya. Alasan untuk tidak bergantung pada internal pu / pd bisa jadi bahwa input memiliki kabel panjang yang terhubung dengannya yang mungkin berpasangan dengan jalur lain yang menyebabkan perilaku tak terduga. Pu / pd internal cukup lemah (untuk menghemat arus) dan lebih mudah terganggu daripada misalnya resistor 10 kohm.
Bimpelrekkie
22
Sedikit catatan: ini mungkin tidak berfungsi sebagai pullup saat mikrokontroler mengatur ulang. Jadi jika ada sirkuit eksternal tergantung pada ditariknya sepanjang waktu, Anda mungkin memiliki masalah saat startup. Jika hanya dibaca oleh mikro, ini bukan masalah.
pjc50
1
@ pjc50 Anda seharusnya memposting itu sebagai jawaban, saya tidak melihat komentar Anda sampai setelah saya memposting jawaban saya.
Jason S
1
Jika Anda tidak bisa mempercayai resistor pull up di mikrokontroler, Anda tidak bisa mempercayai apa pun di controller itu. Yang ingin Anda ketahui adalah apakah itu berguna
Pejalan kaki
1
@Whiskeyjack: Anda harus mempertimbangkan untuk mengubah judul pertanyaan. Mungkin "Pertimbangan saat menggunakan resistor pull-up / down internal" atau sesuatu seperti itu.
Rev1.0

Jawaban:

15

Ya ... Anda bisa ... Ini fitur yang sudah terbukti. Jika Anda melihat struktur pin di manual Referensi STM32, Anda dapat melihat bahwa struktur pin memerlukan komponen -

STM32 Struktur pin

Jika ini memenuhi persyaratan Anda, maka, Anda dapat menghapus komponen eksternal.

Sunting Ingat bahwa pada Penyalaan, Pin akan dipangkas. Jika tidak menghambat aplikasi Anda, itu bagus! Itu sebabnya adalah praktik yang baik untuk memulai bagian IO terlebih dahulu dan kemudian melanjutkan dengan perangkat lain.

Swanand
sumber
1
Benar, tetapi masih selama reset itu diprogram kan?
seetharaman
1
Saya menjawab untuk pertanyaan, "Haruskah saya mempercayai fitur pull down micro-controller?" dan sekarang pertanyaannya sendiri berubah: - / Dan dengan pertanyaan baru, jawaban Bence Kaulics lebih akurat!
Swanand
Pertanyaan: apakah menggunakan sekelompok resistor pullup / down internal menyebabkan chip memanas?
Caleb Reister
16

Secara umum, sangat baik untuk menggunakan resistor pull-up atau pull-down internal.

Kekurangannya adalah Anda bisa lupa untuk mengaktifkannya dari perangkat lunak, yang dapat menyebabkan sedikit sakit kepala. Penarik eksternal akan selalu ada di sana. Jadi jangan lupa untuk mengaktifkan yang internal dan menghemat banyak area PCB dengan mengurangi nomor komponen.

30 kΩ50 kΩ

masukkan deskripsi gambar di sini

Anda harus selalu memeriksa apakah aplikasi Anda memerlukan nilai resistor pull-up atau pull-down tertentu sebelum menggunakan resistor internal. Misalnya jangan menggunakannya dengan I 2 C , karena nilai-nilai ini akan terlalu tinggi untuk itu.

Bence Kaulics
sumber
12

Kecuali jika pullup dan pull-down resistor aktif selama reset (saya kira tidak, tetapi saya tidak terbiasa dengan perangkat STM32), ada keadaan pin yang tidak ditentukan saat reset. Ini adalah salah satu alasan utama untuk menggunakan resistor pullup atau pull-down eksternal.

Jason S
sumber
10

Seperti yang dikatakan orang lain, pull-up dan pull-down internal baik-baik saja selama:

  • Anda ingat untuk mengkonfigurasinya,
  • mereka cukup kuat,
  • Anda tidak berakhir melawan mereka dengan tarikan eksternal, dan
  • tegangan saat start-up dan reset tidak penting.

Pada poin terakhir, ingat bahwa input CMOS pada level tegangan menengah dapat menyebabkan arus tembak yang signifikan pada pasangan inputnya. Ini dapat menyebabkan masalah pada sistem daya rendah saat start-up.

Secara umum, resistor penarik eksternal akan menghasilkan desain yang lebih konservatif.

Richard
sumber
1
Berkenaan dengan arus tembakan-tembus, mungkin akan membantu untuk meletakkan berbagai hal dalam perspektif dengan mencatat bahwa untuk sebagian besar mikrokontroler level-levelnya umumnya jauh di bawah apa pun yang akan menyebabkan kerusakan pada perangkat, tetapi mereka mungkin urutan besarnya di atas yang terbaik perangkat. arus case case Dalam beberapa kasus, arus seperti itu tidak penting; pada orang lain mereka adalah pembunuh mutlak.
supercat
1
+1 untuk "tegangan saat startup dan reset tidak penting". Anda perlu memastikan bahwa sisa sirkuit Anda dalam keadaan aman dan diam saat mikro memulai. Ini lebih sulit daripada yang terlihat, ketika Anda menganggap bahwa reset atau siklus daya cepat dapat meninggalkan sisa sirkuit Anda dalam keadaan tak tentu, atau membiarkannya dinyalakan dan berjalan tanpa mikro mengawasi itu.
Graham
3

Selain pengecualian baik lainnya yang tercantum dalam semua jawaban, resistor pull-up internal terlalu lemah untuk I²C dalam banyak kasus.

Scott Seidman
sumber
Tentu saja, beberapa (banyak?) Mikrokontroler memiliki pin saluran terbuka khusus untuk I2C yang dapat Anda konfigurasi
Thomas
1
Saya belum melihat apa pun kecuali pull up / down yang lemah, @ Thomas
Scott Seidman