Jakie częstotliwości SPI obsługuje Raspberry Pi?
Dodatkowo:
- Czy wszystkie są obsługiwane przez sterownik SPI bootc.net ?
- Czy są jakieś dodatkowe rzeczy, na które powinienem uważać, próbując komunikować się z innym chipem za pośrednictwem SPI?
Jakie częstotliwości SPI obsługuje Raspberry Pi?
Dodatkowo:
Odpowiedzi:
Raspberry Pi SPI działa z częstotliwością taktowania APB, co odpowiada szybkości taktowania rdzenia, 250 MHz. Można to podzielić na dowolną liczbę parzystą od 2 do 65536 dla żądanej prędkości. Arkusz danych określa, że dzielnik musi mieć potęgę dwóch, ale jest to niepoprawne . Liczby nieparzyste są zaokrąglane w dół, a 0 (lub 1) odpowiada 65536. Dzielnik mniejszy niż 2 jest zatem niemożliwy.
To sprawia, że zakres częstotliwości wynosi od 3,814 kHz do 125 MHz, z krokiem 32768 pomiędzy nimi.
(Było wiele dezinformacji w tej sprawie, ale wyniki te zostały zweryfikowane przez eksperymenty. Proszę rozpowszechniać informacje.)
Interfejs SPI można uruchamiać z częstotliwością taktowania rdzenia lub podzielić na wolniejsze urządzenia peryferyjne. Zegar rdzenia wynosi 250 MHz. Dzielnik można ustawić na dowolną potęgę dwóch - od 2 ^ 0 aż do 2 ^ 16. Oznacza to, że obsługiwane są częstotliwości SPI od 3,8 kHz do 250 MHz.
Źródła:
.rate = 250000000, /* 250MHz */
https://github.com/bootc/linux/blob/073993b3f3e23fb8d376f9e159eee410968e0c57/arch/arm/mach-bcm2708/bcm2708.cDatasheet od BCM2835 mówi następujących na stronie 120: Wartość rejestru zegara bloku SPI zawiera.
BC Clock Divider SCLK = Core Clock / CDIV Jeśli CDIV jest ustawiony na 0, dzielnikiem jest 65536. Dzielnikiem musi być potęga 2. Dziwne liczby zaokrąglone w dół. Maksymalna częstotliwość zegara SPI jest zgodna z zegarem APB.
Nie mogę znaleźć żadnego odniesienia do maksymalnej częstotliwości magistrali APB, myślę, że jest to część dokumentacji ARM11, a nie tego SoC.
Przetestowałem z jak widać na http://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.html i zmieniłem prędkość.
Maksymalna prędkość po przejściu testu wynosi 15 MHz = 15000 KHz: Zobacz wynik:
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
Test przy 16 MHz nie powiódł się. André