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

 
 
> 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, 12:01
Сообщение #2





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



1) К сожалению осциллографа нет. Тогда бы не пришлось париться с FPGA.
2) Определяется момент перехода NWE из 1 в 0 и соответственно через определенный интервал времени производится считывание с шин последующих слов, если не появился признак перехода NWE из 0 в 1
3) В FPGA планирую реализовать нечно вроде видео-контроллера. Поэтому нужна максимально возможная скорость передачи. Насколько я понял, в ARM'ах нельзя одной инструкцией копировать большие блоки данных (поправьте, если ошибаюсь). Но зато можно инструкцией STMIA сохранять блоки по 48 байт (4*12). Пока планирую реализовать обмен именно таким образом, если ничего лучше не придумаю.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 1 2010, 12:13
Сообщение #3


Гуру
******

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



Цитата(-=Alexey=- @ Jul 1 2010, 16:01) *
1) К сожалению осциллографа нет. Тогда бы не пришлось париться с FPGA.

В данной ситуации это весьма печально.

Цитата(-=Alexey=- @ Jul 1 2010, 16:01) *
2) Определяется момент перехода NWE из 1 в 0 и соответственно через определенный интервал времени производится считывание с шин последующих слов, если не появился признак перехода NWE из 0 в 1

ИМХО, очень стремный способ.

Цитата(-=Alexey=- @ Jul 1 2010, 16:01) *
3) В FPGA планирую реализовать нечно вроде видео-контроллера. Поэтому нужна максимально возможная скорость передачи.

Все равно не понимаю: сейчас у Вас длительность цикла стоит 2. Так что мешает поставить SETUP = 1, PULSE = 1, HOLD = 0 и спокойно защелкивать данные по заднему фронту WE?
Go to the top of the page
 
+Quote Post



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

 


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


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