Петр Юркевич 0 10 сентября, 2020 Опубликовано 10 сентября, 2020 · Жалоба Здравствуйте! Стоит задача генерировать внутри ПЛИС Altera Cyclone V (кит Terasic DE1-SoC) при помощи PLL некоторую частоту, передавать её на выход LVDS и принимать на другой вход этой же ПЛИС (необходимо для отладки частотомера). По поводу LVDS долго пытался вчитываться в Cyclone V Handbook, но понял только то, что надо использовать функции Квартуса для приёма и передачи сигнала LVDS. Насколько я понял, при назначении в Pin Planner стандарта LVDS Квартус сам назначает пару выбранному пину. Информацию по поводу пар дифференциальных пинов нигде не смог найти. Я выбрал GPIO[12] и GPIO[14] (парные 15 и 13). Дальше создал входной и выходной буферы (ALTIOBUF), которые должны преобразовывать сигнал из моно в дифференциальный и обратно. LVDS_BUF_IN lvds_in ( .datain(GPIO[15]), .datain_b(GPIO[12]), .dataout(clk_in) ); LVDS_BUF_OUT lvds_out ( .datain(clk_0_2), .dataout_b(GPIO[13]), .dataout(GPIO[14]) ); По поводу выходной пары у Квартуса вопросов не возникло, а на входные пины вылезла ошибка: Error (169008): Can't turn on open-drain option for differential I/O pin GPIO[12]. И аналогичная на 15-й пин. Если не создавать буфер, на выходную пару вылезает такая же ошибка, я читал, что Квартус не пропускает неправильно настроенные пины LVDS. Я знаю, что в LVDS должен быть на входе резистор между линиями. Может быть, ошибка из-за его отсутствия в программе? И его как-то настроить надо в самой ПЛИС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
En_Serg 0 22 октября, 2020 Опубликовано 22 октября, 2020 (изменено) · Жалоба On 9/11/2020 at 12:42 AM, Петр Юркевич said: Здравствуйте! Стоит задача генерировать внутри ПЛИС Altera Cyclone V (кит Terasic DE1-SoC) при помощи PLL некоторую частоту, передавать её на выход LVDS и принимать на другой вход этой же ПЛИС (необходимо для отладки частотомера). По поводу LVDS долго пытался вчитываться в Cyclone V Handbook, но понял только то, что надо использовать функции Квартуса для приёма и передачи сигнала LVDS. Насколько я понял, при назначении в Pin Planner стандарта LVDS Квартус сам назначает пару выбранному пину. Информацию по поводу пар дифференциальных пинов нигде не смог найти. Я выбрал GPIO[12] и GPIO[14] (парные 15 и 13). Дальше создал входной и выходной буферы (ALTIOBUF), которые должны преобразовывать сигнал из моно в дифференциальный и обратно. LVDS_BUF_IN lvds_in ( .datain(GPIO[15]), .datain_b(GPIO[12]), .dataout(clk_in) ); LVDS_BUF_OUT lvds_out ( .datain(clk_0_2), .dataout_b(GPIO[13]), .dataout(GPIO[14]) ); По поводу выходной пары у Квартуса вопросов не возникло, а на входные пины вылезла ошибка: Error (169008): Can't turn on open-drain option for differential I/O pin GPIO[12]. И аналогичная на 15-й пин. Если не создавать буфер, на выходную пару вылезает такая же ошибка, я читал, что Квартус не пропускает неправильно настроенные пины LVDS. Я знаю, что в LVDS должен быть на входе резистор между линиями. Может быть, ошибка из-за его отсутствия в программе? И его как-то настроить надо в самой ПЛИС? прошу прощения, найдите Pin Planner, скажите что у вас стандарт LVDS на выбранных пинах по входу, может полегчает? На приемном конце LVDS как можно ближе должен стоять 100 ом (обычно 0402), программа про него знать не знает (если LVDS, значит должен стоять), внутреннего такого нет. И еще конечно сигналы должны быть разведены дифференциальными парами. Информация про дифф пары - в PIn Planner слева пиктограммы вертикальные Изменено 22 октября, 2020 пользователем En_Serg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Петр Юркевич 0 22 октября, 2020 Опубликовано 22 октября, 2020 · Жалоба 6 часов назад, En_Serg сказал: прошу прощения, найдите Pin Planner, скажите что у вас стандарт LVDS на выбранных пинах по входу, может полегчает? На приемном конце LVDS как можно ближе должен стоять 100 ом (обычно 0402), программа про него знать не знает (если LVDS, значит должен стоять), внутреннего такого нет. И еще конечно сигналы должны быть разведены дифференциальными парами. Информация про дифф пары - в PIn Planner слева пиктограммы вертикальные Спасибо за ответ! В принципе, уже разобрался. Была проблема в неправильном напряжении питания банка выводов (для LVDS требовалось 2.5, а стояло 3.3). Пришлось искусственно в Квартусе менять. А буферы даже не пригодились, оказалось, что можно просто подключаться к положительному выводу, назначенному как LVDS. При этом Квартус сам разбирается и формирует входной и выходной буферы (с резистором он видимо сам как-то порешал). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться