MementoMori 4 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба Господа, работаю над трассировкой SDRAM SDR (планируется частота 75 МГц) и STM32F746. Развел несколько линий адреса и данных. Исходя из габаритов STM, самой SDRAM, как их не располагай, как ни меняй линии данных (а адресные и вовсе нельзя менять), длина отдельных трасс достигает 55 мм. Моделирую в HyperLynx - неприемлемый звон появляется уже на длине 35 мм. В принципе, я готов к перспективе навешать на все линии резисторов (моделирование показало, что 70 Ом вполне достаточно). Но... Держу в руках планку SDRAM для компьютера. На ней резисторы в сборках только на линиях данных. Есть еще пару дискретных резисторов на всю планку, я так думаю, они предназначены для какой-то линии общей для всех микросхем, наверное для клока и еще чего-то. На адресных линиях резисторов нет. Хотя, представляя себе архитектуру и топологию матплаты, расстояние от процессора до адресных пинов во первых тоже приличное, во вторых, мало отличается от длины линий данных. Так почему же они не согласованы резисторами? Может к адресным линиями какие-то особые требования и им не нужны танцы с резисторами? Зависит ли от чего-нибудь еще амплитуда звона при переходном процессе? Нормально ли что у меня на 50 мм длины проводника есть звон, или я что-то не так настроил в HyperLynx? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба чтобы на 50мм что-то зазвенело, фронты должны быть короче сильно быстрее чем 1нс, stm32 так не умеет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба Странно... я вроде бы подключал ibis модель с сайта stm. Настраивал в соответствии с аппноутом от st. Правда я скорость поставил там самую высокую (там варианты 00,01,10,11, я поставил 11). У меня есть плата 469 disco, там 60 трассы есть. И никаких резисторов. На практике на каких длинах появляется звон? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба Если шина только для SDRAM и никаких других источников- приемников типа LCD, NAND/NOR флеша или FPGA на ней нет, то резисторы не нужны. Только выравнивание линий чтобы адреса-данные не опоздали относительно стробов и не пришлось шину тормозить. При этом это должно работать по шине данных в обе стороны- и со стороны SDRAM, и со стороны контроллера. На 70 Мгц накосячить сложно для F7 серии. Вот для H7 серии с ее разогнанным до 400 мгц ядром грабли по SDRAM полезли страшные, так ее и не удалось надежно запустить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба То есть стробы сделать заведомо длинее всех данных и адресов (самой длинной линии)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба Хех.... я ж предполагал, что у меня с настройками что-то не так.. Выяснилось - в HyperLynx в StackUp все 6 слоев были обозначены как SIGNAL и ни одного PLANE. Когда выставил все как надо получилась вот такая картинка (зеленый - вход контроллера, красный - вход DQM1 памяти, частота 90 Мгц) Что скажете? Годный сигнал? Дорожка длиной 75 мм, на пути 2 via через все слои. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба Так надо осциллограф брать с полосой под 500 мгц и снимать реальные сигналы. Вот две ссылки на форума где народ копал глубоко эту тему, но готовых решений там нет. https://www.mikrocontroller.net/topic/423311 Во втором случае пытались повесить на шину F4 две различные памяти. https://www.fedevel.com/designhelp/forum/test/pcb-layout/82-sdr-sdram-layout-recommendations PS. Несколько умных мыслей и картинка в шапке поста для вдумчивого рассмотрения http://pcbartists.com/design/embedded/stm32-sdram-pcb-layout/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба 3 minutes ago, khach said: Так надо осциллограф брать с полосой под 500 мгц и снимать реальные сигналы. Вот нету у меня сейчас такого осциллографа, есть программа, которая с определенной степенью достоверности говорит, что сигнал будет такой, как на картинке. По первой ссылке - там BGA корпуса, совсем иная ситуация.. По второй ссылке - как мне кажется у них сигнал похуже. Но если у них заработало, то наверное и у меня тоже будет работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба 2 hours ago, MementoMori said: Но если у них заработало, то наверное и у меня тоже будет работать. Тут еще вопрос, для чего SDRAM будет использоваться. Если это только буфер экрана, где несколько моргающих раз в час пикселей погоды не сделают, то это одно. А если SDRAM будет использоваться для хранения важных данных, без регенерации и проверки их содержимого- то это совсем другое. Нам как то пришлось выкручиваться из второго варианта из за неудачной разводки. Пришлось превратить SDRAM в блочную память, где каждый блок данных был защищен кодом Хемминга. Данные троировались в разных областях памяти с некратным сдвигом относительно базового адреса. Для работы с данными весь блок считывался во внутренню память контроллера, проверялся на валидность по коду коррекции, использовался, записывался обратно в SDRAM с троированием. Понимаю, что извращение, но проект горел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба 2 minutes ago, khach said: Тут еще вопрос, для чего SDRAM будет использоваться. Если это только буфер экрана, где несколько моргающих раз в час пикселей погоды не сделают, то это одно. А если SDRAM будет использоваться для хранения важных данных, без регенерации и проверки их содержимого- то это совсем другое. Нам как то пришлось выкручиваться из второго варианта из за неудачной разводки. Пришлось превратить SDRAM в блочную память, где каждый блок данных был защищен кодом Хемминга. Данные троировались в разных областях памяти с некратным сдвигом относительно базового адреса. Для работы с данными весь блок считывался во внутренню память контроллера, проверялся на валидность по коду коррекции, использовался, записывался обратно в SDRAM с троированием. Понимаю, что извращение, но проект горел. В общем-то да, для экрана. И моргающие раз в час пиксели погоды действительно не сделают. Главное чтобы не было существенных и заметных артефактов. P.S. Лазил на сайте микрона - куча всяких доков по поводу разработки с DDR3 и прочим. Знаю, что должен быть какой-то документ, регламентирующий трассировку и обеспечение целостности сигналов для SDRAM SDR, но не нашел. Может есть у кого? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 27 апреля, 2019 Опубликовано 27 апреля, 2019 · Жалоба 4 minutes ago, MementoMori said: Знаю, что должен быть какой-то документ, регламентирующий трассировку и обеспечение целостности сигналов для SDRAM SDR, но не нашел. Да не переживайте. Чтобы SDR SDRAM на 75МГц не заработала, надо сделать просто чудовищную трассировку. И Гиперлинкс совсем ни к чему в данной ситуации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wave48 0 14 мая, 2019 Опубликовано 14 мая, 2019 · Жалоба Выравнивание проводников таки нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 14 мая, 2019 Опубликовано 14 мая, 2019 · Жалоба В 27.04.2019 в 11:06, MementoMori сказал: держу в руках планку SDRAM для компьютера. На ней резисторы в сборках только на линиях данных. Есть еще пару дискретных резисторов на всю планку, я так думаю, они предназначены для какой-то линии общей для всех микросхем, наверное для клока и еще чего-то. На адресных линиях резисторов нет. Так, пардон, последовательные согласующие резисторы устанавливаются со стороны передатчика, естественно, что на адресных линиях на планках их нет (и вообще они вероятнее всего интегрированы в контроллер). А вот смотрю на платку роутера - там, хоть дорожки всего-то пара см, резисторы и в адресных, и в данных. Скорости, правда, несколько больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bloody-wolf 0 14 мая, 2019 Опубликовано 14 мая, 2019 · Жалоба положим, что prop.delay на fr4 ~160ps/inch 75MHz ~ 13ns период. предположим, что хотим сделать 1% выравнивание от периода, ну т.е. получается что дороги надо поравнять примерно в диапазоне 130ps, что эквивалентно примерно дюйму длины, тобишь означает то, что если не крутить сильно больших петель, то линии адресов и данных можно особо не ровнять, если они укладываются в +/-12,5мм относительно клока. терминицаю в послед можно тока на клоку поставить, по минимуму 20-39 Ом. примерно тоже самое, только другими словами из "TN-46-14, page 13": " SDRAM systems have only a single-ended clock (CLK), so the important trace-matching relationship is not to a second differential clock trace but instead to the other groups. Match clock traces to data group traces within ±500 mil. " Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 14 мая, 2019 Опубликовано 14 мая, 2019 · Жалоба 3 hours ago, rx3apf said: Так, пардон, последовательные согласующие резисторы устанавливаются со стороны передатчика, Понять можно двояко. Со стороны передатчика - не значит ближе к передатчику, так ведь? По крайней мере я в Гиперлинксе экспериментировал сам убедился, что резисторы нужно ставить у приемника. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться