Raspberry Pi hangi SPI frekanslarını destekliyor?
Bunlara ek olarak:
- Hepsi bootc.net SPI sürücüsü tarafından destekleniyor mu?
- SPI üzerinden başka bir çip ile iletişim kurmaya çalışırken dikkat etmem gereken herhangi bir ek şey var mı?
Raspberry Pi hangi SPI frekanslarını destekliyor?
Bunlara ek olarak:
Yanıtlar:
Raspberry Pi SPI, 250 MHz çekirdek saat hızına eşdeğer olan APB saat hızında çalışıyor. Bu , istenen hız için 2 ila 65536 arasında herhangi bir çift sayıya bölünebilir . Veri sayfası bölenin iki gücünün olması gerektiğini belirtir, ancak bu yanlış . Tek sayılar yuvarlanır ve 0 (veya 1) 65536'ya eşittir. Bu nedenle 2'den küçük bir bölen imkansızdır.
Bu, frekans aralığını 32768 adımda olacak şekilde, 3.814 kHz - 125 MHz arasında yapar.
(Bu konuda çok fazla yanlış bilgi var, ancak bu sonuçlar deneyle doğrulandı. Lütfen sözcüğü yayınlayın.)
SPI çekirdek saat hızında çalıştırılabilir veya daha yavaş çevre birimleri için ayrılabilir. Çekirdek saat 250 MHz. Bölücü, 2 ^ 0 ile 2 ^ 16 arasındaki tüm güçlere ayarlanabilir. Bu, 3,8 kHz - 250 MHz arasındaki SPI frekanslarının desteklendiği anlamına gelir.
Kaynaklar:
.rate = 250000000, /* 250MHz */
https://github.com/bootc/linux/blob/073993b3f3e23fb8d376f9e159eee410968e0c57/arch/arm/mach-bcm2708/bcm2708.cBCM2835 ait veri sayfası sayfa 120 şöyle diyor: SPI bloğunun saat kaydının değeri içerir.
BC Saat Bölücü SCLK = Çekirdek Saat / CDIV CDIV 0 olarak ayarlanmışsa, bölen 65536'dır. Bölenin gücü 2 olmalıdır. Tek sayıların yuvarlanması gerekir. Maksimum SPI saat hızı APB saatindir.
APB veriyolunun maksimum frekansının ne olduğuna dair hiçbir referans bulamıyorum, bunun ARM11 belgelerinin bir parçası olduğunu düşünüyorum, bu SoC değil.
Http://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.html adresinde görüldüğü gibi test ettim ve hızı değiştirdim.
Test geçtiğinde maksimum hız 15MHz = 15000KHz'dir: Sonuca bakın:
spi mode: 0
bits per word: 8
max speed: 15000000 Hz (15000 KHz)
FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D
16MHz'de test başarısız oldu. André