GPIO: Düğmeyi neden + 3.3v yerine toprağa bağlayın?


14

Çoğu örnekte, GPIO girişlerine kablolama düğmeleri gördüğümde, düğme, kapatıldığında pim ve toprak arasında bir devre tamamlanarak pim üzerinde düşük bir giriş oluşturacak şekilde kablolanır. Giriş değerini varsayılan olarak yüksek yapmak için bir çekme direnci kullanılır. Pi üzerindeki kod daha sonra bir düğmeye basıldığında düşük algılayabilir.

Düğmeleri + 3.3v'ye bağladım, böylece sinyal daha yüksek gibi görünüyor ve kod daha mantıklı görünüyor, ancak çoğu insanın toprağa bağlanmayı tercih etmesinin bir nedeni olmalı. Avantajları nelerdir?


Not: 'yukarı çekme direnci' dediğimde, kodda yapılandırılmış fiziksel bir harici direnç veya dahili yukarı çekme direnci demek istedim.
howard10

Yanıtlar:


19

GND'ye kablo düğmeleri ve mantığının tercih edilmesinin (ve daha sonra tüm internette kopyalanmasının) ana nedenlerinden biri güç optimizasyonudur.

  • GND'ye dirençli bir pimi DÜŞÜK çekmek 0 watt maliyeti.
  • Dirençli + Vcc'ye YÜKSEK bir pim çekmek güç gerektirir.

Karmaşık devrelerde veya bataryalara dayanan devrelerde bu güç çok değerlidir.

Diğer nedenler arasında düşük EMF üretimi bulunur. Kablosuz cihazlarda mantığı yüksek çekmek, aşırı hassas RF alıcılarında gereksiz çapraz konuşmaya neden olur. Bu tür alıcı-vericilerde gürültüyü filtrelemek için kullanılan bir GND düzlemi vardır ve burası tüm mantığın aşağı çekildiği yerdir. İşlemci daha sonra anahtarlama seslerini filtrelemek için GND düzlemini kullanır.


3
Direnç ile yukarı veya aşağı çekmenin gücü ne kadardır? Akım, Pi üzerindeki çok yüksek empedans girişine akar, bu da herhangi bir akımı mikroWatt güç olan sub-microAmp'lara indirir.
stefandz

Tamam, ama bana yanlış olduğumu söyle. bir pimi aşağı çekmek, bu 0v = 0wattskullanımdır, ancak bir pimi yukarı çekmek >0watts- herhangi bir tür, mikro, milli, nano, önemli değildir. Belirtildiği gibi, pil gücünde her nano watt yardımcı olur. Ama burada daha önce cevaplandığı gibi ... USB'de hiçbir şey ifade etmiyor. Yanlış mıyım?
Piotr Kula

1
Mutlaka doğru değil. Dijital girişler toprağa karşı yüksek empedanslıdır - doğru. Ancak bunlar sadece direnç değildir. Bunlar normalde FET'lere giriş kapılarıdır ve bu kapılar ideal değildir. Kaçak akımlara sahiptirler ve bu kaçak akımlar her iki yönde, içeri veya dışarı doğru olabilir. Dolayısıyla açılan ürününüz, bir pull-up yapabildiği kadar bir ya da iki mikro-litre tüketebilir.
stefandz

2AA pillerle çalışan gömülü bir cihaz tasarlamanız gerekiyorsa ve müşteri en az 12 ay boyunca çalışmasını istiyorsa. Ve bir GPIO'yu aşağı çekmek / yukarı çekmek zorundasınız. En fazla güçten tasarruf etmek için hangisini kullanırsınız? (Burada mikro yönetimden bahsediyoruz)
Piotr Kula

4
Değer için, bu konuda bazı ölçümler yaptım - ve açılan kazançlar (güç tüketimi için) ama sadece. 3.3k = 9fW'a kadar 10k çekme (evet femtowatt) - toprağa 10k açılan = 5fW. Bu kesinlikle biraz pil bölgesinden tasarruf etmiyor.
stefandz

10

Elektrik mühendislerinin girişleri genellikle dirençlerle yüksek şekilde çekmesinin ve bunları topraklamak için anahtarları kullanmasının karmaşık tarihsel nedenleri vardır.

Ancak bu nedenler özellikle Raspberry Pi'nin hobi kullanımı ile ilgili değildir. Sizin için anlamlı olanı kullanın.

Ticari bir ürün yapıyorsanız veya tasarımınızın biraz daha iyi olmasını istiyorsanız, aşağıdaki pratik nedenlerden dolayı topraklama anahtarlı pull-up'ları seçeceksiniz:

  • Uzun bir topraklama kablosu güce bağlı olandan daha az EMI / EMC radyasyon riski taşır
  • Bir şeyi topraklamak ve bağlanmak için bir zemin noktası bulmak güç hattından daha kolaydır
  • Tipik olarak devreden biraz uzağa yerleştirilen anahtar veya kablolar hasar görürse veya kabloyu veya dahili anahtar parçalarını kasaya veya kullanıcıya kısaltırsa, hiçbir zarar verilmez - hepsi zeminde

2

Kesinlikle bir pull-up direncine gerek yoktur, BMC GPIO, giriş olarak programlandığında, hiçbir zarar görmese de etkinleştirilen dahili pull-up dirençlere sahiptir.

GPIO pinini doğrudan 3V3 veya GND'ye bağlamak zayıf bir uygulamadır. GPIO çift yönlüdür ve giriş olarak programlanırsa sorun olmaz. Öte yandan bir çıkış olarak programlanırsa aşırı akım çekilmesine neden olur.

İyi (güvenli) tasarım, akımı sınırlamak için basmalı düğmeyle seri seri direnç (1 kΩ) kullanır. Adam Davis'in nedenlerinden dolayı, butonu toprağa bağlamak ve GPIO pinine yakın koruyucu direnci bulmak tercih edilir.


Tek sorun, önyükleme aşamaları 1-3 sırasında bu pinlerin yüzer (GPU'dan CPU'ya aktarımı) ve daha sonra Linux Çekirdeği önyüklemesi sırasında Faz 4'te PIN'lerin doğru duruma ayarlanmasıdır. Bu, kapılar için mantık bekleyen ciddi sorunlara neden olabilir. Bu nedenle, önyükleme sırasında yüzen sürenin devrelerinizi zihinsel hale getirmemesi için onları yine de aşağı çekmeniz önerilir!
Piotr Kula

1

RPi'de birini diğerinden tercih etmek için bir neden olduğunu düşünmüyorum. Çoğu insan muhtemelen başka yerlerde gördükleri devreleri kopyalar veya taşır.

Devreyi (teller veya PCB ile) bağlarken, hangisinin daha uygun olduğunu seçmek ve bunu yazılımınızda doğru anlama çevirmek iyidir.


0

TTL'nin eski günlerinde, bir pimi alçaltmak, yüksek çekmekten çok daha fazla akım gerektiriyordu. Dolayısıyla, bir çekme direnci bir açılan dirence göre daha yüksek direnç (ve dolayısıyla daha az güç israfı) olabilir. Modern CMOS ile önemli değil, ancak eski alışkanlıklar zor ölüyor.


-1

Pimi dahili bir çekme direnci ile toprağa bağlamak daha az parça kullandığınız anlamına gelir. Tek ihtiyacınız olan bir düğme; akımı sınırlamak için harici bir dirence ihtiyaç duymazsınız.

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.