Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DDR3 - можно ли оживить?
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
kons
Имеется плата с DDR3 (проц от TI семейства SITARA, DDR - 2 шт 256Mx16 от Micron, версия на 1866 МГц, реальная удвоенная целевая частота 1600 МГц). Память разведена по последовательной (не T-образной) топологии БЕЗ ТЕРМИНАТОРОВ. Вообще нет, даже на CLK.
Аргументы разработчика - автор прототипа данной платы (другой человек) все так делает, и как-то работает. Конечно, разработчик озадачен и уже делает следующую версию как надо. Но "на пока" очень хочется запустить и эту плату.
Сделал:
- Поставил тайминги в соответствии с даташитом на память.
- Поиграл временами нарастания сигналов (контроллер в проце позволяет). Оптимальный вариант - для CLK максимально короткие,
для адреса/управления - несколько сглаженные.
- Нагрузил CLK (не как положено, а дифференциально одним резистором 75 Ом).
В итоге при оптимальных настройках наблюдается следующее:
- При некоторых тактовых частотах (400 МГц) контроллер DDR вообще завешивает проц. На 700 МГц вроде не завешивает.
- Младший байт старшей микросхемы (по разводке - последняя от проца) читается нечетко.
- Последние 2 32-битных слова каждого 8-словного пакета не читаются в обоих половинках (а может, и не пишутся - хз).
- А в остальном все OK
Вопросы:
- Насколько вообще реально завести DDR3 с такой разводкой?
- Может, кто-то сталкивался с аналогичными глюками?
Заранее благодарен всем ответившим.
EvilWrecker
Цитата
Аргументы разработчика - автор прототипа данной платы (другой человек) все так делает, и как-то работает.

Расстрелять.
Цитата
Насколько вообще реально завести DDR3 с такой разводкой?

На целевой частоте(и что-либо близкое) не заведете, на медленной тоже не очень вероятно. Имеется в виду стабильная работа с хорошей формой сигнала.
Цитата
А в остальном все OK

Покажите разводку послойно и таблицу с длинами проводников.
kons
Цитата(EvilWrecker @ Oct 6 2017, 15:03) *
Расстрелять.

На целевой частоте(и что-либо близкое) не заведете, на медленной тоже не очень вероятно. Имеется в виду стабильная работа с хорошей формой сигнала.

Покажите разводку послойно и таблицу с длинами проводников.

1.Жалко. А вот насчет автора прототипа у многих руки чешутся...
2.Да хоть как-нить - на пока. И ведь прототип же впрямь работает, причем в серии (!!!). Правда, в нем стоит память DDR3-1600.
3.Сейчас не могу разводку взять, но я ее видел - все линии 35-40 мм от проца до дальней DDR-ки, разработчик их даже выравнивал. Что положено дифференциальной парой разводить, то так и разведено. Т.е. все хорошо, только терминаторов нет...
EvilWrecker
Цитата
Да хоть как-нить - на пока. И ведь прототип же впрямь работает, причем в серии (!!!). Правда, в нем стоит память DDR3-1600.

Очень слабо верится что ддр3 1600 работает на полной скорости при кривой топологии - люди не достигают максимальной скорости при гораздо менее серьезных проездах. Вероятнее всего частота много ниже а контроллер пашет на излете возможностей.
Цитата
Сейчас не могу разводку взять, но я ее видел - все линии 35-40 мм от проца до дальней DDR-ки, разработчик их даже выравнивал. Что положено дифференциальной парой разводить, то так и разведено. Т.е. все хорошо, только терминаторов нет.

На словах оно может быть вполне ничего, но я лично ожидаю увидеть весомый довесок к уже озвученной кривизне laughing.gif.
AlexandrY
Цитата(kons @ Oct 6 2017, 15:05) *
3.Сейчас не могу разводку взять, но я ее видел - все линии 35-40 мм от проца до дальней DDR-ки, разработчик их даже выравнивал. Что положено дифференциальной парой разводить, то так и разведено. Т.е. все хорошо, только терминаторов нет...

Разводку показывать смысла нет.
В DDR3 контроллерах штатно применяется Dynamic On Die Termination (ODT), внешних резисторов не надо.
Это можно узнать по первой же ссылке в гугле.
Если прототип работает значит вам изготовили плату их плохого материала.
Пробуйте управлять настройками терминаторов на стороне DDR или пробуйте физически менять волновое сопротивление наложением диэлектрика с металлизацией.
EvilWrecker
Цитата
В DDR3 контроллерах штатно применяется Dynamic On Die Termination (ODT), внешних резисторов не надо

