IO pinlerinin her birinin kendi yukarı / aşağı dirençleri olmalı mı?


13

Çok temel bir soru:

Bir anahtardan veya atlama kablosundan giriş görevi gören bir mikrodenetleyicinin her bir IO pininde kendi çekme / indirme direnci olmalıdır mı?

Basit 3 pimli IO şeması

Bu örnekte, her pim bir direnç tarafından aşağı çekilir, daha sonra 1P3T anahtarı ile VCC'ye doğru çekilir.

Basit görünüyor, ancak daha fazla IO pimi kullanıldıkça, kesinlikle daha fazla direnç gerekli mi? Direnci geri saymanın akıllıca bir yolu var mı?

İlgili soru: Bir çekme direncini paylaşma

Yanıtlar:


16

Sunulan şemaya göre, 3 girişin tümü bir direnci paylaşıyorsa, anahtar aracılığıyla yüksekte çekilen hatlardan herhangi biri, tasarımın amacına karşı koyarak 3 hattın tümünü de yükseltir - MCU, hangi anahtar konumunun olduğunu bilmez seçilen.

Bu tür tasarımlar için direnç sayısını değil parça sayısını azaltmanın yaygın bir yolu, ortak bir veri yolu direnç ağı veya dizisi kullanmaktır:
Ortak Bus Direnç Dizisi ( buradan )


Bunlar, ihtiyaçlarınıza bağlı olarak çeşitli direnç sayılarında delikten SIP / DIP ve SMD olarak mevcuttur. Veri yolu pimi toprağa bağlanır ve diğer pinler şemanızdaki gibi ilgili MCU girişlerine bağlanır. SIP direnç dizileri ( buradan )

SMD direnç dizileri ( buradan )


8

Çoğu MCU'da, her bir pim için isteğe bağlı çekme (aşağı değil) dirençleri bulunur, bu nedenle pimleri anahtarla AŞAĞI çekin (ve yazılımdaki polarite tersine çevirme).

Yani - direnç gerekmez.

Neden aşağı çekilmeli, aşağı değil, 1970'lerin TTL mantık devresinden kalan bir alışkanlıktır, burada bir girişi aşağıya çekmek için çok daha az akım aldı - bir açılan direnç daha fazla güç harcayacaktır. Bu, günümüzün CMOS mantığı için geçerli değildir, ancak pull-up geleneği devam etmiştir, böylece 5V CMOS yongalarının eski TTL mantığıyla uyumluydu.


Çekmenin nedeninin ortak kullanımlarının açık kollektör çıkışları ile olması olduğunu düşündüm ve bir kez gitme alışkanlığına girdikten sonra iyi bir sebep olmadan bu şekilde devam edeceksiniz.
dunkers

Ayrıca, TTL çıkışları 16mA batabilir ancak sadece 800uA kaynak yapabilir, bu nedenle bir çıkışa kas eklemek için bir pull-up kullanılabilir. Bir TTL girişi, bağlamadıysanız kendisini yukarı çeker, bu nedenle giriş nedenleriyle bir çekme benim için biraz garip görünüyor. (Üzgünüm, önceki yorumu düzenlemek için çok uzun süre bekledi ...)
dunkers

"bir TTL girişi kendini yukarı çeker" ... bir dereceye kadar evet, ama güvenilir bir şekilde değil - büyük turuncu kitap Vin> 2.4V (7400 için; 74LS için 20ua) garanti etmek için 40 mikroamp Ih belirtir. Çalıştığım hiçbir yerde tavsiye edilmez ...
Brian Drummond

1
Çekme ve çekişler sadece tarihi değil. Bir çekme direnci ile, anahtarın diğer tarafı genellikle uygun olan topraklanabilir.
Olin Lathrop

1
TI MSP430 mikrodenetleyiciler ailesi hem dahili çekme hem de çekme işlemlerine sahiptir.
Passerby

0

Hiçbir zaman kendisini yukarı veya aşağı çekeceği varsayımı üzerine bir mantığı açık bırakmak istemezsiniz. bir giriş açık bırakılırsa, küçük bir antendir ve ayrıca mantık aygıtındaki akımlara maruz kalır. Böylece, temiz ve öngörülebilir bir girişe sahip olduğunuzdan emin olmak için yukarı veya aşağı çekersiniz. 1980'lerde Fairchild Semiconductor'da çalışırken bu kuralı öğrendim.


1
Bu, sorulan soruya cevap vermez.
Photon

Orijinal sorunun bağlamı, bir MCU için girişler olan düğmeler ve anahtarlamalı olmasıdır. Bir G / Ç pini kullanılmazsa, bellenimden düşük (veya yüksek) bir çıkış yapılabilir. Bu, gizlenen EMI sorunlarını ele almalıdır ve harici bir direnç gerektirmez.
Nick Alexeev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.