Я пытаюсь отправить постоянное и большое количество байтов с SPI из встроенной системы Linux - am335x (Beaglebone: версия pocketbeagle). Дело в том, что я пытаюсь увеличить скорость передачи.
В настоящее время я обращаюсь к SPI через пространство пользователя со следующей конфигурацией spidev (вызовы ioctl):
// SPI init -- (const char *device, int mode, int bits, int speed)
retv = spi_bus.spi_init(LCD_SPI_DEVICE,0,8,100000000);
Это медленно! Я не измерял мбит / с, но даже на 100 МГц он не посылает нужную сумму.
Я где-то читал, что DMA автоматически вызывается при использовании драйвера mcSPI. Однако я не совсем уверен, применимо ли это к драйверам пользовательского пространства, таким как spidev.
Мой вопрос: как я могу увеличить скорость передачи данных в МБ / с для SPI?
То, о чем я думал до сих пор:
1) Ищите драйвер ядра = пространства вместо использования spidev.
2) Увеличьте длину слова.
Не уверен, однако, что бы вы посоветовали значительно увеличить скорость передачи SPI?