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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LPC2468 и Static Memory, назначение сигналов управления
toweroff
сообщение Feb 8 2009, 16:16
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Сильноне пинайте - только начал разбираться с ARM'ами

Итак, есть шина A[23..0], D[31..0], /WE, /OE, /CS[3..0]

Тут все понятно, 4 банка по 2^24x4 байт

А вот с сигналами BLS[3..0] непонятно. Что они делают? В даташите их вообще коннектят на /WR памяти... Помогите разобраться, а то что-то мутно как-то в документации написано с уклоном "да тут ваще все понятно и так"
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 8 2009, 18:44
Сообщение #2


Гуру
******

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



Цитата(toweroff @ Feb 8 2009, 19:16) *
А вот с сигналами BLS[3..0] непонятно. Что они делают?

Сигналы BLS (Byte Lane Select) выбирают используемые линии шины данных при обращении к памяти. Т.е. если нужно записать байт по адресу 0x02 32-х битной шины, то BLS[3..0] будут равны 1011, а на шине адреса будет 0. Обычно предусматривается режим, в котором эти линии активизируются только в цикле записи, тогда можно собрать память с широкой шиной из отдельных 8-бит микросхем, подключив их сигналы WE к соответствующим BLS.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 8 2009, 19:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Feb 8 2009, 21:44) *
Сигналы BLS (Byte Lane Select) выбирают используемые линии шины данных при обращении к памяти. Т.е. если нужно записать байт по адресу 0x02 32-х битной шины, то BLS[3..0] будут равны 1011, а на шине адреса будет 0. Обычно предусматривается режим, в котором эти линии активизируются только в цикле записи, тогда можно собрать память с широкой шиной из отдельных 8-бит микросхем, подключив их сигналы WE к соответствующим BLS.


оо как unsure.gif

итого... имея реальную шину 32 бита мне эти сигналы не нужны? и я буду использовать только общий /WR?

и еще - имея 2 банка по 32Мбайт (на 32-разрядной шине) обойдусь ли я функционалом одного LPC, или все-таки придется городить на внешней логике отдельные сигналы /CS_BANK0 и /CS_BANK1 на базе /CS[3..0] контроллера?

Сообщение отредактировал toweroff - Feb 8 2009, 19:35
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 9 2009, 00:53
Сообщение #4


Гуру
******

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



Цитата(toweroff @ Feb 8 2009, 22:28) *
итого... имея реальную шину 32 бита мне эти сигналы не нужны? и я буду использовать только общий /WR?

Нужны, естественно. Если будет использована 32-х битная память, то они должны быть заведены на соответствующие BLS/DQM.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 9 2009, 01:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Feb 9 2009, 03:53) *
Нужны, естественно. Если будет использована 32-х битная память, то они должны быть заведены на соответствующие BLS/DQM.


нет там таких линий

есть несколько модулей, имеющих 32-битную структуру по данным, но адресуемым либо как 16М, 32М, 64М, при этом могут иметь одно- и двух-банковую систему. Подобных выводов нет в принципе.
По двум банкам - есть отдельные /CS0 и /CS1
Классика - A, D, /CS, /WR, /OE

В модулях возможна как 16- , так и 8-разрядная память. То есть по записи я могу каждый чип модуля конфигурить отдельно? Где можно посмотреть диаграммы? Или это все аппаратно зависит от какого-то регистра LPC?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 9 2009, 10:39
Сообщение #6


Гуру
******

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



Цитата(toweroff @ Feb 9 2009, 04:32) *
нет там таких линий

Что же это за модули такие? Тогда сможете работать только с полными 32-х битными словами, так как запись одного байта будет портить 3 соседних.
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 9 2009, 10:55
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(toweroff @ Feb 9 2009, 03:32) *
нет там таких линий

Какие именно у вас модули? Какие на них микросхемы? Если 8 битные, то они через CS заведены.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 9 2009, 23:29
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Ну вот такие модули smile.gif

Для организации 16М и 32М используются 8-битные микросхемы. Есть варианты как с одним банком, так и с двумя (один или два /CS)
64M модули имеют организацию 2 банка по 32М (по 2 16-битных микросхемы)

Сигналы записи раздельные (соответственно 4 и 2 /WR для 8-битных и 16-битных микросхем) - я это не использовал раньше, соединял все /WR в один

А еще есть 64М модули, в которых мало 2 банка, так еще и микросхемы имеют двухбанковую архитектуру (LO- и HI-space) с отдельными своими /CS_LO и /CS_HI

Цитата(aaarrr @ Feb 9 2009, 13:39) *
Что же это за модули такие? Тогда сможете работать только с полными 32-х битными словами, так как запись одного байта будет портить 3 соседних.


Нет, запись производится сразу 4 байт по одному адресу 32-разрядной шины
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 10 2009, 00:30
Сообщение #9


Гуру
******

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



Цитата(toweroff @ Feb 10 2009, 02:29) *
Нет, запись производится сразу 4 байт по одному адресу 32-разрядной шины

