dilvishya 0 30 июня, 2010 Опубликовано 30 июня, 2010 · Жалоба Есть железка в которой стоит МК AT91SAM3U и ПЛИС. Данные от МК в ПЛИС и обратно передаются по SPI. После настройки скорости передачи данных (48 Мбит/с) и подбора необходимой паузы между посылками байт (332 нс) возник вопрос, а можно ли передавать данные по SPI сплошным потоком без межбайтовых интервалов? Искал инфу по разным форумам, но ничего на эту тему не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bseyur 0 30 июня, 2010 Опубликовано 30 июня, 2010 · Жалоба Скорее всего нельзя, т.к. слэйв должен как-то определять, где находится начало и где конец каждого из передаваемых байтов. Но можно воспользоваться интерфейсом I2S. Это по сути то же самое, только для непрерывной передачи потоковых данных (например, аудиопотока). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 30 июня, 2010 Опубликовано 30 июня, 2010 · Жалоба можно ли передавать данные по SPI сплошным потоком без межбайтовых интервалов? Используйте DMA. Подбирать паузы между записями - это как-то не совсем хорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 30 июня, 2010 Опубликовано 30 июня, 2010 · Жалоба где находится начало и где конец каждого из передаваемых байтов. Это делается по чипселекту. Используйте DMA. +1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 июля, 2010 Опубликовано 1 июля, 2010 · Жалоба По-моему, для самого SPI никаких пауз между байтами не требуется. Каждому такту соответствует свой бит данных. Другое дело, что дальше с ними происходит, в данном случае, в ПЛИС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dilvishya 0 1 июля, 2010 Опубликовано 1 июля, 2010 · Жалоба Вот как раз в ПЛИС никаких проблем и нет. Там из памяти FIFO по внутренним 48 МГц клокам данные считываются спустя почти микросекунду после записи. Наличие межбайтовых интервалов создает трудности. Пробовал передавать и 8 и 16 бит в одном байте, но интервалы остаются. Пробовал передавать 13 байт по 16 бит в каждом байте и минимальный интервал был в районе 200 нс. Когда пробовал делать меньше, то число передаваемых байт сокращалось до 11. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться