MegaVolt 25 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 4 minutes ago, excly said: 3. Примерно 10см 4. Фото нет. Соединено это все такими проводами 5. Что показывает осциллограф на приёмной стороне? Ну или максимально близко к приёмной стороне? 6. Если распушить кабель так чтобы отдельные проводки шли как можно дальше друг от друга? 7. Что будет если оставить одну линию данных и один клок? В пределе один СЕ 8. Земли соединены? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 5 минут назад, excly сказал: я не могу добавить кодирование, как посоветовали выше, или по-другому передавать clock Ну а логический анализатор от 200 Мгц простробировать и на clock поставить, можете? Это практически то-же, что и счетчик. Будет видно, что clolck на фронтах дает дребезг... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба На обоих платах сделайте тактирование по фронту (posedge/rising_edge). И передаваемый тактовый сигнал нужно инвертировать! И всё будет работать и не только на 2МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба Обратите внимание на то, что вам написал iosifk. Вы защёлкиваете данные в СигналТап клоком 200 МГц. По отношению к этому клоку данные являются асинхронными. Ещё рискну предположить, что ваша приёмная стороне не обсконстрейнена. Из-за этого возможны разные чудеса. Поэтому вам надо на приёмной стороне сделать CDC (clock domain crossing), то есть правильно перевести данные в клоковый домен 200 МГц, и правильно обконстрейнить дизайн. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 5 minutes ago, Inanity said: На обоих платах сделайте тактирование по фронту (posedge/rising_edge). И передаваемый тактовый сигнал нужно инвертировать! И всё будет работать и не только на 2МГц. Тактирование в обоих платах идет по фронту. Объясните, пожалуйста, зачем инвертировать передаваемый тактовый сигнал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 16 minutes ago, andrew_b said: Обратите внимание на то, что вам написал iosifk. Вы защёлкиваете данные в СигналТап клоком 200 МГц. По отношению к этому клоку данные являются асинхронными. Ещё рискну предположить, что ваша приёмная стороне не обсконстрейнена. Из-за этого возможны разные чудеса. Поэтому вам надо на приёмной стороне сделать CDC (clock domain crossing), то есть правильно перевести данные в клоковый домен 200 МГц, и правильно обконстрейнить дизайн. Ваше предположение по поводу констрейнов абсолютно верно. Больная тема для меня, не совсем уверенно ее применяю))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 25 minutes ago, andrew_b said: По отношению к этому клоку данные являются асинхронными. Ещё рискну предположить, что ваша приёмная стороне не обсконстрейнена. Из-за этого возможны разные чудеса. Само собой. Как и в любом логическом анализаторе данные и таковая семплирования не синхронны. И подобных глюков мы видеть не должны. Тем более для статических состояний. По этому констрейны штука нужная но решения данной проблемы они никак не помогут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 12 minutes ago, excly said: Тактирование в обоих платах идет по фронту. Объясните, пожалуйста, зачем инвертировать передаваемый тактовый сигнал? Без инвертирования на целевой плате вы пытаетесь защёлкнуть данные в тот момент, когда они меняются. При инвертировании тактового сигнала у вас появляется большой запас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 3 minutes ago, Inanity said: Без инвертирования на целевой плате вы пытаетесь защёлкнуть данные в тот момент, когда они меняются. При инвертировании тактового сигнала у вас появляется большой запас. Автор писал чуть выше: 13 hours ago, excly said: На вторую плату передается клок, смещенный на 180 градусов. Плюс проблема видна в логическом анализаторе т.е. она не относиться к способу захвата данных в штатной реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 2 minutes ago, Inanity said: Без инвертирования на целевой плате вы пытаетесь защёлкнуть данные в тот момент, когда они меняются. При инвертировании тактового сигнала у вас появляется большой запас. я pll создаю 2 одинаковый clock, смещенный друг относительно друга на 180 градусов. По первому я защелкиваю данные, а второй передаю на приемную плату. Но это, видимо, не совсем корректно, потому что в этом случае они не синхронны. Верно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 2 minutes ago, excly said: Но это, видимо, не совсем корректно, потому что в этом случае они не синхронны. Верно? На частоте 2 МГц это не должно влиять. На больших частотах возможны нюансы. Хотя как верно сказали выше инвертор проще чем вторая PLLка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 4 minutes ago, MegaVolt said: Автор писал чуть выше: Плюс проблема видна в логическом анализаторе т.е. она не относиться к способу захвата данных в штатной реализации. Нет нет. Как раз в логическом анализаторе (который настоящий, а не SignalTap) проблем не видно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 9 октября, 2018 Опубликовано 9 октября, 2018 (изменено) · Жалоба 9 minutes ago, MegaVolt said: Автор писал чуть выше: Плюс проблема видна в логическом анализаторе т.е. она не относиться к способу захвата данных в штатной реализации. Чёрт, прошу прощения, впредь буду внимательнее. 7 minutes ago, excly said: я pll создаю 2 одинаковый clock, смещенный друг относительно друга на 180 градусов. По первому я защелкиваю данные, а второй передаю на приемную плату. Но это, видимо, не совсем корректно, потому что в этом случае они не синхронны. Верно? Если вы с помощью одной PLL создаёте эти два клока, они как раз синхронны, тем более для такого периода. Хотя как заметил MegaVolt на высоких частотах из-за разницы пути следования сигнала в ПЛИС возможны проблемы. Изменено 9 октября, 2018 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 25 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 3 minutes ago, excly said: Нет нет. Как раз в логическом анализаторе (который настоящий, а не SignalTap) проблем не видно Вот тут поподробнее. Чем SignalTap отличается от нормального анализатора кроме расположения уже внутри кристалла? Мои вопросы вверху страницы видели? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 9 октября, 2018 Опубликовано 9 октября, 2018 · Жалоба 13 hours ago, excly said: и еще. Сигнал "ce", как видно на картинке, стоит все время в единице, но с ним тоже какие-то проблемы Перечитал всё ещё раз. Всё таки не туда копаем. Если CE в единице и мы наблюдаем такую картину, то тут что-то на физическом уровне не так. На примере CE как будто что-то наводит помеху на него. А банки обеих ПЛИС реально (в железе) питаются от 3.3V ? Можете это подтвердить? С землёй как я понял всё в порядке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться