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

 
 
> AT91SAM9260 и работа SMC в режиме Null Setup & Hold
-=Alexey=-
сообщение Jul 1 2010, 11:12
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 8-08-08
Пользователь №: 39 490



Спрашивал уже в ветке для начинающих, но с ответом пока глухо. Поэтому, да простят меня модераторы, задам вопрос здесь.

Контроллер SMC настроен с параметрами
PULSE = 0x03030202
SETUP = 0x00000000
CYCLE = 0x00030002
MODE = 0x00001003

MCK = 100 MHz
По 16-битной шине подсоединена FPGA. В ней смотрю что приходит на момент спада NWE и на момент, когда должно приходить 2е слово.

Если использовать хотябы 1 hold в цикле записи, то все работает нормально. Проблема именно с режимом Null Setup & Hold.
В Standalone приложении выполняю
STR R0, [R1]
, где в R0 хранится 0хDDCCBBAA, R1 - 0x1000 0000
В итоге по идее должно формироваться 2 запроса к адресам 0x1000 0000 и 0x1000 0002 и значением на шине данных 0хBBAA и 0хDDCC соответственно (так в общем то и происходит при hold отличном от нуля). По факту же считанные значения на момент спада NWE и на момент, когда должно приходить 2е слово, не отличаются и равны 0хBBAA. Подумал - может где задержки не учел. Считывал значение на 5 и 10 нс позже прихода 2го слова - результат рандомный.

В общем сложилось впечатление, что указанный режим у меня настроен некорректно либо обладает какими-то не учтенными мною особенностями. Может кто подскажет в чем дело?

На последок скажу, что FPGA работает на 200 МГц, все действия по борьбе с метастабильностью предприняты, да и результаты измерений не отличаются ни на 2й, ни на 10 раз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-=Alexey=-
сообщение Jul 1 2010, 13:22
Сообщение #2





Группа: Участник
Сообщений: 14
Регистрация: 8-08-08
Пользователь №: 39 490



Цитата(aaarrr @ Jul 1 2010, 16:53) *
Так ведь Вы сами пишете ниже, что в дальнейшем планируете выставить CYCLE=1. При 100MHz MCK и 200MHz тактовой FPGA ловить будет практически нечего.

Ну если считать что разность фаз клоков процессора и FPGA постоянно, то вроде как не все так печально.

Цитата(aaarrr @ Jul 1 2010, 16:53) *
Ну, одновременно они только на картинке меняются, надо внимательно EBI Timings посмотреть.

Хм... Действительно. Надо порыться. Спасибо за совет.

Кстати, попутно еще 1 вопрос. Если, скажем, SMC сконфигурирован на 1 PULSE и 1 HOLD(CYCLE=2), когда процессор начинает выполнять команду STR(H) он, насколько я понял, приостанавливается до полного ее завершения, так? Т.е. ждет следующего фронта MCK, зате 2 периода MCK выполняет команду вывода и только потом приступает к выполнению следующей команды. Все правильно?
Нет, например, такой возможности, чтобы, скажем, после того как процессор встретил команду вывода, он инициировал работу SMC, а сам стал выполнять другие команды?
Перефразирую вопрос для ясности: нельзя ли заставить процессор НЕ простаивать в ожидании завершения вывода контроллером SMC?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 1 2010, 13:39
Сообщение #3


Гуру
******

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



Цитата(-=Alexey=- @ Jul 1 2010, 17:22) *
Ну если считать что разность фаз клоков процессора и FPGA постоянно, то вроде как не все так печально.

Слишком много если получается, как мне кажется. Впрочем, попытка не пытка.

Цитата(-=Alexey=- @ Jul 1 2010, 17:22) *
Нет, например, такой возможности, чтобы, скажем, после того как процессор встретил команду вывода, он инициировал работу SMC, а сам стал выполнять другие команды?
Перефразирую вопрос для ясности: нельзя ли заставить процессор НЕ простаивать в ожидании завершения вывода контроллером SMC?

Уже все сделано - у процессора есть буфер записи на 16 слов.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:50
Рейтинг@Mail.ru


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