Тюнер pll что это
Перейти к содержимому

Тюнер pll что это

  • автор:

Разные мысли и соображения о тюнерах

Телевизионный тюнер — схема, заключенная в экранированный корпус, которая выбирает нужный из имеющихся сигналов и переводит его в диапазон первой промежуточной частоты. Преобразование выполняется суммированием/вычитанием входного сигнала с частотой опорного генератора — гетеродина. Гетеродин, как правило (и в нашем случае тоже) — генератор с частотозадающим LC контуром. L — это просто катушка (хотя для диапазона ДМВ она вырождается в отрезок провода), C — в самых ранних телевизорах это были небольшие конденсаторы, набор которых переключался (вместе с катушками) поворотом большой ручки на передней панели, затем их заменили варикапами — диодами, ёмкость переходов которых зависит от приложенного обратного напряжения. Обратное напряжение — напряжение настройки — вырабатывалось либо блоком подстроечных резисторов (3, 4 поколения советских ТВ), либо специальным ЦАП-ом, расположенным в системном контроллере (это уже позднее).

Затем технология продвинулась ещё немного, и в используемом нами тюнере напряжение настройки вырабатывается специальной схемой, управляемой по цифровой шине i2c. Эта схема — не ЦАП, а нечто более оригинальное. Она называется PLL (Phase Lock Loop) и действует так: на варикап подается некоторое начальное напряжение. Частота гетеродина делится управляемым делителем и результат деления сравнивается с некоторой опорной частотой, вырабатываемой низкочастотным кварцевым генератором. Если первая частота превышает вторую — напряжение на варикапе увеличивается, его емкость растёт, частота гетеродина падает. И наоборот — если частота гетеродина, деленная на заданное значение, ниже опорной — напряжение на варикапе уменьшается. Таким образом, гетеродин оказывается строго синхронизован с кварцевым генератором для любого заданного делителя. Точность установки частоты настолько эффективна, что канал будет удерживаться даже в отсутствие внешней автоподстройки, кроме того, константы делителя, соответствующие определенной станции, будут подходить для разных экземпляров тюнера.

Удобство PLL-тюнера для нашей схемы в том, что он не требует высоковольтного ЦАП для управления гетеродином, что существенно упрощает конструкцию.

Вы можете выбрать и другие PLL-тюнеры, например, KS-H-148O, но при этом следует обращать внимание на следующее: 1) доступный тюнеру входной диапазон частот (не все тюнеры могут принимать, например, диапазон кабельных каналов). 2) тип входа — кабель или сразу антенное гнездо. 3) выход — может быть симметричным или ассимметричным. Последнее потребует некоторого изменения схемы. 4) протокол управления. Сложность не в реализации протокола, а в доступности документации на него.

Тюнер KS-H-134O потребляет около 5в / 150 мА для работы гетеродина и управляющей схемы и 30 в / 1 мА для управления варикапами. 5 в можно получить, включив между 12 в шиной питания ТВ и тюнером микросхему 7805, кр142ен5а или что нибудь аналогичное; заодно на эти же 5 в вешается контроллер OSD. 30 в традиционно получают из сигнала обратного хода строчной развёртки: этот импульс использовался раньше для управления декодером цвета. В 32втц201 он используется только для гашения обратного хода луча, но после запланированной переделки этот сигнал будет использоваться для питания тюнера и синхронизации OSD-контроллера.

Сигнал обратного хода строчной развертки — импульс с амплитудой около 60в, скважность примерно 1:10 (вверх 60 в — коротко, вниз — ~10 в — долго), нарисован во многих книжках по ТВ и осцилограмах в схемах ТВ. Мы аккуратно срежем избыточное напряжение простой VD-R-C-VD цепочкой. Никакой серьезной стабилизации этого напряжения не требуется — PLL-схема очень хорошо будет удерживать частоту, важно только чтобы напряжение не превысило допустимый уровень.

На время тестирования, если в вашей местности много ТВ каналов, можно подавать более низкое напряжение — просто при этом будет уменьшаться доступный тюнеру частотный диапазон.

Кроме описанных сигналов, к тюнеру подводится линия AGC — управление усилением. Этот сигнал вырабатывается видеопроцессором, тюнер реагирует на него снижением усиления входного сигнала. Уровни AGC меняются в диапазоне от ~4.8 в (максимальное усиление) до ~1 в (минимальное усиление).

Входы тюнера (i2c и AGC) защищены от разнообразных помех RC-цепочками (100ом, 56пф). Они нарисованы в мануалах. Нужно учесть, что ещё одна такая же цепочка, с резистрами около 300ом расположена внутри тюнера. Поэтому нельзя существенно увеличивать номинал внешнего резистора, кроме того, pull-up резистор i2c должен быть хотя бы 5-10 ком. При меньшем значении системный контроллер не будет устойчиво опознавать передаваемый тюнером логический «0».

Антенный вход, судя по мануалу на тюнер, защищен от статического электричества до уровня 7 кв — его можно просто выставлять как антенное гнездо.

Документация на KS-H тюнеры доступна плохо, хотя с другими производителями ситуация не много лучше. Собственно, именно KS-H-134 (UV1316MK2) я выбрал именно потому, что совпало наличие документации на него и его наличие в продаже. Теоретически, KS-H производится фирмой Selteka, сайт был тут: http://www.selteka.lt/. Казалось бы, помимо технических характеристик там должны были бы лежать и мануалы, но производитель так не думает. Мне удалось найти мануал совсем в другом месте (это была частная страничка с несколькими PDFками на разные железки. Адрес забыл. Кстати, вот ещё похожая страничка). Seltekа, фактически, только сборщик — тюнер построен на микросхеме фирмы Philips. Отсюда вывод: если есть возможность распотрошить тюнер перед покупкой, можно узнать марку управляющей микросхемы и искать мануал на неё, а не на тюнер — там тоже будет много полезного.

Мысли о программировании тюнера

С программированием/управлением проблем не возникло. Я не понял только суть ускоренной начаки/смены частоты и смысл использования крупной сетки частот. У меня всё получилось с использованием мелкой сетки с шагом 31.25 кГц — поиск каналов и перестройка между каналами происходили легко и быстро. Просто внимательно читайте мануал и делайте как там написано.

В исходных текстах моего firmware также упоминаются ещё некоторые детали: например о том, что максимальное время перестроения частоты требует 150 мс по ТТД, но реально перестройка может потребовать гораздо меньшего времени — всё зависит от разницы между текущей и требуемой частотой. Т.е. перестройка на 1-5 шагов — например около одной мс. Я использовал значение 150 (на всякий случай увеличив его до 200) как критерий выхода за пределы диапазона перестройки — т.е. если тюнер за это время не дает готовности (FL = In-lock flag (FL=1 at loop is phase-locked) = 0) — значит нужно либо сменить диапазон либо сказать пользователю, что дальше перестраиваться некуда.

Поиск (обзор) каналов — отдельная песня. В общем, это просто перебор всех доступных частот в цикле, причем после каждой перестройки нужно узнавать мнение видеопроцессора — является ли найденный сигнал похожим на видео или это просто помехи. Видеопроцессор тоже сразу не ответит — он требует около 10 мкс (см. мануал и/или firmware). Вопрос о шаге перестройки я решил в пользу константы 20. Исходя из того, что опознание станции видеопроцессором происходит в диапазоне около +-20 шагов. Т.е. даже на слабом сигнале станция будет наверняка обнаружена. При этом полный обзор всего диапазона занимает около 5 минут. Правда, часты ложные срабатывания — от них избавится не удалось, хотя попытки предпринимались (например, сделать несколько опросов видеопроцессора на фиксированной частоте через небольшие интервалы времени, если ему померещилась станция. Тут ещё непаханое поле. ).

