Что SPI частоты делает поддержку Raspberry Pi?
Дополнительно:
- Все ли они поддерживаются драйвером SPI bootc.net ?
- Есть ли какие-то дополнительные вещи, с которыми я должен быть осторожен при попытке связаться с каким-либо другим чипом через SPI?
Raspberry Pi SPI работает на тактовой частоте APB, которая эквивалентна тактовой частоте ядра 250 МГц. Это может быть разделено на любое четное число от 2 до 65536 для желаемой скорости. В спецификации указано, что делитель должен быть степенью двойки, но это неверно . Нечетные числа округляются в меньшую сторону, а 0 (или 1) эквивалентно 65536. Поэтому делитель меньше 2 невозможен.
Это делает диапазон частот от 3,814 кГц до 125 МГц с 32768 шагами между ними.
(По этому вопросу было много дезинформации, но эти результаты были подтверждены экспериментально. Пожалуйста, распространите информацию.)
SPI может работать на тактовой частоте ядра или делиться на более медленные периферийные устройства. Тактовая частота ядра составляет 250 МГц. Делитель может быть установлен на любую степень двойки - от 2 ^ 0 до 2 ^ 16. Это означает, что поддерживаются частоты SPI от 3,8 кГц до 250 МГц.
Источники:
.rate = 250000000, /* 250MHz */
https://github.com/bootc/linux/blob/073993b3f3e23fb8d376f9e159eee410968e0c57/arch/arm/mach-bcm2708/bcm2708.cисточник
В спецификации BCM2835 на стр. 120 сказано следующее: Значение тактового регистра блока SPI содержит.
Я не могу найти ссылку на максимальную частоту шины APB, я думаю, что это часть документации ARM11, а не этот SoC.
источник
Я проверил с, как видно на http://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.html и изменил скорость.
Максимальная скорость при прохождении теста составляет 15 МГц = 15000 кГц: см. Результат:
Тест на 16 МГц не удался. Андре
источник