Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Посылка 32bit слова на 16bit шину
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
-=Alexey=-
Всем доброго времени суток.

Есть AT91SAM9260. SMC настроен на работу с 16-бит шиной в "Byte Select Access" режиме. Standalone приложение. Выполняю команду записи 32-битного слова, скажем

STR R0, [R1]

, где в R0 хранится 0хDDCCBBAA, R1 - 0x1000 0000

Вопрос - какая будет последовательность действий со стороны SMC?

У меня к SMC подсоединена FPGA по 16-битной шине данных. Если я не ошибаюсь, генерируется 2 операции записи по одному и тому же адресу (0x1000 0000) и с одним и тем же содержимым шины данных (0хBBAA). Это несколько странно.
bseyur
Видимо ошибаетесь, т.к. сначала по адресу 0x1000 0000 должно записаться 0xBBAA, затем по адресу 0x1000 0002 - соответственно 0xDDCC. Либо неверно настроена шина.
-=Alexey=-
На FPGA сохраняю и по запросу процессора передаю ему то, что было считано с шин адреса и данных. В том то и дело, что ни адрес, ни данные не меняются. Если подряд записать 2 16битных слова, то все нормально пишется, если за одну команду 32битное, то результаты те, которые я приводил выше. 2 раза приходит сигнал установленной длинны от процессора с одними и теми же данными и адресом.
На всякий случай - приведу настройки SMC
PULSE = 0x03030101
SETUP = 0x00000000
CYCLE = 0x00030001
MODE = 0x00001003

bseyur, а на основании чего вами были сделаны эти выводы? Ссылку на документацию можно? Просто я нигде не смог найти информации по этому случаю.
-=Alexey=-
Обнаружил, что проблема имеется только в Null Setup & Hold режиме. Если добавить хотябы 1 hold, тогда генерируются 2 запроса с разными адресами и данными - то, как и должно быть. В общем, проблема либо в особенностях вышеуказанного режима, либо в прошивке FPGA. Буду разбираться.
Если кто работал с Null Setup & Hold режимом, просьба ответить по возможности. В FPGA я считываю значения с шин адреса и данных на момент возникновения спада NWE от процессора и через 10 нс (MCK процессора равен 100 MHz). Так вот если используется вышеуказанный режим, то через 10 (и 15 кстати тоже) нс значения на шинах не меняются. Что в настройках SMC я указал неправильно?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.