Точную настроку на найденную станцию можно выполнить либо хитрым, но быстрым методом ассимптотического приближения, либо просто линейно двигаться к точке, указываемой видеопроцессором — он сам сообщает — далеко станция или близко и ниже она по частоте или выше. «Близко» — значит точка достигнута (около 1-3 шагов, на качестве картинки это уже не сказывается). «Далеко» — около 30-10 шагов. Я выбрал линейное управление, точка может быть достигнута за время, меньшее секунды, так что выделываться с ассимптотами смысла не имеет. Единственная проблема — иногда, при достижении станции в быстром поиске, видеопроцессор рапортует сразу о достижении «близкой» точки, и firware считает что станция найдена точно. Однако через некоторое время (видимо, сотни мс — не меньше) видеопроцессор спохватывается и уже начинает работать правильнее. В мануале ничего на эту тему найдено не было, попытки сделать повторную автоподстройку через небольшую паузу пользы не принесли. В итоге, просто была сделана кнопка на пульте, которая позволяет повторить АПЧ. Примерно на 1 из 10 станций эта кнопка помогает уточнить настройку (остальные 9 сразу находятся правильно). Тут, опять же, есть о чём подумать.

Фактически, тюнер состоит из трех отдельных каналов, каждый из которых работает в своём диапазоне частот. Отражается этот факт только на управляющем тюнером коде. Однако, так как каждый из каналов имеет небольшую полосу, в которой также работает другой канал (полосы перекрываются), управляющий код построен так, что на перекрывающихся участках можно использовать любой из каналов. Это достигается очень просто: при перестройке частоты текущий канал используется до тех пор, пока тюнер дает готовность. Например (цифры зависят от экземпляра тюнера), если к частоте 150 МГц перестраиваться сверху вниз, от частоты 250 МГц, будет использоваться канал второго диапазона, он сорвётся где-то на частоте 120 МГц. Если же к 150 МГц идти снизу, от 50 МГц — будет использован первый канал, его граничная частота — 160 МГц.

Схема включения тюнера

  • В состав блока тюнера входит стабилизатор +5 в, которые в дальнейшем используются для питания контроллера OSD и индикации корректной работы силового блока питания системному контроллеру.
  • Линия AGC уходит в блок системного контроллера (на вход АЦП) для индикации уровня сигнала. Она не обязательна (и реализована только в версии ATmega8), но с ней интересно играть.
  • Я не уверен, что выбор фильтра k2954 на 38,0 МГц был удачен. Если у вас есть возможность — поэкспериментируйте. У меня возможности не было.
  • Цепочка питания +33в (лапка 9 тюнера): 1) диод 1n4148 выбран не случайно — обратное напряжение тут велико, ток при включении — не очень низкий. Мне казалось, что этот диод долго не выдержит, но, как ни странно, проблем с ним не было. 2) стабилитрон ka33v использовался в первых трех экземплярах, потом я его сменил на кс531 — его ставили во многие советские телевизоры последних лет. Причина: стоимость и наличие. 3) резистор 13к — обратите внимание на допустимую рассеиваемую мощность: на нём падает около 15 в.
  • Защитные резисторы в I2C — их увеличивать не рекомендуется: внутри тюнера стоит ещё одна такая же цепочка с резисторами > 300 ом, если суммарное сопротивление возрастает легко возникают ошибки при передаче данных от тюнера к сисконтроллеру. Кондесаторы в этой цепи можно менять в заметных пределах — 56. 100пф работают хорошо.
  • Тюнер можно попробовать заменить похожим, . но я не пробовал: ks-h-148, например. Вообще, пойдёт любой PLL-тюнер, с нужным частотным диапазоном (ks-h-134 берёт всё, но есть похожие тюнеры с неполным перекрытием 48..850 МГц). Нужно только следить за первой промежуточной частотой: при её изменении с 38,0 МГц на другие частоты потребуется подправить соответствующие части в прошивке сисконтроллера (битики настройки видеопроцессора и, в версии ATmega8, процедуру вычисления номера канала по делителю настройки тюнера) и заменить фильтр первой ПЧ. В протоколе управления могут быть отличия — придётся подправлять firmware. Да, и про напряжения питания не забывайте !
  • Лапка 3 тюнера позволяет выбрать адрес устройства на I2C и в большинстве схем остаётся свободной. Моей левой пятке больше нравится вариант, когда она заземлена. Это отражается на управляющем коде.

