¿Qué frecuencias SPI admite Raspberry Pi?
Adicionalmente:
- ¿Todos ellos son compatibles con el controlador bootc.net SPI ?
- ¿Hay alguna cosa adicional que deba tener cuidado al tratar de comunicarme con algún otro chip a través de SPI?
El SPI de Raspberry Pi funciona a la velocidad de reloj APB, que es equivalente a la velocidad de reloj central, 250 MHz. Esto se puede dividir por cualquier número par de 2 a 65536 para la velocidad deseada. La hoja de datos especifica que el divisor debe ser una potencia de dos, pero esto es incorrecto . Los números impares se redondean hacia abajo y 0 (o 1) es equivalente a 65536. Por lo tanto, un divisor menor que 2 es imposible.
Esto hace que el rango de frecuencia sea de 3.814 kHz a 125 MHz, con 32768 pasos intermedios.
(Ha habido mucha información errónea sobre este asunto, pero estos resultados han sido verificados por experimentación. Por favor, corra la voz).
El SPI puede ejecutarse a la velocidad del reloj central o dividirse para obtener periféricos más lentos. El reloj central es de 250 MHz. El divisor se puede establecer en cualquier potencia de dos, desde 2 ^ 0 hasta 2 ^ 16. Esto significa que se admiten frecuencias SPI de 3.8 kHz a 250 MHz.
Fuentes:
.rate = 250000000, /* 250MHz */
https://github.com/bootc/linux/blob/073993b3f3e23fb8d376f9e159eee410968e0c57/arch/arm/mach-bcm2708/bcm2708.cfuente
La hoja de datos de BCM2835 dice lo siguiente en la página 120: El valor del registro de reloj del bloque SPI contiene.
No puedo encontrar ninguna referencia a cuál es la frecuencia máxima del bus APB, creo que es parte de la documentación de ARM11 y no de este SoC.
fuente
He probado con lo que se ve en http://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.html y he cambiado la velocidad.
La velocidad máxima cuando se pasa la prueba es de 15MHz = 15000KHz: Ver resultado:
La prueba a 16MHz falló. André
fuente