Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Межбайтовые интервалы в SPI в AT91SAM3U
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
dilvishya
Есть железка в которой стоит МК AT91SAM3U и ПЛИС. Данные от МК в ПЛИС и обратно передаются по SPI. После настройки скорости передачи данных (48 Мбит/с) и подбора необходимой паузы между посылками байт (332 нс) возник вопрос, а можно ли передавать данные по SPI сплошным потоком без межбайтовых интервалов? Искал инфу по разным форумам, но ничего на эту тему не нашел.
bseyur
Скорее всего нельзя, т.к. слэйв должен как-то определять, где находится начало и где конец каждого из передаваемых байтов.
Но можно воспользоваться интерфейсом I2S. Это по сути то же самое, только для непрерывной передачи потоковых данных (например, аудиопотока).
aaarrr
Цитата(dilvishya @ Jun 30 2010, 16:31) *
можно ли передавать данные по SPI сплошным потоком без межбайтовых интервалов?

Используйте DMA. Подбирать паузы между записями - это как-то не совсем хорошо.
MALLOY2
Цитата
где находится начало и где конец каждого из передаваемых байтов.

Это делается по чипселекту.


Цитата
Используйте DMA.

+1
ViKo
По-моему, для самого SPI никаких пауз между байтами не требуется. Каждому такту соответствует свой бит данных. Другое дело, что дальше с ними происходит, в данном случае, в ПЛИС.
dilvishya
Вот как раз в ПЛИС никаких проблем и нет. Там из памяти FIFO по внутренним 48 МГц клокам данные считываются спустя почти микросекунду после записи. Наличие межбайтовых интервалов создает трудности. Пробовал передавать и 8 и 16 бит в одном байте, но интервалы остаются. Пробовал передавать 13 байт по 16 бит в каждом байте и минимальный интервал был в районе 200 нс. Когда пробовал делать меньше, то число передаваемых байт сокращалось до 11.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.