Jump to content

    

Петр Юркевич

Участник
  • Content Count

    13
  • Joined

  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Спасибо за ответ! В принципе, уже разобрался. Была проблема в неправильном напряжении питания банка выводов (для LVDS требовалось 2.5, а стояло 3.3). Пришлось искусственно в Квартусе менять. А буферы даже не пригодились, оказалось, что можно просто подключаться к положительному выводу, назначенному как LVDS. При этом Квартус сам разбирается и формирует входной и выходной буферы (с резистором он видимо сам как-то порешал).
  2. Спасибо! Попробую Да, я понял, скорее всего сделаю кодирование значений. Спасибо за советы!
  3. Нашёл post-fitting схему. Там Квартус сделал что-то странное. Шины freq_base и time_del почему-то объединены, но со сдвигом на 1. При этом они целиком идут в SignalTap, а в частотомер уходят только бит 0 из каждой... Видимо он действительно решил упростить себе работу. Можно его как-то заставить сделать правильно? Может, существуют настройки разводки? P.S. Я подумаю над перекодированием, сейчас мне просто интересно, можно ли сделать так, как я изначально задумал
  4. Здравствуйте! Делаю частотомер на ПЛИС (DE0-Nano-SoC, Cyclone V). Мне необходимо выводить значение измеренной частоты на внешний дисплей, поэтому было удобно подключить Nios, чтобы он этим занимался. Т.к. частотомер измеряет отрезок времени по некоторой опорной частоте, ему необходимо значение этой частоты, которое передаётся в модуль частотомера извне. Была идея реализовать поддержку изменения опорной частоты и интервала, на котором производится измерение, а также впоследствии возможность простого ввода этих значений (пока ввод реализован посредством переключения свитчей). Решил сделать это через Nios. Если с делителем интервала (деление посредством сдвига, поэтому по-умолчанию ставится 0) проблем не возникло, то с передачей значения опорной частоты (точно такого же формата, что и делитель) из Nios в частотомер возникла непонятная мне проблема: Выход Nios соединяется с соответствующим входом частотомера прямым проводом, который (судя по схеме Квартуса) ничем не делится. Но когда я всё запускаю и прошиваю Nios, он выставляет на выходе значение 200_000_000 (Гц). Но если посмотреть по SignalTap'у, то оказывается, что на выходе Nios правильное число (3я строка), а на входе частотомера 0 (1я строка), причём делитель передаётся нормально (здесь не видно, но если изменить на другое число, то на 2й и 4й строчках числа будут одинаковыми). В чём здесь может быть проблема? Проект находится на ГитХабе: https://github.com/FlexlabCompany/frequency_meter_Nios_display Проект ещё содержит часть для DE1-SoC, но здесь он используется только как сторонний генератор измеряемой частоты.
  5. Подскажите, пожалуйста, где это в Квартусе сделать? И ещё вопрос по поводу организации передачи и приёма. Это делается при помощи буфера, преобразующего сигнал из моно в дифференциальный? Или Квартус должен сам с этим разобраться и создать соответствующую логику, а мне надо только задать стандарт в PinPlanner?
  6. Здравствуйте! Расскажите, пожалуйста, как через Квартус настроить LVDS (Чип Cyclone V). Я пробовал несколько разных вариантов, но на все он выдаёт разные ошибки. Насколько я понял из вашего ответа, легально настроить никак не получится, если банк запитан от 3.3V?
  7. Здравствуйте! Стоит задача генерировать внутри ПЛИС 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 должен быть на входе резистор между линиями. Может быть, ошибка из-за его отсутствия в программе? И его как-то настроить надо в самой ПЛИС?
  8. Спасибо! Попробую сделать Можете поподробнее объяснить, пожалуйста. Мне хотя бы чб вывести, уже неплохо
  9. Т.е. мне надо проводом подключить зелёный канал VGA к видео разъёму телевизора и сгенерировать на нём сигнал по соответствующему стандарту? Вы назвали 2 стандарта, как узнать, по какому из них надо работать?
  10. Поясните, пожалуйста, какой 1 В Вы имели ввиду, для чего он там требуется? Сигнал VGA я создать могу, вопрос в том, как его передать?
  11. Здравствуйте! Есть необходимость подключить выход VGA (кит de1-soc, чип ADV7123) к входу rca для композитного видеосигнала. В наличии имеется переходник Scart - 3xRCA (неизвестный). Возможно ли как-то соединить контакты для передачи изображения?
  12. Здравствуйте! Работаю с китом DE1-SoC Terasic с Altera Cyclone V. Хотел сделать при помощи Nios вывод данных на экран через интерфейс VGA, используя при этом IP из раздела University Program/Video. В частности, через контроллер DMA Для видео. Но не могу разобраться с адресом, из которого он читает. При создании системы в Qsys всем устройствам на Avalon присваиваются адреса, но, если я правильно понимаю, это не те адреса, т.к. кадр должен храниться в On-chip-memory. Систему см. на рисунке, я её упростил, убрав Uart jtag, sysID и PLL для VGA-контроллера (ему требуется 25 МГц). Я пытался записывать в Buffer starting address адрес переменной, созданной в программе для Nios, но получалась всё равно ерунда (на экране отображались какие-то случайные пиксели). Также возникла проблема, что на чипе недостаточно памяти для хранения данных в разрешении 640х480 и 30 бит RGB (требования VGA-контроллера), но её я решил снижением исходного разрешения и установкой Scaler между DMA-контроллером и Dual-clock-буфером. Поясните, пожалуйста, по поводу адресов в этой системе (в частности, какой нужен DMA-контроллеру) и, может быть, есть вариант, чтобы DMA читал не из on-chip-memory, а из, например, подключенной SDRAM?