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

 
 
> 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 - 36)
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
SuperAlex
сообщение Nov 1 2011, 17:11
Сообщение #16


Участник
*

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



MCK=120 MHz
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 17:19
Сообщение #17


Гуру
******

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



Цитата(SuperAlex @ Nov 1 2011, 21:11) *
MCK=120 MHz

По даташиту разрешенный максимум - 80.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 17:27
Сообщение #18


Участник
*

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



Не понял, а где же обещанные 180 МГц?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 17:33
Сообщение #19


Гуру
******

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



Цитата(SuperAlex @ Nov 1 2011, 21:27) *
Не понял, а где же обещанные 180 МГц?

180 - это для PCK, на котором работает только ядро.
MCK - частота внешней шины и базовая для периферии, макс. 80MHz.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 18:05
Сообщение #20


Участник
*

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



У меня частота кварца 10 МГц (MAINCK=10 МГц), DIVA=1, MULA=11 -> PLLACK=120 МГц, PMC_MCKR=2 -> MCK=120 МГЦ что здесь не так? У самого атмела в примере MCK=96 с чем то МГЦ.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 18:18
Сообщение #21


Гуру
******

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



Цитата(SuperAlex @ Nov 1 2011, 22:05) *
что здесь не так? У самого атмела в примере MCK=96 с чем то МГЦ.

Смотрим документацию:
Цитата
43.4.2 Master Clock Characteristics

1/(tCPMCK) Master Clock Frequency (VDDCORE = 1.65V T = 85°C) 80MHz MAX
1/(tCPMCK) Master Clock Frequency (VDDCORE = 1.8V T = 85°C) 90MHz MAX

В вашем случае MCK должен быть равен PCK/2 или ниже.

В "примерах" может быть (и бывает часто) любая ересь.

P.S. Правда, к наблюдаемой проблеме с SPI данный "оверклок" никакого отношения не имеет.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 18:30
Сообщение #22


Участник
*

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



Я так понимал, что частота процессора равняется MAINCLOCK (выход PLLA, например) на какой-то предделитель (PRES). Частота после предделителя PRES поступает на вход предделителя MDIV и уже после него получается MCK. Я правильно понимаю? (параграф 28.2 datasheet)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 18:39
Сообщение #23


Гуру
******

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



Правильно. Все это нарисовано на картинке Figure 28-1.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 18:41
Сообщение #24


Участник
*

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



Так как же тогда получить частоту процессора 180 МГц и частоту MCK<=80 МГц, если пределное значение частоты PLL после умножителей и делителей ограничено 240 МГц?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 18:47
Сообщение #25


Гуру
******

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



Никак. Можно получить PCK=180 и MCK=90, что укладывается в режим 1.8V VDDCORE. Если PCK=120, то MCK должна быть 60 или ниже.

Максимум 80 написал по памяти, поэтому немного ошибся - он для 1.65V VDDCORE.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 19:05
Сообщение #26


Участник
*

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



Чтобы получить PCK=180 и MCK=90 нужно установить PRES=2 и MDIV=PCK/2 при PLL=360 МГц, но PLL невозможно установить на 360 МГц. Как быть в этом случае?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 19:08
Сообщение #27


Гуру
******

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



Так зачем ставить PRES=2? Можно выставить PLL на 180, эти 180 использовать непосредственно как PCK, а MCK установить равным PCK/2.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 19:16
Сообщение #28


Участник
*

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



Точно, сам написал и тут же так подумал, торможу после безуспешных попыток убрать паузу между символами, уже не знаю, что и делать.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 19:25
Сообщение #29


Гуру
******

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



С какой областью памяти сейчас работает SPI - Internal SRAM, Flash, EBI (SRAM или SDRAM)?

Для теста можно в качестве источника данных SPI задействовать ROM - тут уж точно не будет конфликтов при обращении, если только USB Host не используется.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 20:13
Сообщение #30


Участник
*

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



Используется Internal SRAM, USB Host не используется, сейчас попробую использовать rom. А прием в ISRAM не будет конфликтовать?

Поставил на ROM, все то же самое. Но вот, что странно-при PCK=180 и MCK=90 отладчик начал выдавать invalid clock при настройке spi0. Что то странное происходит.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 20:20
Сообщение #31


Гуру
******

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



Цитата(SuperAlex @ Nov 2 2011, 00:13) *
А прием в ISRAM не будет конфликтовать?

Лучше отключите его пока совсем.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 20:33
Сообщение #32


Участник
*

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



поставил прием на rom

отключил прием, та же петрушка

Попробовал 16 бит на символ-изменений нет
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 20:36
Сообщение #33


Гуру
******

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



Приведите на всякий случай свои настройки SPI/PDC. Вряд ли в них дело, но все же.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 20:57
Сообщение #34


Участник
*

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





Сообщение отредактировал SuperAlex - Nov 1 2011, 21:03
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 1 2011, 21:33
Сообщение #35


Гуру
******

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



Так здесь прописано DLYBCT=1, то есть 32MCK или 266ns, если MCK=120MHz.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 1 2011, 21:59
Сообщение #36


Участник
*

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



с нулем то же самое

я завтра проверю и отпишусь, но по-моему я ошибался и все таки 1.
Go to the top of the page
 
+Quote Post
SuperAlex
сообщение Nov 2 2011, 15:58
Сообщение #37


Участник
*

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



Да, действительно моя ошибка. ОГРОМНОЕ СПАСИБО aaarrr!
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 Текстовая версия Сейчас: 21st July 2025 - 09:30
Рейтинг@Mail.ru


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