Quais frequências SPI o Raspberry Pi suporta?
Além disso:
- Todos eles são suportados pelo driver SPI bootc.net ?
- Existem coisas adicionais sobre as quais devo ter cuidado ao tentar me comunicar com outro chip via SPI?
Quais frequências SPI o Raspberry Pi suporta?
Além disso:
Respostas:
O Raspberry Pi SPI é executado na velocidade do clock do APB, que é equivalente à velocidade do clock do núcleo, 250 MHz. Isso pode ser dividido por qualquer número par de 2 a 65536 para a velocidade desejada. A folha de dados especifica que o divisor deve ter uma potência de dois, mas isso está incorreto . Os números ímpares são arredondados para baixo e 0 (ou 1) é equivalente a 65536. Portanto, um divisor menor que 2 é impossível.
Isso faz com que a faixa de freqüência seja de 3,814 kHz a 125 MHz, com 32768 etapas no meio.
(Houve muita desinformação sobre esse assunto, mas esses resultados foram verificados por experimentação. Por favor, espalhe a notícia.)
O SPI pode ser executado na velocidade do clock principal ou dividido em periféricos mais lentos. O clock do núcleo é de 250 MHz. O divisor pode ser definido com qualquer potência de dois - de 2 ^ 0 até 2 ^ 16. Isso significa que as frequências SPI de 3,8 kHz a 250 MHz são suportadas.
Fontes:
.rate = 250000000, /* 250MHz */
https://github.com/bootc/linux/blob/073993b3f3e23fb8d376f9e159eee410968e0c57/arch/arm/mach-bcm2708/bcm2708.cA folha de dados do BCM2835 diz o seguinte na página 120: O valor do registro de relógio do bloco SPI contém.
BC Clock Divider SCLK = Relógio Principal / CDIV Se CDIV estiver definido como 0, o divisor é 65536. O divisor deve ter uma potência de 2. Números ímpares arredondados para baixo. A taxa máxima de clock do SPI é do clock do APB.
Não consigo encontrar nenhuma referência ao que é a frequência máxima do barramento APB, acho que faz parte da documentação do ARM11 e não deste SoC.
Eu testei com o como visto em http://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.html e alterei a velocidade.
A velocidade máxima quando o teste foi aprovado é 15MHz = 15000KHz: Veja o resultado:
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
O teste em 16MHz falhou. André