реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Демпферные резисторы в линиях контроллер-SDRAM, Насколько они необходимы?
AndyBig
сообщение Sep 27 2005, 10:43
Сообщение #1


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Никогда не брался до этого за конструкции с такими частотами, соответственно и не изучал подобных вопросов smile.gif.
Использую AT91RM9200 в связке с двумя чипами SDRAM. По идее на линии нужно ставить демпфирующие резисторы для согласования, но в тех двух схемах, что я видел (одна из них - схема от Атмела) таких резисторов нет. Вот я и думаю - нужны ли они?
SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. Теоретики советуют ставить и около контроллера и около SDRAM резисторы по 15 Ом... Проблема еще в том, что плата будет разводиться двухслойная, на четырехслойную бюджет не тянет smile.gif, так что уже будет нарушена рекомендация по волновому сопротивлению линий... Сгладит ли хоть как-то эту проблему использование резисторов?
Второй вопрос: один товарищ советует линию клока сделать раза в полтора длинее остальных линий. Второй товарищ посоветовал сделать более длинными не только линию клока, но и линии управляющих сигналов - RAS, CAS, WE и т.д. Есть ли в этом смысл? С одной стороны, идея в том, что по приходу фронта клока данные уже успеют нормально выставиться на шине (при записи), но при чтении-то клок будет запаздывать... Кто что скажет по этому поводу?
И еще: может быть у кого-то есть пример подобной разводки - был бы очень благодарен smile.gif.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 27 2005, 10:55
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Эти резисторы решают задачу по устранению так называемого 'звона' который появляется от крутого фронта сигнала (импульс) на высоких частотах. Что касается длины проводника, то уровень перекрестных помех и влияние их друг на друга - увеличиваются. Так что тут как 'Бог на душу' придется. Старайтесь вести шины - одноя трассой не создавая 'паутины'.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Camelot
сообщение Sep 27 2005, 10:56
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Линии данных, клока, и контрольных сигналов должны иметь примерно одинаковую длину. Если длина линий не превышает 7 сантиметров, то можно и не выравнивать (из личного опыта на 100 МГц работает). Резюк согласования ставил только на линию клока возле СДРАМ (33 Ом). Подтяжки на WEn, RASn и т.п., ставил возле СДРАМ чипа (5К6).
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Sep 27 2005, 11:15
Сообщение #4


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



А ширина/промежуток дорожек? Их можно вести по пол-миллиметра?
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 27 2005, 11:21
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(AndyBig @ Sep 27 2005, 15:15)
А ширина/промежуток дорожек? Их можно вести по пол-миллиметра?
*

Хоть микроны. Лишь бы замыкания не было...


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Camelot
сообщение Sep 27 2005, 11:24
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Ведите 0.3, дешевые двухслойки делают с такой точностью. Минимальное расстояние между проводниками соответственно тоже 0.3
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Sep 27 2005, 11:42
Сообщение #7


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Большое спасибо за ответы по существу smile.gif.
Кстати,
Цитата
из личного опыта на 100 МГц работает

это тоже на двухслойке делалось?
Go to the top of the page
 
+Quote Post
Camelot
сообщение Sep 27 2005, 12:23
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 10-01-05
Пользователь №: 1 872



Нет, это была 4x слойка, но в Вашем случае все будет тоже ОК (старайтесь придерживаться одной длины линий и чтоб было меньше переходных отв). Поставте возле каждой ноги питания СДРАМ - кондеры 0.1 мкф (можно поставить 1 на на 10 мкф ближе к микросхеме) и выполните после разводки заливку земли с одной стороны и питания с другой.
Go to the top of the page
 
+Quote Post
popeye
сообщение Sep 27 2005, 12:28
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 18-08-05
Пользователь №: 7 750



Цитата(AndyBig @ Sep 27 2005, 14:43)
Использую AT91RM9200 в связке с двумя чипами SDRAM. По идее на линии нужно ставить демпфирующие резисторы для согласования, но в тех двух схемах, что я видел (одна из них - схема от Атмела) таких резисторов нет. Вот я и думаю - нужны ли они?
SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц. Теоретики советуют ставить и около контроллера и около SDRAM резисторы по 15 Ом... Проблема еще в том, что плата будет разводиться двухслойная, на четырехслойную бюджет не тянет smile.gif, так что уже будет нарушена рекомендация по волновому сопротивлению линий... Сгладит ли хоть как-то эту проблему использование резисторов?
Второй вопрос: один товарищ советует линию клока сделать раза в полтора длинее остальных линий. Второй товарищ посоветовал сделать более длинными не только линию клока, но и линии управляющих сигналов - RAS, CAS, WE и т.д. Есть ли в этом смысл? С одной стороны, идея в том, что по приходу фронта клока данные уже успеют нормально выставиться на шине (при записи), но при чтении-то клок будет запаздывать... Кто что скажет по этому поводу?

А что за рекомендация по волновому сопротивлению линий для SDRAM? Это же просто LVTTL! Да и 80 МГц - это не частота. У меня было два проекта с SDRAM: в одном стоял SO-DIMM модуль (на котором есть согласующие резисторы), в другом просто микросхемы SDRAM без каких-либо резисторов. В обоих случаях частота была 100 МГц, но на четырехслойке. Так что наличие резисторов вовсе не является необходимым. С другой стороны если хотите подстраховаться, то почему бы не поставить в схему на все сигналы маленькие резисторные сборки, которые немного съедят места на плате, но позволят поэкспериментировать с разными номиналами, в т.ч. и 0 Ом.
По поводу длины линий. По-моему нет никакого смысла в удлинении клока, ну улучшите вы время setup, а время clock-to-out увеличится, зачем это надо? Если же делать все "по науке", тогда надо в первую очередь просмотреть времянку контроллера и памяти, и только потом думать, надо ли чего задерживать, а если надо, то делать "не в полтора раза длиннее", а учитывать абсолютную длину проводников на плате. Но в данном случае выравнивать длины сигналов вообще не нужно, т.к. на типовом FR4 задержка распространения составляет примерно 50 пс/см. В моем устройстве с модулем SO-DIMM длина линий не выравнивалась вообще, и разница в длине линий шины данных доходила до 5,5 см (!), но это получается менее 300 пс, и все прекрасно работало. Линии управляющих сигналов задерживать вообще неправильно, они же защелкиваются вместе с адресом/данными!
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Sep 27 2005, 12:29
Сообщение #10


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Кондеры по питанию - это святое smile.gif. Линии я тоже, конечно, постараюсь выдержать одной длины и по возможности без переходных. Кстати, а как лучше будет развести общие линии на два чипа SDRAM? Разветвлением или последовательно от одной к другой?
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Sep 27 2005, 12:37
Сообщение #11


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Спасибо за прояснение ситуации. Я уже понял - задерживать никакие сигналы не буду, резисторные сборки предусмотрю на все линии (в крайнем случае, действительно, нулевки можно поставить).
Go to the top of the page
 
+Quote Post
dch
сообщение Sep 27 2005, 13:11
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(AndyBig @ Sep 27 2005, 13:43)
SDRAM планирую запускать на 80 МГц, контроллер на 160 МГц.

при соотношении !/2 (80/160) все в кэше будет лежать, можно master clock понижать и дальше. DK работает при 1/3.
В отладочной плате EVM9200

http://www.ucrouter.ru/hardware.html

без резисторов я понижаю до 1/4:

http://www.ucrouter.ru/reply.php?page=4&id=341,376
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Sep 27 2005, 13:34
Сообщение #13


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



В том-то и дело, что все в кэш не влезет. Кроме того, что прошивка будет грузиться в SDRAM, необходимо еще будет обрабатывать довольно большьшие массивы данных (до мегабайта, а в дальнейшем, возможно, и больше). Так что желательно было бы не снижать частоту памяти.
Go to the top of the page
 
+Quote Post
dch
сообщение Sep 27 2005, 14:07
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Цитата(AndyBig @ Sep 27 2005, 16:34)
В том-то и дело, что все в кэш не влезет. снижать частоту памяти.

Нельзя так говорить. Прочитайте где нибудь про работу кэша.
Но если кратко - если процессору надо считать что-то из SDRAM он лезет в кэш, если попадания нет, просиходит сначала заполнеие строки кэша. При этом происходит чтение не слова (4 байт) а нескольких слов (строки кэша),
в разных реализациях по разному, 4,16 итд слов.Степень попадания в кэш
делают достаточно большой, обычно более 95%. Программа по сути всегда выполняется их кэша. Для памяти данных это не так очевидно. Но как правило (по моим наблюдениям ) количество переменных в функции
обычно не превышают десяток и адресуются они к последовательным участкам памяти.
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Sep 27 2005, 14:16
Сообщение #15


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Это верно для выполнения обычной циклической программы, оперирующей с ограниченным объемом данных. Но когда требуется, к примеру, инкрементировать каждое значение огромного массива данных, кэш очень мало помогает. Все равно все эти данные должны быть считаны из внешней памяти и возвращены обратно в нее.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 21:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01525 секунд с 7
ELECTRONIX ©2004-2016