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?
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.cfonte
A folha de dados do BCM2835 diz o seguinte na página 120: O valor do registro de relógio do bloco SPI contém.
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.
fonte
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:
O teste em 16MHz falhou. André
fonte