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

 
 
> Atmel SAM9XE - непонятки с SPI
SuperAlex
сообщение Oct 31 2011, 21:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



Доброго времени суток.
Столкнулся с такой проблемой-при выводе данных по SPI с помощью DMA наблюдаются непонятные паузы между символами порядка 300 нс. Это при том, что DLYBS=0, DLYBCT=0. Частота тактирования 10 МГц, 8 бит на символ. Частота контроллера 120 МГц. Перерыл все доки, но причины не нашел. Кто-нибудь сталкивался с похожим? Очень надеюсь на помощь.
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 14)
aaarrr
сообщение Oct 31 2011, 21:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А память, к которой обращается DMA, другие мастера точно не трогают? FIFO нет, поэтому любое обращение может "сломать" таким образом обмен SPI, если только в MATRIX не зарубить бесконечные burst'ы.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Oct 31 2011, 22:04
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



DMA канал работает только на SPI.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 31 2011, 22:23
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Причем тут DMA? Другие мастера обращаются к той же памяти, или нет?
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Oct 31 2011, 22:25
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



Что такое мастера. Не понимаю терминологию.

Сообщение отредактировал SuperAlex - Oct 31 2011, 22:26
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 31 2011, 22:47
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Посмотрите разделы 7.2 и 21 даташита. Вопрос очень простой: нет ли одновременных обращений к памяти со стороны PDC и, например, процессора? Если есть, то данные при передаче могут прерываться.

И уточнение: паузы наблюдаются после каждого байта, или же возникают спорадически?
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Oct 31 2011, 22:49
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



Паузы после каждого байта.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 14:27
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



Что то мне подсказывает, дело не в мастерах, хоты кто его знает. Может это особенности атмеловской периферии?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 14:32
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SuperAlex @ Nov 1 2011, 18:27) *
Что то мне подсказывает, дело не в мастерах, хоты кто его знает.

Возможно. Но версию с мастерами лучше проверить. Всего-то нужно инициализировать MATRIX.

Цитата(SuperAlex @ Nov 1 2011, 18:27) *
Может это особенности атмеловской периферии?

Не скажу насчет XE, но ни на каких других атмеловских процессорах подобной паузы не наблюдал.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 14:53
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



А куска кода с инициализацией matrixa не подбросите?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 16:00
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Попробуйте просто установить в MATRIX_MCFG0 и 1 ненулевое значение (скажем, 1 или 2).

Процессор работает на 120МГц, а какая частота у шины?
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 16:15
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



У SPI? 20 МГц.

Установил MATRIX_MCFG0 и 1, изменений нет.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 16:53
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SuperAlex @ Nov 1 2011, 20:15) *
У SPI? 20 МГц.

У AHB. В первом посте указана частота SPI 10МГц, а к чему относится 20?
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 17:05
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-07
Пользователь №: 30 742



Частоту SPI переставил на 20 МГЦ, все то же самое. А как узнать частоту AHB?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 17:10
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SuperAlex @ Nov 1 2011, 21:05) *
А как узнать частоту AHB?

Например, умножить частоту SPI на делитель, необходимый для ее получения. Частота AHB = MCK.
Go to the top of the page
 
+Quote Post

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

 


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


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