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

 
 
 
Reply to this topicStart new topic
> Можно ли в LPC3250 использовать два типа RAM одновременно
Romanello
сообщение Jun 2 2012, 22:31
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 10-03-05
Пользователь №: 3 204



Здравствуйте.

Есть контроллер LPC3250, хотелось бы узнать: я сейчас использую DDR RAM, помимо этого нужно использовать внешнюю шину для защелки в регистр, как мне кажется лучше всего для этого подходит интерфейс SDRAM (пишу по определенному адресу что то, это что то выставляется на шине данных, к которой подключен регистр защелка, а защелкиваться будет по сигналам OE и WE), правильно ли я рассуждаю, или есть подводные камни?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jun 4 2012, 06:33
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Только это все же SRAM. А так - правильно. Главное, чтобы были свободные чип-селекты.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 4 2012, 10:57
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Romanello @ Jun 3 2012, 01:31) *
Здравствуйте.

Есть контроллер LPC3250, хотелось бы узнать: я сейчас использую DDR RAM, помимо этого нужно использовать внешнюю шину для защелки в регистр, как мне кажется лучше всего для этого подходит интерфейс SDRAM (пишу по определенному адресу что то, это что то выставляется на шине данных, к которой подключен регистр защелка, а защелкиваться будет по сигналам OE и WE), правильно ли я рассуждаю, или есть подводные камни?


Я бы не рисковал. Там вроде есть проблемы при переключении работы с одного контроллера памяти на другой.
Т.е. могут быть непредсказуемые задержки и если программа выполняется из DDRAM, то придется озаботиться детерминизмом.
Go to the top of the page
 
+Quote Post
Romanello
сообщение Jun 4 2012, 17:44
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 10-03-05
Пользователь №: 3 204



Цитата(AlexandrY @ Jun 4 2012, 13:57) *
Я бы не рисковал. Там вроде есть проблемы при переключении работы с одного контроллера памяти на другой.
Т.е. могут быть непредсказуемые задержки и если программа выполняется из DDRAM, то придется озаботиться детерминизмом.



А если использовать контроллер DDR, только DDR настоящая у меня висит на EMC_DYCS0 (т.е. CS идет с адреса 0X8000 0000), а регистр я подключу к EMC_DYCS1, потом записывая данные в адрес 0xA000 0000, я по идее должен эти данные получить на шине данных, с которой мой регистр будет защелкивать эти данные, единственно, что настораживает, это то, что я не нашел диаграмм работы с памятью DDR, там же как то пишутся данные не так как в SRAM?
Go to the top of the page
 
+Quote Post
gam
сообщение Jun 5 2012, 12:01
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 7-04-06
Пользователь №: 15 913



Как раз изучаю этот вопрос.
Хотим используя SDRAM и SRAM обойти проблему, описанную в Errata sheet LPC3250 rev.9: "3.6 LCD.1: Low throughput when LCD controller accesses DDR/SDRAM".
Явных противопоказаний нет, адресные пространства SDRAM и SRAM разные, доступ настраивается независимо...
Читаю бамажки.
Go to the top of the page
 
+Quote Post
Romanello
сообщение Sep 28 2012, 09:14
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 10-03-05
Пользователь №: 3 204



Сделал подключение через буферы 74LVC573 на шину данных, при этом младшие 8 бит повесил. как восьмиразрядную шину данных, а на биты 8-11 повесил управление и когда записываю short по адресу 0xE0000000 (т .к. чип селект взял CS0 от static RAM), то все нормально работает. Но решил пойти дальше, т.к. мне нужна шестнадцати разрядная шина данных, то я данных повесил на D0-D15 (через буферы 74LVC573), а адресную шину A0-A3 тоже через эти буферы завел на управляющие ножки (так же взяв чип селект от CS0 static RAM). Сконфигурировал контроллер в регистре EMCStaticConfig0, как 16 битную шину. Проблема в том, что когда я пишу по адресу 0xE0000001, что то , то A0 передергивается, а когда пишу по адресу 0xE0000002, то A1 не дергается. Еще не совсем понятна эта фраза из USER мануала When using a system that implements 16-bit static memory,address signals A[23:1] are right-justified by one bit and outputon the physical address pins A[22:0]. Address signal A0 is not necessary because all transactions occur on half-word boundaries. Address pin A23 is not used because the address space available for each CSn is 16 MB. This is done automatically by hardware in the EMC controller when the value of MW is set to 0x1. Адреса сдвигаются автоматически, т.е. если я запишу в адрес 0xE0000002, то установится A0 или A1? и вообще что я делаю не так, как добиться работоспособности этой схемы, а то я уже мозг весь сломал?

Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Sep 28 2012, 11:14
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



При использовании 16-битной шины нулевой разряд адреса рояли не играет, память адресуется кусочками по два байта. При записи в память используемые в цикле байты шины данных задаются сигналами EMC_BLSn. Запись 16-битного слова по адресу 0xE0000001 вызовет два цикла записи во внешнюю память по адресам [22.0] 0x0 и 0x1, в первом цикле будет активен сигнал EMC_BLS1, во втором, соответственно EMC_BLS0. Ну, это моё понимание. Про запись 16-битного слова на невыровненный адрес - так, для примера, ибо не знаю, позволяет ли ARM9 невыровненное обращение.
Go to the top of the page
 
+Quote Post

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

 


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


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