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

Разработали плату на основе AT91SAM9XE-EK (процессор AT91SAM9260, 2 микросхемы памяти MT48LC16M16A2P-75IT, и DATAFLASH AT45DB321).
Поднимаем Linux.
Столкнулись с проблемой: в 16-битном режиме память работает, а в 32-битном режиме - не работает.
Оценочно, система падает, когда bootstrap после копирования в память следующего загрузчика (uboot), передаёт ему управление.
Смотрели дамп памяти, содержимое памяти после копирования и содержимое DATAFLASH в некоторых местах не совпадают (старшие биты с 16 по 23).

Возможно, проблема в железе, возможно - в конфигурации.

Используемый bootstrap: http://www.atmel.com/dyn/resources/prod_do...otstrap1.16.zip
Был скорректирован.
Файлы конфигурирования bootstrap (оригинальные под AT91SAM9260-EK и с нашими изменениями) - во вложениях.
Схема блока памяти и блока с процессором - во вложениях.

Как протестировать память?

Большая просьба помочь разобраться.

Благодарю заранее!
aaarrr
Из схемы нельзя понять, куда идут BA0/BA1, но это не важно.

Вы еррату на SAM9260 внимательно изучили? Там есть очень неприятный пункт - I/O High Drive Strength. Atmel даже специальную аппноту выпустил, посвященную вопросу подключения памяти к SAM9260.
Кстати, на 9XE такого безобразия нет.
koluna
Цитата
Из схемы нельзя понять, куда идут BA0/BA1, но это не важно.


Каюсь, каюсь... в суете забыл выложить ещё одну картинку...


Цитата
Вы еррату на SAM9260 внимательно изучили? Там есть очень неприятный пункт - I/O High Drive Strength. Atmel даже специальную аппноту выпустил, посвященную вопросу подключения памяти к SAM9260.
Кстати, на 9XE такого безобразия нет.


На 9260 не читал... проектировали под AT91SAM9XE512... но, т. к. они дороже, впаяли 9260... sad.gif
Теперь прочитал. Память достаточно близко к процессору. Последовательный резистор только в клоке стоит...

Кстати, в SK-AT91SAM9XE512 тоже 9260 впаян, правда память другая и одна микросхема. Ну и трассировка тоже другая, соответственно.
Было бы очень интересно знать, допаивал ли кто-нибудь в данный кит вторую память и на какой частоте её тестировал... работает нормально?

Топология и схемотехника нашей платы обсуждалась здесь:
http://electronix.ru/forum/index.php?showtopic=75593
http://electronix.ru/forum/index.php?showt...=75934&st=0

Интересно, если проц перепаять на 9XE512, ситуация изменится? smile.gif

Цитата
Atmel даже специальную аппноту выпустил, посвященную вопросу подключения памяти к SAM9260.


Что-то не найду её пока на оффсайте...

Кстати, в AT91SAM9260-EK никаких резисторов по EBI нету...
aaarrr
Цитата(n_bogoyavlensky @ Aug 18 2010, 15:45) *
Интересно, если проц перепаять на 9XE512, ситуация изменится? smile.gif

Возможно.

Цитата(n_bogoyavlensky @ Aug 18 2010, 15:45) *
Что-то не найду её пока на оффсайте...

Вот она.

Попробуйте сделать stand-alone тест на основе того же bootstrap'а, может, что яснее станет.
koluna
Цитата
Попробуйте сделать stand-alone тест на основе того же bootstrap'а, может, что яснее станет.


Что значит "stand-alone"?
В bootstrape сейчас делаем тест памяти простой как раз.

Цитата
Вот она.


А... это я видел, скачал, но не читал пока.

Спасибо.
aaarrr
Цитата(n_bogoyavlensky @ Aug 18 2010, 16:20) *
Что значит "stand-alone"?

Имелось в виду отдельный, для размещения во внутренней памяти процессора, не в среде uboot'а или Линукса.

Цитата(n_bogoyavlensky @ Aug 18 2010, 16:20) *
В bootstrape сейчас делаем тест памяти простой как раз.

Совсем простой может и не показать проблем. Впрочем, если дело не доходит даже до старта uboot, значит ошибок более чем достаточно sad.gif
koluna
Цитата
Совсем простой может и не показать проблем. Впрочем, если дело не доходит даже до старта uboot, значит ошибок более чем достаточно sad.gif


Сделали.
Ошибок много показывает на этой микросхеме (DD3 по схеме) sad.gif

Кстати, какой более сложный тест памяти можете порекомендовать?
aaarrr
Цитата(n_bogoyavlensky @ Aug 18 2010, 16:48) *
Кстати, какой более сложный тест памяти можете порекомендовать?

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

Попробуйте паттерны типа 0x0000000-0xffffffff и 0x00ff00ff-0xff00ff00 с чередованием по соседним адресам. Адресную шину тоже попробовать покачать не грех - подберите пару с максимальным изменяющимся числом адресных линий и после серии записей по ним проверьте, что остальная часть памяти не претерпела изменений. Ну и псевдослучайную последовательность до кучи.
koluna
Кстати, где задаётся частота работы SDRAM?
strannyi
Цитата(n_bogoyavlensky @ Aug 19 2010, 08:50) *
Кстати, где задаётся частота работы SDRAM?


Ну вообще она равна Master Clock от которой вся периферия тактируется.
koluna
Цитата
Ну вообще она равна Master Clock от которой вся периферия тактируется.


В файле at91sam9260ek.h мы видим:

Код
#define MASTER_CLOCK        (198656000/2)


Т. е., мастер-клок равен 98 МГц.
Посмотрели осциллографом на клок - 98 МГц smile.gif

Кстати, память починили перепаиванием микросхемы. Битая оказалась...
Наш простой тест из бутстрапа ошибок не нашёл. Сегодня на ночь убутовый мемтест запустим.
koluna
mtest u-boot'ый отработал всю ночь с вечера. Нормально. Ничего не нашёл smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.