реклама на сайте
подробности

 
 
> [i.MX6q] Проблема с SPI в slave режиме
MacArrow
сообщение Nov 12 2014, 20:28
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 21-05-12
Пользователь №: 71 941



В общем, есть проект на iMX6q (на модуле Kontron), где бежит ядро 3.10.17 взятое из yocto c BSP 1.5. В этом ядре драйвер SPI пропатчен чтобы включить поддержку slave режима (патч сделан на основе патча для ltib ядра 3.0 найденного на просторах freescale community сайта) Этот проект цепляется к SPI мастеру и получает от оного данные блоками фиксированной длинны, CS остается активным все время передачи блока.
Теперь, внимание, проблема! Если получать данные максимально быстро, то уже в первом слове второго блока уходит крайнее слово первого блока (ну и, естественно, все тут же ломается). В конце каждого трансфера читаются счетчики для обоих FIFO и они всегда нулевые, так что это не забытые данные в TX FIFO. Логический анализатор показывает, что в шину одно и тоже слово уезжает дважды (то есть как бы подтверждает вышенаписанное), так что это не проблема мастера, преждевременно снимающего тактовую. Самое интересное тут заключается в том, что если между трансферами внести задержку в, примерно, 300 мкс, то проблема уходит. Если попытаться заресететь SPI блок между трансферами, то в качестве первого слова втророго блока уйдут нули. Но если же подождать 300 мкс, то все работает как и должно (кто бы сомневался) В общем, риторический вопрос кто виноват и что делать? Риторический потому, что глюкавость SPI у фрискейла суть всем известна и это все как бы указывает на баг в чипе, но все же.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 22:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016