Рисунок радиатора для кр142ен5а:

Фазовая модуляция радиосигнала в ПЛИС

Так иногда бывает, что занимаешься одной технической проблемой, но, по мере погружения в задачу и во время поиска ее решения, появляются «побочные продукты». Так случилось и в этот раз. Я исследовал различные методы измерения временных интервалов с помощью ПЛИС. В одном из предложенных методов измерений был использован динамический сдвиг фазы тактовой частоты с PLL. Позже пришла идея: используя свойства PLL можно попробовать сделать в ПЛИС простейший радиопередатчик с фазовой модуляцией.

И кое-что получилось!

Пожалуй нужно немного рассказать, что такое PLL. PLL (Phase Locked Loop) — это устройство фазовой автоподстройки частоты генератора. Выглядит примерно вот так:

Здесь есть ГУН — Генератор, Управляемый Напряжением. Он выдает желаемую частоту, которая через обратную связь идет на фазовый детектор. Фазовый детектор определяет разность фаз между опорной частотой F0 и получившейся частотой F1, разность фаз — это сигнал ошибки, который отфильтровывается и воздействует на ГУН, заставляя его колебаться чуть быстрее или чуть медленнее. Так, на выходе ФАПЧ получается частота, синхронная с опорной.

В микросхемах ПЛИС, например, от компании Интел (эх… когда-то была Альтера) серии MAX10 есть встроенный PLL, который выглядит вот так:

Кажется, что это что-то гораздо более сложное, чем то, что изображено выше. Но нет, если присмотреться внимательно, то видны общие черты: ГУН, Генератор Управляемый Напряжением — это VCO, Voltage Controlled Oscilator. PFD — это фазовый детектор, LF — Loop Filter, фильтр фазовой ошибки.

Кроме всего прочего, PLL внутри ПЛИС имеет набор счетчиков делителей. Например, делитель частоты M в цепи обратной связи позволяет получить на выходе PLL частоту в несколько раз выше, чем опорная. Так же имеются выходные счетчики C0-C4, которые позволяют на пяти выходах PLL получить сетку частот с разными делителями.

Есть внутри PLL еще компоненты, которые почему-то обычно не изображаются на структурных схемах в документации Altera/Intel — это схемы управляющие перезагрузкой и перенастройкой PLL. Логические схемы в ПЛИС могут на лету перезагружать коэффициенты счетчиков делителей в PLL и еще они позволяют сдвигать фазу выходных частот PLL. Конечно, перезагрузить на лету параметры PLL — это не очень простая операция, которая к тому же занимает определенное время. А вот сдвигать фазу выходной частоты PLL можно довольно просто и быстро. Причем, разрешающая способность по фазе напрямую зависит от частоты Fvco. Сдвигать фронт тактовой частоты можно на 1/8 периода Fvco. Например, входная частота на PLL Fin=100МГц, а делитель M в цепи обратной связи к фазовому детектору равен 13-ти. Тогда Fvco=1300МГц, а разрешение по фазе для выходной частоты PLL Fout=100МГц будет составлять всего 3,46 градуса.

Для разработки проекта для ПЛИС Altera/Intel используется среда САПР Quartus Prime и в ней есть средства настройки экземпляров PLL: Megawizard Plug-In Manager. С его помощью можно устанавливать нужные свойства PLL:

Здесь как раз и видно какие получаются Fvco и разрешение по фазе для выходных частот.

Для управления фазой выходных частот у компонента PLL есть дополнительные сигналы: SCANCLK, PHASESTEP, PHASEUPDOWN, PHASECOUNTERSELECT, PHASEDONE.

В документации Altera/Intel написано, как управлять этими сигналами, чтобы получить единичный сдвиг фазы на избранной выходной частоте.

Получается так: сигнал PHASEUPDOWN определяет в какую сторону нужно двигать фазу. PHASECOUNTERSELECT определяет сигнал какой именно тактовой частоты PLL будет сдвинут (например, если нужно сдвинуть частоту c1, то PHASECOUNTERSELECT=3’b011 — это есть в документации). Цикл сдвига фазы начинается с установки сигнала PHASESTEP и заканчивается, когда PLL выставит в ноль PHASEDONE. Если нужно сдвинуть фазу значительно, то придется выполнить несколько таких циклов. Все это при желании можно даже просимулировать в ModelSim, как это делается я писал вот здесь.

Теперь, дальше — интереснее. Плавно перехожу к моему «радиопередатчику»:

Я использую плату Марсоход3bis на чипе ПЛИС Altera/Intel MAX10. Плата имеет встроенный программатор на базе двухканального чипа FTDI. Причем один канал FT2232HL используется под JTAG (загрузка ПЛИС, отладка в SignalTap), а второй канал используется для передачи данных в плату, как последовательный порт.

К плате, прямо к двум цифровым пинам-выходам подключены два куска провода по 0,75 метра. Это антенна, «полуволновый вибратор». Без выходного аналогового фильтра на излучаемый диапазон, конечно, не хорошо, но сама антенна уже какой-то фильтр, да и мощность передатчика невелика…

Проект написан на языке Verilog HDL — всего-то пара десятков строк кода:

module top( input wire CLK100MHZ, input wire key0, input wire key1, input wire FTDI_BD0, //serial RX line output wire [19:0]io ); wire wc0; wire wc1; wire wlocked; wire wpdone; wire up_down; reg pstep; wire scanclk; assign scanclk = wc0; reg [7:0]cnt8; always @( posedge scanclk ) cnt8 ; serial receiver( .reset( ~wlocked ), .clk100( wc0 ), //100MHz .rx( FTDI_BD0 ), .sbyte( 8'h00 ), .send( 1'b0 ), .rx_byte( w_rx_byte ), .rbyte_ready( w_byte_ready ), .tx(), .busy(), .rb() ); reg [7:0]current_pll_phase = 0; wire [7:0]signal; assign signal = w_rx_byte[7:0]; assign up_down = signal>current_pll_phase; reg [3:0]state = 0; always @( negedge scanclk ) begin case(state) 0: begin //wait recv byte if( byte_rdy ) state 

Весь проект для САПР Intel Quartus Prime можно взять на GitHub: github.com/marsohod4you/Fpga-PM-Radio.

В проекте есть PLL с двумя выходами c0 и c1, на каждом из них 100МГц. Выход c0 используется для тактирования всей схемы, а вот выход c1 — это и есть несущая 100МГц, частота моего «радиопередатчика» (FM-диапазон). Ее я и собираюсь модулировать по фазе.

Я собираюсь посылать сырой аудиофайл с компьютера в плату через последовательный порт. При формате данных 8 бит на одну аудиовыборку, моно, 22050Гц, наиболее удобна скорость последовательного порта 230400 бод. В самом деле, каждый байт при последовательной передаче имеет старт бит и один или два стоп бита. Если два стоп бита, то получается 11 передаваемых бит на байт данных. Значит 230400/11=20945 выборок в секунду. Это конечно не идеал, не 22050, но чуть-чуть похоже. Ну получится у меня звук немного ниже, чем нужно, мне для моих экспериментов не важно… Итак в проекте есть приемник последовательных данных.

Полученный из последовательного порта байт w_rx_byte внутри ПЛИС сравнивается с внутренней переменной (регистром) current_pll_phase. Разница меж ними — это и есть количество шагов по сдвигу фазы, которые нужно сделать в одну или другую сторону. Таким образом выполняется фазовая модуляция на выходе c1 у PLL.

Теперь второй вопрос. Предположим, что передатчик с фазовой модуляцией работает, а чем слушать?

Я исхожу из того, что ФМ и ЧМ непосредственно связаны друг с другом интегральным/дифференциальным законом. Мгновенная частота радиосигнала — это производная от его фазы. Производная синуса — это косинус. Вряд ли слушатель радиопередачи отличит их на слух (шутка). В общем, я решил попробовать передавать аудио файл моим «радиопередатчиком» с фазовой модуляцией, а слушать мою «радиопередачу» обычным FM-приемником. Я использую мобильный телефон с гарнитурой в качестве FM приемника.

Вот как это выглядит:

Удивительно, но передаваемая мной музыка устойчиво слышна в FM радиоприемнике мобильного телефона на расстоянии до 10-15 метров.

PS: В России 7 мая отмечается День радио. В 1895 году выдающийся русский физик и изобретатель Александр Попов в Санкт-Петербургском университете продемонстрировал созданную им первую в мире искровую беспроводную приемо-передающую радиосистему. В России этот факт был принят за точку отсчета начала радиосвязи.

  • Разработка систем связи
  • FPGA

Что такое PLL ТЮНЕР Подробнее о нём кто может рассказать

Тюнер это блок приема (чаще) или настройки.
PLL это тип синтезатора частоты с фазово-частотной петлей захвата.
В итоге это приемный блок с синтезатором частот в цепях настройки (на каналы и проч.).

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Использование PLL

блок схема устройства PLL Phase-Lock Loop

PLL (Phase-Locked Loop) - это специальный генератор со схемой подстройки частоты, это генератор, управляемый напряжением (VCO - voltage-controlled oscillator). В генераторе реализовано сравнение фаз сигнала входной частоты и сигнала выходной частоты. Измеренная разность фаз этих частот через отрицательную обратную связь как раз и управляет частотой генератора, фиксируя ее на заданном значении.

PLL широко используются при телекоммуникации, в компьютерах и других электронных устройствах.

Замечу, что в микросхеме серии MAX II, которая стоит на нашей первой плате Марсоход, не было встроенных PLL. Серия Altera MAX II слишком простая.

В микросхеме Altera Cyclone III, установленной на новую плату Марсоход2, есть встроенные PLL. Это очень важный компонент, так как с помощью PLL обычно в проекте создаются все частоты, нужные для дизайна. Именно поэтому нужно познакомиться с PLL поближе.

Рассмотрим принцип действия PLL.

На вход PLL подается некая входная частота опорного генератора Fin . Далее на счетчике N-counter опорная частота делится и получается другая частота Fref , которая поступает на фазовый детектор PFD (phase-frequency detector).
Фазовый детектор сравнивает фазы частот Fref и той, что поступает с делителя M-counter . Разность фаз, фильтруется и управляет генератором VCO .
На выходе управляемого генератора - новая частота Fvco . Фазовый детектор подает управляющее воздействие на генератор VCO до тех пор, пока не выполнится условие Fref = Fvco / M . При этом условии частоты подаваемые на детектор фаз равны. Таким образом, например, если M=2, то частота генератора VCO должна получиться в 2 раза выше частоты Fref . Последний этап - частота Fvco делится на выходном счетчике K-counter .
Подбирая коэффициенты N, M, K можно синтезировать довольно большой диапазон частот. Более сложные компоненты PLL позволяют перезагружать коэффициенты в процессе работы системы.

Это было достаточно упрощенное изложение. Более подробно о работе PLL можно почитать в документации компании Альтера например про микросхему Cyclone III: Clock Networks and PLLs in the Cyclone III Device Family.

В этой Альтеровской документации, например, блок-схема PLL изображена вот так:

Блок схема PLL микросхемы Altera Cyclone III

Вроде бы сложно, но по сути так же, как я нарисовал выше.

Теперь спустимся с небес на землю и посмотрим, как же эти PLL использовать в проектах для Cyclone III и в частности для платы Марсоход2.

Здесь все довольно просто. В среде ALtera Quartus II запускаем визард через меню Tools => MegaWizard Plug-In Manager .

Пошаговое создание компонента PLL в Quartus II

Выбираем Create a new custom megafunction variation и нажимаем Next .

Пошаговое создание компонента PLL в Quartus II

В новом окне, слева выбираем Installed Plug-Ins => I/O => ALTPLL .
Справа выбираем на каком языке HDL генерировать компоненту, например, Verilog, и ниже задаем имя нового файла. Нажимаем кнопку Next .

Пошаговое создание компонента PLL в Quartus II

Тут запускается уже визард собственно связанный с компонентой ALTPLL .
Задаем нужные нам параметры. Параметров много. В большинстве случаев многие из них можно не устанавливать. Например, использовать Select the PLL type automatically и еще In normal mode . Из важных параметров - это тип микросхемы согласно проекта (Cyclone III), значение входной частоты - это частота генератора, установленного на плате. У нас на плате Марсоход2 - это 100Мгц. И еще указать быстродействие ( speed grade ) микросхемы - у нас это 8.
Нажимаем кнопку Next .

Пошаговое создание компонента PLL в Quartus II

На следующем экране визарда отмечаете, какие сигналы PLL вам нужны. Нужен ли вам в проекте сброс PLL areset ? или разрешение работы PLL pfdena ? Нужен ли сигнал сигнализирующий о том, что нужная частота установлена locked ? Принимаете решение об этих сигналах и нажимаете Next .

Я позволю себе пропустить 3 экрана визарда, чтобы сильно не утомлять читателя. Я пропущу настройки Spread Spectrum - это про возможность девиации частоты на выходе PLL, еще пропускаю ClockSwitchover - возможность подключить вторую входную частоту и пока пропускаю Dynamic Reconfiguration . Это довольно специальная тема. Может быть как нибудь в другой раз.

Пошаговое создание компонента PLL в Quartus II

А вот и самый главный экран визарда.
Здесь мы должны задать коэффициенты умножения и деления для исходной частоты, чтобы получилась нужная нам частота.

Коэффициенты можно задать самостоятельно вручную или задать желаемую частоту и Quartus II Wizard сам расчитает коэффициенты, которые нужно потом скопировать.

Вот, например, для работы первого проекта для платы Марсоход2 для видеорежима 1440x900 60Hz нужна по стандарту VESA частота 106.5Мгц.

Я указываю в окошке Requested Settings 106,5 и мне предлагают умножить частоту на 213 и разделить на 200! Ну и отлично! Если вверху окошка написано синим цветом Able to implement requested PLL , значит, у нас все получается.

Заметьте, что у Cyclone III PLL может иметь 5 выходов: C0 , C1 , C2 , C3 , C4 . Каждый из выходов может быть самостоятельно сконфигурирован на заданную частоту. Правда частоты получатся более или менее связанными. Например можно получить сетку 33Мгц, 66Мгц, 133Мгц, 166Мгц - у них общий коэффициент 33. Трудно или не возможно получить сетку не связанных частот.

Для каждого выxода PLL будет соответствующая страница визарда с настройками.

Пошаговое создание компонента PLL в Quartus II

Пройдя визард до конца мы получаем некоторые сгенерированные файлы.
Файл с расширениями *.BSF - это компонент, который можно вставить в схему, если вы делаете проект в схематическом виде. Файл вида mypll.v это модуль на Verilog, экземпляры которого можно вставлять в свои модули Verilog.

Вот пожалуй все первоначальные сведения для использования PLL в проектах для микросхему Altera Cyclone III.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *