2'den fazla SPI slave ekleyin


12

Şemada gördüğüm gibi, köleler için 2 kanal var - CS0 ve CS1. MCP3008 ya da başka bir şey gibi sadece 2 çip bağlayabileceğim anlamına mı geliyor? Yoksa bu 2 bağlı köleye daha fazla köle ekleyebilir miyim.

Ahududu şemasının Wikipedia'dan alınan bu SPI köleler bağlantı şemasıyla desteği veya ortak bir yanı var mı? Böyle yapmak mümkün mü?

SPI köleleri


"Böyle yapmak mümkün mü?" -> Bana öyle geliyor ki Pi'nin SS1, SS2, SS3 yerine CE0 ve CE1 olması dışında. SCLK, MOSI ve MISO veri yolu hatları her iki durumda da tüm cihazlar arasında paylaşılır.
goldilocks

Yanıtlar:


12

Çok şekilde.

Köle seçer biraz patlama, yani paylaşılan MISO / MOSI / SCLK ve toprak ama ayrı CS ile tüm cihazları bağlamak. SPI sürücüsünü aramadan önce istediğiniz cihaz için CS'yi düşük yapmanız yeterlidir. SPI sürücüsü bir CS ayarlamaya çalışır, ancak bağlı olmadığını bilmez.

40 pin genişleme başlığına sahip Pis, 3 çip seçimli başka bir SPI cihazına sahiptir. Benim pigpio kütüphanem bu cihazı destekliyor.

Yazılım bit tüm protokolü patlama.

CS hattını istediğiniz herhangi bir cihaza geçirmek için ek donanım ekleyebilirsiniz.

Vs vs.

EKLENDİ

"Uygun" Raspberry Pi Linux SPI sürücüsü şu anda keyfi gpios CS olarak kullanılmasına izin vermek için gözden geçiriliyor.

2 EKLENDİ

Mevcut Linux SPI sürücüsünün (spi_bcm2853) çipin seçtiği gibi rastgele GPIO'yu desteklediği söyleniyor. Bkz. / Boot / yer paylaşımları / README.


1
"keyfi gpios'a izin ver" kendi başına iyi bir fikir ve gömülü bir sistemden ne beklenebilir. Giriş için teşekkürler.
Ghanima

Joan, lütfen "pigpio" kütüphanesi ile "3 çipli başka bir SPI cihazının" nasıl kullanılacağını açıklayın veya kod örneğine bağlantı verin. Bu, sorunun yanıtlanmasına yardımcı olacaktır. Teşekkürler
Alex

Bkz. Abyz.co.uk/rpi/pigpio/cif.html#spiAçık . GPIO 16-21 yardımcı SPI'ya bağlanır. Bkz. Abyz.co.uk/rpi/pigpio/index.html#Type_3 . Alternatif olarak, şu anda mevcut olan Linux SPI sürücüsünün (spi_bcm2853), çip seçerken rastgele GPIO'yu desteklediği söyleniyor. Bkz. / Boot / yer paylaşımları / README.
joan

"40 pin genişleme başlığına sahip Pis, 3 çip

1
@meh 40 iğneli genişletme başlığında 5 çip seçimi vardır. Ana SPI için iki, yardımcı SPI için 3. Yardımcı SPI sinyalleri abyz.co.uk/rpi/pigpio/index.html#Type_3
joan

3

RaspberryPi'nin SPI veriyolunda sadece iki çip seçimi sağladığından haklısınız ( buraya bakın ). Ve SPI sürücülerinin ve yazılım çözümlerinin bu gerçeğe dayandığını varsayıyorum (@ joan'ın cevabı farklı kütüphanelerin farklı işlediğini ve resmi sürücünün gelecekteki yonga seçimleri olarak keyfi GPIO pinlerinin kullanılmasına izin vereceğini gösteriyor olsa da).

Bununla birlikte, bir çip seçiminin Pi'nin dijital çıkışından başka bir şey olmadığını unutmayın. Bu nedenle, GPIO pinlerini kullanırsanız, her zaman daha fazla miktarda çip seçimi yapabilirsiniz. Ancak bu durumda yazılımınız doğru SPI bağımlı birimini ele almak için uygun pinleri ayarlamaktan sorumlu olacaktır.

Tüm çip seçimleri fikri sadece tek bir slave'i karşılıklı olarak seçmek olduğundan, "boşa" GPIO pinlerinin miktarını azaltmak için bazı basit dijital devreleri de kullanabilirsiniz (başka amaçlar için de gerekiyorsa). 74HC / HCT138 gibi bir şey, 3 ila 8 satırlı bir kod çözücü / demultiplexer, sadece 3 GPIO pimi ile 8 çip seçimi ile 8 köleyi ele almak için kullanılabilir.

SCLK ve MOSI otobüs hatlarının tüm köleler arasında paylaşıldığını unutmamak gerekir. Bu nedenle, Pi'ye birden fazla slave bağlarken, Pi'nin fanının yük tarafından (kölelerin giriş pimlerinin direnci ve kapasitansı) aşılmadığından emin olun - bu, bugün düşük kapasitans ve dijital girişlerin yüksek direnci.


1

Bunun için bir RPi mühendisi PhilE, ahududu forumunda çok iyi bir cevap var , bkz . 28 Eylül 2015 . Temel olarak, yonga seçimi olarak ücretsiz GPIO'lara sahip olma olasılığını kullanan spi-bcm2835 ile bir Aygıt Ağacı yer paylaşımı örneği verir.

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.