biggrin.gif biggrin.gif biggrin.gif Это безусловно победа, да. А позвольте спросить, почему если открыть любой вменяемый дизайн с ддр3(или того хуже планку памяти), они(терминаторы) там есть? И что они терминируют? biggrin.gif Сугубо академический интерес назрел.
Цитата
Если прототип работает значит вам изготовили плату их плохого материала.

Минут 10 думал, но мне ума не хватило понять- какая связь? Взываю к помощи гур biggrin.gif
Цитата
Пробуйте управлять настройками терминаторов на стороне DDR или пробуйте физически менять волновое сопротивление наложением диэлектрика с металлизацией.

Вообще страшное дело) А что это означает?)

ПС.Так а сколько вы развели ддр3 в своих мейкерских девайсах?
kons
Цитата(AlexandrY @ Oct 6 2017, 17:38) *
В DDR3 контроллерах штатно применяется Dynamic On Die Termination (ODT), внешних резисторов не надо.

Может, я чего-то не понял, но ODT - это вроде как только для линий данных, не?
Все рефдизайны и даташиты в один голос твердят о необходимости нагружать линии адреса, управления и CLK. Одно исключение - техасовцы в описании одной из своих маленьких отладочных платок хвалятся, что таки развели без нагрузок. Но там у них DDR3-800 и топология T (по типу DDR2). Еще гипотетическое исключение - разводка единственной 16-битной микросхемы. Для нее последовательного согласования, обеспечиваемого выходными резисторами контроллера, по идее может хватить.
А диэлектрик не покатит, увы - разводка во внутренних слоях, снаружи земли. Но все равно, спасибо за идею на будущее.

Цитата(EvilWrecker @ Oct 6 2017, 17:12) *
На словах оно может быть вполне ничего, но я лично ожидаю увидеть весомый довесок к уже озвученной кривизне laughing.gif.

В понедельник обязательно - заранее благодарен за замечания.
EvilWrecker
Здесь очень хорошо показано зачем нужно ODT и что именно оно терминирует. Конкретно режим работы можно посмотреть у микрона, там вполне четко все расписано laughing.gif



Mikle Klinkovsky
Цитата(kons @ Oct 6 2017, 13:51) *
- Насколько вообще реально завести DDR3 с такой разводкой?

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

Если уверены, что конфиг в Озушку впихивается правильно, то можно потестить и узнать что происходит поточнее. Если неправильно, попробуйте терминировать на 1/2 питания ресет.

Например, записывайте последовательность пословно/побайно (в каждый байт его номер в последовательности) и считывайте (в два прохода прямо и инверсно). Можно посмотреть откуда считывается, откуда нет. (найдите работает-ли в каких-либо адресах).
Если данные пашут, то проведите такой тест последовательности по разным адресам, узнаете на каких адресах не пашет, сможете навеской эти линии пассивно затерминировать на 1/2 питания, может заработают.

Если нигде данные пахать не будут, то тут сложнее. Можно частоты снижать, тайминги менять.

На истину не претендую. Не было подобного опыта с SDRAM.

PS можно например с резистором ZQ поиграться, поставить чуток отличающиеся побольше и поменьше, кондёры на Vref проверить и попробовать добавить/убрать)
PPS и вообще кондёры по питанию проверить. Если Y5V - выкинуть и поставить нормальные.
kons
Цитата(Mikle Klinkovsky @ Oct 7 2017, 01:08) *
....

Спасибо - в понедельник сделаю подход к снаряду, попробую что-нить из предложенного.
А то я плотно копался с DRAM последний раз в конце 80-х... Радио-86РК, 565РУ5...ностальгия.
После этого как-то все работало, даже DDR3 - бо разводка была правильной.
EvilWrecker
Цитата
Если неправильно, попробуйте терминировать на 1/2 питания ресет.

Боюсь выдать ядовитый комментарий, но поясните пожалуйста что это значит и зачем нужно? А то мне кажется я не понял идею laughing.gif
Volkov
попробуйте ограничить выходной ток драйверов, если есть такая возможность.
Mikle Klinkovsky
Цитата(EvilWrecker @ Oct 7 2017, 11:41) *
Боюсь выдать ядовитый комментарий, но поясните пожалуйста что это значит и зачем нужно? А то мне кажется я не понял идею laughing.gif

Я не помню бюджеты на запись конфига, но мысль простая, сдвигая момент отсчёта - подвигать окно, или убрать звон.
И мне попадались примеры, где ресет тоже затаскивают на терминацию. (он там свой, для озушек, не системный)
EvilWrecker
Так а как терминация ресета должна повлиять на
Цитата
сдвигая момент отсчёта - подвигать окно, или убрать звон

? Какова физика процесса?
Mikle Klinkovsky
С ресетом пожалуй погорячился. sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.