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

DDR3 - можно ли оживить?

Имеется плата с DDR3 (проц от TI семейства SITARA, DDR - 2 шт 256Mx16 от Micron, версия на 1866 МГц, реальная удвоенная целевая частота 1600 МГц). Память разведена по последовательной (не T-образной) топологии БЕЗ ТЕРМИНАТОРОВ. Вообще нет, даже на CLK.

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

Сделал:

- Поставил тайминги в соответствии с даташитом на память.

- Поиграл временами нарастания сигналов (контроллер в проце позволяет). Оптимальный вариант - для CLK максимально короткие,

для адреса/управления - несколько сглаженные.

- Нагрузил CLK (не как положено, а дифференциально одним резистором 75 Ом).

В итоге при оптимальных настройках наблюдается следующее:

- При некоторых тактовых частотах (400 МГц) контроллер DDR вообще завешивает проц. На 700 МГц вроде не завешивает.

- Младший байт старшей микросхемы (по разводке - последняя от проца) читается нечетко.

- Последние 2 32-битных слова каждого 8-словного пакета не читаются в обоих половинках (а может, и не пишутся - хз).

- А в остальном все OK

Вопросы:

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

- Может, кто-то сталкивался с аналогичными глюками?

Заранее благодарен всем ответившим.

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


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

Аргументы разработчика - автор прототипа данной платы (другой человек) все так делает, и как-то работает.

Расстрелять.

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

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

А в остальном все OK

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

 

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


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

Расстрелять.

 

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

 

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

1.Жалко. А вот насчет автора прототипа у многих руки чешутся...

2.Да хоть как-нить - на пока. И ведь прототип же впрямь работает, причем в серии (!!!). Правда, в нем стоит память DDR3-1600.

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

 

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


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

Да хоть как-нить - на пока. И ведь прототип же впрямь работает, причем в серии (!!!). Правда, в нем стоит память DDR3-1600.

Очень слабо верится что ддр3 1600 работает на полной скорости при кривой топологии - люди не достигают максимальной скорости при гораздо менее серьезных проездах. Вероятнее всего частота много ниже а контроллер пашет на излете возможностей.

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

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

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


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

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

Разводку показывать смысла нет.

В DDR3 контроллерах штатно применяется Dynamic On Die Termination (ODT), внешних резисторов не надо.

Это можно узнать по первой же ссылке в гугле.

Если прототип работает значит вам изготовили плату их плохого материала.

Пробуйте управлять настройками терминаторов на стороне DDR или пробуйте физически менять волновое сопротивление наложением диэлектрика с металлизацией.

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


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

В DDR3 контроллерах штатно применяется Dynamic On Die Termination (ODT), внешних резисторов не надо

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

Если прототип работает значит вам изготовили плату их плохого материала.

Минут 10 думал, но мне ума не хватило понять- какая связь? Взываю к помощи гур :biggrin:

Пробуйте управлять настройками терминаторов на стороне DDR или пробуйте физически менять волновое сопротивление наложением диэлектрика с металлизацией.

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

 

ПС.Так а сколько вы развели ддр3 в своих мейкерских девайсах?

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


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

В DDR3 контроллерах штатно применяется Dynamic On Die Termination (ODT), внешних резисторов не надо.

Может, я чего-то не понял, но ODT - это вроде как только для линий данных, не?

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

А диэлектрик не покатит, увы - разводка во внутренних слоях, снаружи земли. Но все равно, спасибо за идею на будущее.

 

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

В понедельник обязательно - заранее благодарен за замечания.

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


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

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

 

 

 

 

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


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

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

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

 

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

 

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

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

 

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

 

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

 

PS можно например с резистором ZQ поиграться, поставить чуток отличающиеся побольше и поменьше, кондёры на Vref проверить и попробовать добавить/убрать)

PPS и вообще кондёры по питанию проверить. Если Y5V - выкинуть и поставить нормальные.

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


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

....

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

А то я плотно копался с DRAM последний раз в конце 80-х... Радио-86РК, 565РУ5...ностальгия.

После этого как-то все работало, даже DDR3 - бо разводка была правильной.

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


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

Если неправильно, попробуйте терминировать на 1/2 питания ресет.

Боюсь выдать ядовитый комментарий, но поясните пожалуйста что это значит и зачем нужно? А то мне кажется я не понял идею :laughing:

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


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

Боюсь выдать ядовитый комментарий, но поясните пожалуйста что это значит и зачем нужно? А то мне кажется я не понял идею :laughing:

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

И мне попадались примеры, где ресет тоже затаскивают на терминацию. (он там свой, для озушек, не системный)

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


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

Так а как терминация ресета должна повлиять на

сдвигая момент отсчёта - подвигать окно, или убрать звон

? Какова физика процесса?

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


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

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

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

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

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

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

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

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

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

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