Кем производится? Если вашей программой, которая будет держать в этой памяти только данные размером в слово - то пожалуйста, но стандартные библиотеки, например, такой подход не оценят.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 10 2009, 09:45
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Feb 10 2009, 03:30) *
Кем производится? Если вашей программой, которая будет держать в этой памяти только данные размером в слово - то пожалуйста, но стандартные библиотеки, например, такой подход не оценят.


да, моей программой. Так что посоветуете по поводу разводки сигналов?
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 10 2009, 10:35
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(toweroff @ Feb 10 2009, 11:45) *
да, моей программой. Так что посоветуете по поводу разводки сигналов?

Развести BLS на соответствующие WE соответствующих 8 битных микросхем. Там же должно быть в документации к ним разрисовано, какие сигналы в каком порядке должны сработать, чтобы произошла запись.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 10 2009, 11:38
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Methane @ Feb 10 2009, 13:35) *
Развести BLS на соответствующие WE соответствующих 8 битных микросхем. Там же должно быть в документации к ним разрисовано, какие сигналы в каком порядке должны сработать, чтобы произошла запись.


Возможно, я неточно задал вопрос.

Если я буду с этими модулями работать как с РЕАЛЬНОЙ 32-битной шиной, как будут вести себя сигналы управления?
/WR работает всегда?
/CS[3..0] будут работать для выборки 16М банка (0x8000 0000 - 0x80FF FFFF, 0x8100 0000 - 0x81FF FFFF, 0x8200 0000 - 0x82FF FFFF, 0x8300 0000 - 0x83FF FFFF)?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 10 2009, 11:57
Сообщение #13


Гуру
******

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



Цитата(toweroff @ Feb 10 2009, 14:38) *
с этими модулями

С какими модулями? Документация на них есть?
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 10 2009, 12:00
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(toweroff @ Feb 10 2009, 13:38) *
Возможно, я неточно задал вопрос.

Если я буду с этими модулями работать как с РЕАЛЬНОЙ 32-битной шиной, как будут вести себя сигналы управления?
/WR работает всегда?
/CS[3..0] будут работать для выборки 16М банка (0x8000 0000 - 0x80FF FFFF, 0x8100 0000 - 0x81FF FFFF, 0x8200 0000 - 0x82FF FFFF, 0x8300 0000 - 0x83FF FFFF)?

Как сделаете так и будет. Если у вас 4 микросхемы по 8 бит, и вы хотите сделать 32битную шину, то она у вас будет по одному адрессу, CS будет 1 на всех, а BLS будет по одному на микросхему (может нужно будет AND поставить), и будет один банк памяти 0x8000 0000 и дальше.
Вы можете сделать 8 битную шину, повесив каждую микросеху на свой CS. Тогда у вас будут 4 адресных пространство на каждую микросхему.

WR всегда работает.

ВЫ же не сказали что у вас за модуль памяти, и что там стоит.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 10 2009, 12:25
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Methane @ Feb 10 2009, 15:00) *
Как сделаете так и будет. Если у вас 4 микросхемы по 8 бит, и вы хотите сделать 32битную шину, то она у вас будет по одному адрессу, CS будет 1 на всех, а BLS будет по одному на микросхему (может нужно будет AND поставить), и будет один банк памяти 0x8000 0000 и дальше.
Вы можете сделать 8 битную шину, повесив каждую микросеху на свой CS. Тогда у вас будут 4 адресных пространство на каждую микросхему.

WR всегда работает.

ВЫ же не сказали что у вас за модуль памяти, и что там стоит.


в том-то и дело, что модули могут быть разными и с разной внутренней организацией. В конечном устройстве для управления ими используются разные CPLD в зависимости от типа используемых микросхем.

В большинстве случаев формируется 2-банковая система. При этом модуль может иметь организацию 16М (2 банка по 8М), 32М (2 банка по 16М) и 64М (2 банка по 32М), однако может быть и однобанковая архитектура (то есть сигналы /CS0 и /CS1 конвертятся CPLD'шкой в старший адрес и один /CS)

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

Также на каждом модуле есть (впаяны перемычки) некий ID, по которому можно судить о внутренней организации. Фактически, в CPLD целевого девайса и записана прошивка, которая меняет свои функции (адрес, /CS0, /CS1) в зависимости от модуля и для самого девайса внутренняя организация модуля не важна (он не пишет ничего туда, только читает)

Вообще, я тоже могу поставить некую CPLD в свой девайс, однако хочу убедиться, что в данном случае контроллер External Memory LPC не обеспечит мне аналогичный функционал
Была мысль использовать ту CPLD, которая стоит в целевом устройстве и воткнуть в свой девайс панельку под нее, но доступ к этой микросхеме в целевом девайсе достаточно затруднен и, в силу 90% кривости рук обслуживающего персонала, очень нежелателен в принципе
Go to the top of the page
 
+Quote Post

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

 


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


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