Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: stm32f439 и SDRAM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Шаманъ
Приветствую всех!

Народ можно ли пойти на такое извращение в целях упрощения разводки сабжа в двух слоях - линии шины данных памяти подключить к шине данных процессора в произвольном порядке? Вроде граблей не должно быть? Или я что-то не учитываю?

Спасибо!
aaarrr
В пределах одного байта переставлять данные можно. "В двух слоях" - это два сигнальных слоя, или всего два?
Шаманъ
Цитата(aaarrr @ Feb 12 2016, 21:24) *
В пределах одного байта переставлять данные можно. "В двух слоях" - это два сигнальных слоя, или всего два?

А мне побайтовая адресация не нужна - я только словами работать с ней буду, получается полная свобода sm.gif? Собирался сигналы DQML/DQMU памяти посадить на землю, ну и FMC в 16битном режиме. Слоев всего два на все rolleyes.gif

Наверное еще если понадобится можно выбор банков поменять местами (BA0/BA1)?..
RadiatoR
Сами так делали. Память 16 битная - шина данных абы как - сделали что бы было короче. Про банки не помню, но если поменять ничего плохого не произойдет.
Верно подметили - если соберетесь использовать в режиме чтения/записи по байту или по 16 бит (если 32 бита память) - то косяк будет
ps. Хотя теоретически можно попробовать - ведь как запишешь так и прочтешь. Можно даже попробовать шину адреса.
Вот с шиной адреса уже такое не прокатит (ну по крайней мере до начала различия между номерами ног у адреса строки и столбца (столбец обычно раньше заканчивается) )
aaarrr
Цитата(Шаманъ @ Feb 12 2016, 22:53) *
А мне побайтовая адресация не нужна - я только словами работать с ней буду, получается полная свобода sm.gif ? Собирался сигналы DQML/DQMU памяти посадить на землю, ну и FMC в 16битном режиме.

Как по мне, это большое неудобство.

Цитата(Шаманъ @ Feb 12 2016, 22:53) *
Слоев всего два на все rolleyes.gif

Плохо.

Цитата(Шаманъ @ Feb 12 2016, 22:53) *
Наверное еще если понадобится можно выбор банков поменять местами (BA0/BA1)?..

Можно, а смысл? Два провода всего.
skripach
Цитата(aaarrr @ Feb 12 2016, 22:24) *
В пределах одного байта переставлять данные можно.

+1 Только в пределах одного байта, имею печальный опыт sad.gif
Шаманъ
Цитата(aaarrr @ Feb 12 2016, 22:16) *
Можно, а смысл? Два провода всего.

Ну если они пересекаются так сказать в ограниченном пространстве, то может и будет смысл.

Цитата(skripach @ Feb 12 2016, 22:38) *
+1 Только в пределах одного байта, имею печальный опыт sad.gif

Ну поделитесь, что там произошло? Или Вы с памятью побайтно работали?

ЯadiatoR с шиной адреса такое делать явно не стоит - там и burst read/write и прочее может быть неработоспособно...
skripach
Цитата(Шаманъ @ Feb 13 2016, 00:18) *
Ну поделитесь, что там произошло? Или Вы с памятью побайтно работали?

Да чего тут делится, 16 бит SDRAM, перемешал линии данных внутри байтов и между байтов, тест памяти показал что я был не прав. twak.gif
RadiatoR
Цитата(aaarrr @ Feb 12 2016, 23:16) *
Плохо.

Почему плохо? Если хорошо развести - значит и стоить меньше будет и проверять что-либо проще.
У нас 54tsop и 176 pin stm разведены на 2 слоя + дисплей 24 rgb. Разведена хорошо, без особых пересечений

Цитата(Шаманъ @ Feb 13 2016, 00:18) *
ЯadiatoR с шиной адреса такое делать явно не стоит - там и burst read/write и прочее может быть неработоспособно...

Бурст ведь работает на чтение внутри строки - поэтому перемешанные столбцы ему не важны, а если перемешаны строки - все равно ничего не произойдет потому что когда он собирается читать бурст он смотрит в какой строке сейчас находится. Если в той же то читает, а если нет то по общим правилам переход на другую строку
scifi
Можно и линии адреса перемешать. Нужно учитывать при инициализации SDRAM, конечно.
Шаманъ
Цитата(ЯadiatoR @ Feb 13 2016, 10:20) *
У нас 54tsop и 176 pin stm разведены на 2 слоя + дисплей 24 rgb. Разведена хорошо, без особых пересечений

Если не секрет память и контроллер на одной стороне платы или память под контроллером? По моим предварительным наброскам, если память расположить под контроллером (с обратной стороны платы), то плата весьма неплохо разводится в двух слоях. Правда я не очень люблю лепить микросхемы с двух сторон...

Цитата
Бурст ведь работает на чтение внутри строки - поэтому перемешанные столбцы ему не важны

Что-то я сомневаюсь - бурст ведь может быть разной длины. Судите сами допустим бурст 8 слов, адреса А0..А2 зададут с какой ячейки начинается бурст. Теперь представим А0 и А1 поменяли местами. Записываем данные 8 слов с ячейки х..х000, а потом читаем ячейку х..х001 и х..х010. Запишутся данные в порядке 0-1-2-3-4-5-6-7, а прочитаются не 1 и 2, а 2 и 1 sm.gif Старшие адреса по идее можно и перемешать, только биты в регистре режима тоже перемешаются (но это не должно привести к проблемам - просто не следует забывать об этом). Так, или я чего-то не учитываю?
RadiatoR
Цитата(Шаманъ @ Feb 13 2016, 15:15) *
Если не секрет память и контроллер на одной стороне платы или память под контроллером?

Компоненты только с одной стороны, плата 2 слоя.

Цитата(Шаманъ @ Feb 13 2016, 15:15) *
Что-то я сомневаюсь - бурст ведь может быть разной длины. Судите сами допустим бурст 8 слов, адреса А0..А2 зададут с какой ячейки начинается бурст. Теперь представим А0 и А1 поменяли местами. Записываем данные 8 слов с ячейки х..х000, а потом читаем ячейку х..х001 и х..х010. Запишутся данные в порядке 0-1-2-3-4-5-6-7, а прочитаются не 1 и 2, а 2 и 1 sm.gif Старшие адреса по идее можно и перемешать, только биты в регистре режима тоже перемешаются (но это не должно привести к проблемам - просто не следует забывать об этом). Так, или я чего-то не учитываю?

Точно в сам бурст не вчитывался, видел только возможность бурст чтения по одной строке (ну или я так понял) - в этом случае при рандом столбце проблем не должно быть...
Шаманъ
Цитата(ЯadiatoR @ Feb 13 2016, 14:26) *
Компоненты только с одной стороны, плата 2 слоя.

Спасибо!

Цитата
Точно в сам бурст не вчитывался, видел только возможность бурст чтения по одной строке (ну или я так понял) - в этом случае при рандом столбце проблем не должно быть...

Все, разобрался - то, что я написал контроллер SDRAM stm32f439 не поддерживает sm.gif В мануале написано, что бурст надо запрограммировать в mode register в 000 - т.е. его длина будет 1 и то, о чем я написал не будет происходить sm.gif Получается почти полная свобода! Адреса (кроме А10) можно перемешать, данные тоже sm.gif Спасибо всем за обсуждение! Пойду рисовать плату...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.