Giriş veya Çıkış MCU Pinlerinde Çekme ve Çekme Direnci Kullanımı


18

Yukarı / aşağı dirençler (dahili veya harici) sadece MCU INPUT pinleri için mi gereklidir? Bunun aksine, bir ÇIKIŞ olarak yapılandırılan bir MCU pimi, sürüşü yaptığı için hangi seviyede olduğunu bilir - başka bir devrenin bazı girişlerine bağlanan "kayan" bir MCU ÇIKIŞ pimi, mantıklı değildir, çünkü MCU piminin durumu sadece yüksek veya düşük olabilir ... bu hakkım var mı? Şimdi, MCU önyüklemesi veya arızası üzerine, bazı IC girişlerinin asla yüzmediğinden emin olmak için bu "MCU çıkışından IC girişine" hattına bir yukarı / aşağı bağlanması yararlı olabilir.

Belki de burada kendi sorumu cevapladım ... açılır / aşağı dirençler uygulamaya bağlı olarak hem giriş hem de çıkış pimlerinde kullanılabilir?

Yanıtlar:


21

Pull-up ve Pull-down'lar normalde bir hattın aktif olarak sürülmezken tanımlanmış bir duruma sahip olmasını sağlamak için kullanılır. Yüksek ve alçak ve orta "tanımsız" bir bölge arasında hızla geçiş yaparak, kayan çizgileri önlemek için girişlerde kullanılırlar. Çıktıların normalde bunlara ihtiyacı yoktur.

Ancak çoğu mcu pini GPIO'dur ve bazen başlangıçta çıkışlar yerine girişler olarak tanımlanır. Söylediğiniz gibi, bazen başlangıçta yüzen bir IC pin girişi istemezsiniz, özellikle de normalde mikrodenetleyicinizin GPIO'su ile süreceğiniz bir sıfırlama pimi gibi.

Bu, hatta bir Zayıf Çekme veya Aşağı Çekme kullandığınız zamandır . Zayıf oldukları ve varsayılan durumu seçtiğiniz için, devrenizle herhangi bir etkileşim sağlamazlar (Girişin her zaman düşük olması gerekiyorsa, daha sonra yüksek çekilirse, zayıf bir aşağı çekme seçersiniz ve bunun tersi de geçerlidir), ancak biraz akım tüketiyorlar. Bu nedenle iş için yeterince zayıf bir direnç (değer ne kadar yüksek, zayıf) seçersiniz.

Pull-up (veya pull-down, rarer) kullanan bir başka normal çıkış ayarı Açık Boşaltma veya Açık Toplayıcı bağlantılarıdır. Bunlar sadece bir bağlantıyı azaltır veya hattı serbest bırakarak serbest bırakır. Pull-up'lar çizgiyi yüksek bir mantık durumuna getirmek için kullanılır.


Açık Tahliye ve Açık Toplayıcı bağlantılarından bahsediyorsunuz, bunlar mikrodenetleyiciler için geçerli değil mi? Sadece Mosfetler mantıklı bir seviye belirlemek için mi kullanılıyor? Mikrodenetleyicinin aşağı çekme direnci yüksek olan bir hattı sürüp süremeyeceğini açıklığa kavuşturmak istedim.
genericpurpleturtle

9

Haklısın; normalde çıkışlarda pullup'lara ihtiyacınız yoktur, ancak önyükleme süresi sırasında güvenliği korumak için faydalı olabilirler.

Bir çıkışta pull-up kullanmanın bir başka nedeni: birkaç MPU'dan birkaç çıkış birbirine bağlanırsa, gerçekten aynı kabloda bir VCC sürüşü ve başka bir 0V sürüşü istemezsiniz! Böylece ya çıkışta 0V kullanırsınız ya da çıkışı kapatırsınız (belki bir giriş olarak yapılandırarak). Tüm çıkışlar kapalıyken, kablo çekme yoluyla '1' (Vcc) 'ye çekilir. Buna "kablolu AND" sinyali denir. (Aynı sürüş '1' veya kapalı, R açılan ile yapabilirsiniz, o zaman buna kablolu VEYA denir).

Bu model, herhangi bir MPU'nun bir hata sinyali vermesine veya bir LED'i açmasına izin vermenin veya hepsinin sırayla tek bir kabloda mesaj göndermesine izin vermesini içeren çeşitli kullanımlara sahiptir.


4

Belirttiğiniz gibi, çıkış pinleri olması beklenen pinlerde çekme / açılan dirençlerin kullanılması bir giriş durumunu garanti etmek için orada olabilir.

Bu, bellenim / MCU arızasını azaltmak için yapılır, ancak yalnızca Hi-empedans durumuna karşı koruma için çalışır (temel olarak pim yanlışlıkla giriş olarak yapılandırılır).

Çoğu MCU'lar, önyüklemede yüksek empedanslı giriş durumuna varsayılan IO pinlerine aşinayım (ancak garanti yok ve tüm MCU ailelerinin yakınında herhangi bir yerde deneyimim yok), bu da pimi başlatmak için kodun biraz zaman alabileceği anlamına geliyor durumu yürütülür.

Bazen bu önemli değil, bazen de önemli.


Diğer cevapları da tamamlayan cevap için teşekkürler! FYI, PIC24F serisi sıfırlandığında (G / Ç pin veri sayfası) GPIO pinlerini varsayılan olarak yüksek empedans (giriş) olarak ayarlar.
The_Ders

3

Cevap, mikrodenetleyici ailesine ve varsayılan davranışının Güç Açma Sıfırlama'ya bağlı olmasıdır. Mikrodenetleyici yalnızca bir pim üzerinde "çıkış" veya "giriş" için yapılandırılabilirse, bu genellikle çıkış için bir Totem-Pole sürücüsü kullandığı anlamına gelir - yani aslında bir CMOS geçidinin çıkışıdır, bu durumda çıktı her zaman bir raya yönlendirilir, bu yüzden onu pasif olarak etkilemek için bir neden yoktur. Çıktıda pull-up / pull-down kullanmanın mantıklı olduğu tek durum, Open Collector / Open Drain topolojisi olarak yapılandırılmış olmasıdır. Yalnızca bir pin giriş olarak yapılandırıldığında geçerli olan dahili yukarı / aşağı çekme seçeneklerini görmek çok daha yaygındır. Sisteminizde girişin her zaman bir şey tarafından yönlendirildiğini garanti ederseniz, bu biraz güç harcar.


Donanım düzeyinde harika açıklama. Teşekkür ederim!
The_Ders

2

Bazen bir çıkış olan bir pim olabilirI2C yapmak gibi .


Gelecekte I2C ile çalışırken bunu aklımda tutacağım. PIC24F serisine inanıyorum, I2C modülü pimler üzerinde tam kontrol sağlıyor ve hatlar harici çekmeler gerektiriyor. Şimdi bunun neden olduğunu biliyorum - I2C modülü, veri pininin veri çıkışından / çıkışına girilmesine / I2C modülü ... buna hakkım var mı? I2C'ye aşina değilim.
The_Ders

Bu kesinlikle doğru.
pjc50

I2C, kablolu AND modelinin bir örneğidir. Açık kollektör, bir GPIO piniyle olabildiğince basit hale getirir.
Brian Drummond
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.