Группа: Участник
Сообщений: 4
Регистрация: 30-06-10
Пользователь №: 58 216
Есть железка в которой стоит МК AT91SAM3U и ПЛИС. Данные от МК в ПЛИС и обратно передаются по SPI. После настройки скорости передачи данных (48 Мбит/с) и подбора необходимой паузы между посылками байт (332 нс) возник вопрос, а можно ли передавать данные по SPI сплошным потоком без межбайтовых интервалов? Искал инфу по разным форумам, но ничего на эту тему не нашел.
Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208
Скорее всего нельзя, т.к. слэйв должен как-то определять, где находится начало и где конец каждого из передаваемых байтов. Но можно воспользоваться интерфейсом I2S. Это по сути то же самое, только для непрерывной передачи потоковых данных (например, аудиопотока).
По-моему, для самого SPI никаких пауз между байтами не требуется. Каждому такту соответствует свой бит данных. Другое дело, что дальше с ними происходит, в данном случае, в ПЛИС.
Группа: Участник
Сообщений: 4
Регистрация: 30-06-10
Пользователь №: 58 216
Вот как раз в ПЛИС никаких проблем и нет. Там из памяти FIFO по внутренним 48 МГц клокам данные считываются спустя почти микросекунду после записи. Наличие межбайтовых интервалов создает трудности. Пробовал передавать и 8 и 16 бит в одном байте, но интервалы остаются. Пробовал передавать 13 байт по 16 бит в каждом байте и минимальный интервал был в районе 200 нс. Когда пробовал делать меньше, то число передаваемых байт сокращалось до 11.