Перейти к содержанию
    

Разводка SDR SDRAM к ARM

Заполучил живую мной разведённую плату на двух SDR(2x16bit) подключенных к LPC3250 по примеру платы Phytec, работает на 104МГц. Одно из подозрений почему АРМ иногда вылетает на дата или код аборт, это неправильно разведённая плата. Согласно рекомендации NXP D0..Dx и QMx по длине не должны отличаться более чем на 7.5мм. У меня длины колеблются от 10мм до 28мм(считая с обоих сторон резисторов 22 Ома). Кроме того CLK я развёл не по Y топологии а последовательно к двум чипам памяти. Действительно ли это большая ошибка или у кого и похуже работало?

Настройки памяти и EMC контроллера 100 раз проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, надо еще очень постараться, чтобы развести SDR SDRAM так, чтобы она не работала (если не на двухслойке, конечно).

18мм разницы - это всего лишь 100 пс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоесть Вы хотите сказать что она не настолько привиредливая как в апноте написано? АРМ и память у меня практически рядом стоят, только резисторы 0402 между ними, и дорожки без выкрутасов почти напрямую идут, 6 слоёв. Кроме описанного отклонения адресные линии у меня последовательно подходят а не Y. Но про это ничего в апноте не сказано, только про CLK.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкретно про LPC3250 не скажу, но как правило к трассировке SDR требования очень умеренные. Если с разводкой все обстоит так, как Вы пишите (т.е. минимальные расстояния, 6 слоев с нормальным стеком и т.п.), то едва ли стоит на нее грешить.

 

А тесты памяти не выявляют проблем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкретно про LPC3250 не скажу, но как правило к трассировке SDR требования очень умеренные. Если с разводкой все обстоит так, как Вы пишите (т.е. минимальные расстояния, 6 слоев с нормальным стеком и т.п.), то едва ли стоит на нее грешить.

 

А тесты памяти не выявляют проблем?

Вроде нет, были когда изначально неправильно EMC контроллер програмировал. Погоняю завтра под разными температурами. За несколько недель использования 5 раз зависло всего. Повторить на стенде не выходит, код устал смотреть. Правда у меня фишка, для пониженного потребления я в Idle задаче понижаю частоту проца ну и памяти с 104 до 13. А в прерывании тика RTOSа опять повышаю(при этом про Dynamic Refresh делитель не забываю). Но это другая тема. Хотел сначала с железом разобраться. Спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы убрать вопросы разводки - коротните последовательные резисторы сверху проводком.

 

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

С тех пор ставлю эти резисторы, если заказчик на этом настаивает. Т.е. делаю все без резисторов. Влючая DDR2. Клок развожу игреком. Все остальное - как попало, но с воротами по длине 10 мм.

 

Ну и к слову. Один из заказчиков который настоял на резюках щас мучается тем, что эти сборки 0204 у него не умеют паять и ему их приходится у каждой третьей платы перепаивать... (Правда в данном случае неработа выражается в стабильных глюках памяти, типа, кототящие адресные линии, коротящие данные и прочая. Один из глюков, котоый по виду напоминает ваш - это мпладщая половина памяти работает и в старших адресах. И при попытках линукса что-то себя выделить в врехних адресах приводит к убийству младших.-- после чего все висит мертво.)

 

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы убрать вопросы разводки - коротните последовательные резисторы сверху проводком.

 

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

...

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

Вы же сами пишите, что проблемы с резисторами видны явно. А здесь изредка проскакивает.

 

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

 

Если хочется попробовать, можно увеличивать их сопротивление. И определить с какой величины перестаёт работать, и если поставить в несколько раз меньше то мешать они не должны.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проблемы с резисторами видны явно.

Это МНЕ они видны явно. А юзеру линукса они могут быть вообще не видны. И могут как не проявляться совсем, так и проявляться постоянно.

--

А редкие зависания, по моему опыту, связаны только с программой. Обычно, когда разводишь по первому разу - стараешься соблюсти. Потом разводишь абы как. Один черт работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...