Что SPI частоты делает поддержку Raspberry Pi?
Дополнительно:
- Все ли они поддерживаются драйвером SPI bootc.net ?
- Есть ли какие-то дополнительные вещи, с которыми я должен быть осторожен при попытке связаться с каким-либо другим чипом через SPI?
Что SPI частоты делает поддержку Raspberry Pi?
Дополнительно:
Ответы:
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 содержит.
BC Clock Divider SCLK = Core Clock / CDIV Если CDIV установлен на 0, делитель равен 65536. Делитель должен иметь степень 2. Нечетные числа округляются в меньшую сторону. Максимальная тактовая частота SPI равна тактовой частоте APB.
Я не могу найти ссылку на максимальную частоту шины APB, я думаю, что это часть документации ARM11, а не этот SoC.
Я проверил с, как видно на http://www.brianhensley.net/2012/07/getting-spi-working-on-raspberry-pi.html и изменил скорость.
Максимальная скорость при прохождении теста составляет 15 МГц = 15000 кГц: см. Результат:
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
Тест на 16 МГц не удался. Андре