Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Широкополосный умножитель частоты
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
cornflyer
От ВЧ системы поступает частота, которая со скоростью 8kHz/1ms увеличивается от 500kHz до 6MHz, фаза - гладкая функция (без скачков)

1. На входе стоит эллиптический BPF 500kHz - 6MHz (5-го порядка)
2. Далее через ВЧ трансформатор отфильтрованная частота подается на уcилитель G=+10 (AD8067 с G=+10 не искажает в полосе),
3. Далее детектор нуля (ADCMP604)
На выходе компаратора - меандр, который хотелось бы умножить раз в 30 для тактирования АЦП.

Я нашел CS2300-03, который умножает в 4 раза
После него можно поставить CS2300-01 для умножения в 8 раз
В итоге частота должна умножится в 32 раза.

У меня есть вопрос к стабильности работы такого решения - будет ли работать вообще ?
В идеальном случае, когда duty cycle 50% или когда на входе может быть duty cycle 30-70% (после детектора нуля)

PS
в мануале на CS2300-OTP сказано
The following outlines which conditions cause the PLL to go unlocked:
• Discontinuities on the Frequency Reference Clock, CLK_IN.
• Gradual changes in CLK_IN frequency great
er than ±30% from the starting frequency.
• Step changes in CLK_IN frequency
тау
Цитата(cornflyer @ Apr 7 2015, 11:45) *
У меня есть вопрос к стабильности работы такого решения - будет ли работать вообще ?

это очень плохое решение
Lmx2315
не проще ли сделать стабильную тактовую частоту для АЦП стандартными путями, а обработку с помощью ЛЧМ сделать в цифре?
cornflyer
эта задача из ускорительной физики
в процессе ускорения ионного пучка его оборотная частота растет ( в LHC, например, она поястоянна и равна 10kHz, однако для маленьких ускорителей это сделать сложнее)
и чтобы ее вычесть из результата измерений и избежать лишних вычислений - АЦП тактируется частотой от ВЧ системы
это уже работает , но возникла необходимость синхронизации измерений с нужным сгустком ионов (bunch)
для этого частота уножается в 30 раз
и можно двигать фазу тактирования АЦП достаточно точно

Цитата(тау @ Apr 7 2015, 11:20) *
это очень плохое решение

вот я и спрашиваю, может кто знает как сделать лучше?
VCO
Цитата(cornflyer @ Apr 7 2015, 12:35) *
вот я и спрашиваю, может кто знает как сделать лучше?

Напрашивается преобразователь период-код на ПЛИС и DDS AD9910 в режиме параллельного интерфейса.
cornflyer
Цитата(VCO @ Apr 7 2015, 12:52) *
Напрашивается преобразователь период-код на ПЛИС и DDS AD9910 в режиме параллельного интерфейса.

у меня есть Spartan3 XC3S400 (200MHz) и точность подсчета периода +\-5 ns,
а джиттер должен быть не больше 500 ps
можеть есть готовый преобразователь период-код?
иначе придется Kintex-7 использовать
Lmx2315
QUOTE (cornflyer @ Apr 7 2015, 12:35) *
и чтобы ее вычесть из результата измерений и избежать лишних вычислений - АЦП тактируется частотой от ВЧ системы

..тут постоянную частоту для АЦП получить проблема, чтобы обеспечивала требуемый С\Ш а вы боитесь "лишних" вычислений.
Тем более как я понял у вас можно результаты эксперимента записать и обрабатывать сколько хочешь времени потом. Да даже если и на лету - то не вижу проблем взять ПЛИС потолще, кроме финансовых. И уже в математике цифровым ЛЧМ DDS исправить что нужно.

Мне кажется вычисления - правильный путь, а ваш тупик.
з.ы
Сделать тактовую чтобы она плавала от 6 до 192 МГц и при этом была с гладкой фазой и не плавала от времени и температуры и чтобы шумы были низкие (какой у вас АЦП кстати?) это гораздо труднее чем сделать всё в цифре.
И ещё, не понимаю как должен работать ваш антиальязинговый фильтр перед АЦП, ему ведь надо как то отслеживать изменение частоты найквиста в 32 раза.
VCO
Цитата(cornflyer @ Apr 7 2015, 13:17) *
у меня есть Spartan3 XC3S400 (200MHz) и точность подсчета периода +\-5 ns,
а джиттер должен быть не больше 500 ps

Как тут уже много раз советовали, "нос" и "хвост" можно домерять интегратором.
Цитата
можеть есть готовый преобразователь период-код?

Есть, в этой ветке уже маячил, но я уже забыл производителя.
Цитата
иначе придется Kintex-7 использовать

Ну и тут, думаю, не всё так гладко. Скорее логику Hittite придётся задействовать.
Косвенный метод выглядит на порядок безобиднее и точнее.
cornflyer
Спасибо, думаю, что Вы правы - буду делать все на Kintex-7
АЦП - AD7760 24 bit, 2.5 MSPS, параллельный интерфейс
тактирование кратной частотой - до 2.4MSPS, т.е. каждый 80-й такт будет использоваться для запуска АЦП
600kHz ... 6000kHz x 32 => 19.200MHz ... 192MHz / 80 => 240kHz ... 2.4MHz
и будет возможность подобрать начало запуска измерений


Цитата(VCO @ Apr 7 2015, 14:40) *
Как тут уже много раз советовали, "нос" и "хвост" можно домерять интегратором.

Есть, в этой ветке уже маячил, но я уже забыл производителя.

Ну и тут, думаю, не всё так гладко. Скорее логику Hittite придётся задействовать.
Косвенный метод выглядит на порядок безобиднее и точнее.

Прошу Вас поподробнее о косвенном методе
VCO
Цитата(cornflyer @ Apr 7 2015, 14:53) *
Спасибо, думаю, что Вы правы - буду делать все на Kintex-7

В чём прав? Я этого не предлагал - Вы это преложили сами себе...
Цитата
Прошу Вас поподробнее о косвенном методе

Ну там смысл в том, что бОльшую часть периода (а в вашем случае лучше полупериода) измеряют грубо "в лоб" счётной схемой, которая не обеспечивает необходимой точности измерений, а время от стартового фронта измеряемого сигнала до первого счётного фронта опоры и время от последнего счётного фронта опоры до финишного фронта измеряемого сигнала измеряют посредством преобразования времени в напряжение с помощью калиброваного интегратора с аналоговым ЗУ и АЦП на выходе. Дрейф аналоговой схемы в процессе работы постоянно корректируется по той же счётной опоре, которая измеряет основную часть периода (полупериода) в процессе измерения, в результате чего влияние ТКС и ТКЕ интегратора и других факторов, вносящих погрешность, минимизируется.

По данному принципу можно построить схемы, измеряющие с пикосекундными точностями без использования СВЧ-опоры и СВЧ-логики.
тау
Цитата(cornflyer @ Apr 7 2015, 15:53) *
Спасибо, думаю, что Вы правы - буду делать все на Kintex-7
АЦП - AD7760 24 bit, 2.5 MSPS, параллельный интерфейс
тактирование кратной частотой - до 2.4MSPS, т.е. каждый 80-й такт будет использоваться для запуска АЦП
600kHz ... 6000kHz x 32 => 19.200MHz ... 192MHz / 80 => 240kHz ... 2.4MHz
и будет возможность подобрать начало запуска измерений

что-то тут не так.

что в Вашем понимании есть запуск АЦП (указанного типа AD7760)? АЦП же непрерывно работает , там же сигма-дельта модулятор.
ЧТо значит "тактирование кратной частотой - до 2.4MSPS"? это сигнал МCLK? так у МCLK по даташиту границы от 1 до 40 МГц, о каких тогда 240 кГц речь ?
Если это мегасэмплы в секунду для выходных данных , то откуда берется подход , выраженный в словах "каждый 80-й такт будет использоваться"

Входной сигнал, подаваемый на АЦП, у Вас с какой полосой ? случайно не короткие импульсы ?
cornflyer
Цитата(тау @ Apr 7 2015, 20:11) *
что-то тут не так.

что в Вашем понимании есть запуск АЦП (указанного типа AD7760)? АЦП же непрерывно работает , там же сигма-дельта модулятор.
ЧТо значит "тактирование кратной частотой - до 2.4MSPS"? это сигнал МCLK? так у МCLK по даташиту границы от 1 до 40 МГц, о каких тогда 240 кГц речь ?
Если это мегасэмплы в секунду для выходных данных , то откуда берется подход , выраженный в словах "каждый 80-й такт будет использоваться"

Входной сигнал, подаваемый на АЦП, у Вас с какой полосой ? случайно не короткие импульсы ?

импульсы не короткие, полоса 500kHz - 1200kHz
В текущей версии работает AD9444
как тактировать AD7760 - только начал разбираться
MCLK от FPGA, рабочий режим - 2.4 MSPS
может буду использовать ADS1675 - у него есть START
тау
Цитата(cornflyer @ Apr 8 2015, 13:56) *
может буду использовать ADS1675 - у него есть START
а чем SТART лучше SYNC (у AD7760) . То же самое барахло, надо ждать порядка 12-14 мкс после него до появления адекватных данных на выходе. 12 мкс определяются полосой вашего сигнала через установки фильтров внутри АЦП (табл 6 даташита)

Цитата
В текущей версии работает AD9444
неплохой выбор, непонятно чем он вас не устраивает.

неужели в погоне за пресловутыми 24 разрядами вы решили что будет чем-то лучше ( я сомневаюсь что будет лучше) с учетом вашей полосы и установок внутреннего фильтра таких , что из 24 разрядов в лучшем случае останется 17 разрядов с 3-мя младшими "шумящими". Реально будет хуже, наверняка добавится шум входных цепей и усилителей.
cornflyer
да, согласен, что из 24 бит - 6-7 младших будут "шумящими"
поэтому скорее всего остановлюсь на AD7960 - 18-Bit, 5 MSPS PULSAR® Differential ADC
а умножение частоты придется делать внутри Kintex-7
тау
Цитата(cornflyer @ Apr 8 2015, 17:47) *
да, согласен, что из 24 бит - 6-7 младших будут "шумящими"

из 24 шумящими будут 10 разрядов - к бабке не ходи. При выбранной полосе до 2 МГц (4000 kSps) для ADS1675 (см табл 1 стр 16 даташита - последняя строчка по вашим хотелкам полосы) и это в идеальном случае входных цепей.
rloc
Цитата(cornflyer @ Apr 8 2015, 17:47) *
а умножение частоты придется делать внутри Kintex-7

Ни в коем случае, только для цифры.
VCO
Цитата(rloc @ Apr 8 2015, 17:21) *
Ни в коем случае, только для цифры.

Разве только, если ТС хочет там цифровую часть DDS разместить...
rloc
Цитата(VCO @ Apr 9 2015, 10:27) *
Разве только, если ТС хочет там цифровую часть DDS разместить...

Может быть, пусть автор поправит, в начале темы речь была о тактовой АЦП.
cornflyer
Задача умножения частоты не является абстрактной, ее решение необходимо для реализации
точной цифровой задержки и цифрового фазовращателя тактового сигнала АЦП в ПЛИС
с целью привязки измерений к конкретному сгустку частиц (ускоритель Нуклотрон)
и настройки на максимум сигнала с пикапа (для измерения резонансной частоты пучка).

На данный момент изготовлена плата (самодельный FlexRIO модуль) с двумя АЦП AD9444 и двумя ЦАП DAC904
и входом для синхронизации (детектор нуля для привязки к ВЧ).
Этот модуль подключается к PXI FPGA модулю, у которого на борту Virtex-5.
Реализовать задержку и фазовращатель с величиной джиттера меньше 5 нс не удалось.
Вот я и подумал что часоту ВЧ можно уножить раз в 30 и подать уже на ПЛИС.
Тактирование АЦП от ПЛИС - это другая задача (которая уже решена для АЦП AD9444).

Предполагается, что использование модуля FPGA на основе ПЛИС Kintex-7
позволит реализовать фазовращатель с джиттером 2 нс (хотелось бы 0.5нс).
тау
Цитата(cornflyer @ Apr 9 2015, 13:51) *
Задача умножения частоты не является абстрактной, ее решение необходимо для реализации
точной цифровой задержки
и цифрового фазовращателя тактового сигнала АЦП в ПЛИС
с целью привязки измерений к конкретному сгустку частиц (ускоритель Нуклотрон)
и настройки на максимум сигнала с пикапа (для измерения резонансной частоты пучка).

выделил ключевые слова.
Такой необходимости нет. Потому что если у вас сигнал укладывается в полосу 1,2 МГц (ваше сообщение #12) и вы его оцифровали с соблюдением теоремы Котельникова , то все промежуточные значения между моментами дискретизации всегда есть возможность вычислить позже с каким угодно мелким шагом, хоть в 1 ps, и точностью не хуже разрешения АЦП на основе уже полученных отсчетов, без использования аппаратных задержек и фазовращателей. Вычисление делается методом интерполяции

Цитата
Предполагается, что использование модуля FPGA на основе ПЛИС Kintex-7
позволит реализовать фазовращатель с джиттером 2 нс (хотелось бы 0.5нс).
аппаратный фазовращатель , служащий цели "подвинуть моменты дискретизации" для сигнала , имеющего конкретную полосу и способного быть оцифрованным по Котельникову, есть нехорошее излишество. Если Вы не согласны - опровергните.

VCO
Цитата(тау @ Apr 9 2015, 18:22) *
аппаратный фазовращатель , служащий цели "подвинуть моменты дискретизации" для сигнала , имеющего конкретную полосу и способного быть оцифрованным по Котельникову, есть нехорошее излишество. Если Вы не согласны - опровергните.

+1
Таким сдвигом фазы будут лишь внесены дополнительные ошибки в финальный результат.
Тактировать же АЦП необходимо максимально чистым сигналом с кварцевого генератора.
Выпилить же паразитную составляющую из спектра можно тем же вэйвлет-анализом, например.

Единственное исключение вижу только, если на спектральный анализ нету необходимого времени.
cornflyer
Цитата(VCO @ Apr 10 2015, 07:14) *
+1
Таким сдвигом фазы будут лишь внесены дополнительные ошибки в финальный результат.
Тактировать же АЦП необходимо максимально чистым сигналом с кварцевого генератора.
Выпилить же паразитную составляющую из спектра можно тем же вэйвлет-анализом, например.

Единственное исключение вижу только, если на спектральный анализ нету необходимого времени.

именно так
VCO
Цитата(cornflyer @ Apr 10 2015, 22:25) *
именно так

Понятно, значит времени нет. Тогда для тактирования АЦП лучше DDS трудно что-либо придумать.
Ну разве что прямое умножение и фильтрация перестраиваемыми ПФ дадут более чистый сигнал.
Но уж слишком неудобный сигнал не столько для умножения, сколько для фильтрации на сотнях МГц.
В данной ситуации разве что вверху можно было бы поставить несколько коммутируемых полосовиков...
Lmx2315
..я не пойму, как ТС собирается бороться с антиальязингом перед АЦП, если его тактовая меняется в несколько раз?
И ещё не понимаю, какое дополнительное время при обработке может занять - на лету , вычитание из цифрового потока цифрового ЛЧМ на цифровом смесителе? Разве ТС приходится в реальном времени чем-то управлять по измеренным сигналам? Там не знаю , напряжённостью поля, ещё чем-то?
тау
Цитата(VCO @ Apr 13 2015, 13:08) *
Понятно, значит времени нет.

Ну если cornflyer собирался использовать дельта-сигма АЦП с Group Delay порядка 12 мкс , то что то мне подсказывает что эти микросекунды можно пожертвовать на вычисление интерполяции ( не через фурье) в ПЛИСине и получить результат быстрее 1..10 мкс, только АЦП нужен не сигмадельта а тот что уже используется например.

Вполне еще допускаю мысль, что ТС хочет проводить дискретизацию аналогового сигнала за пределами теоремы Котельникова, по нескольким зонам найквиста, т.к. сигнал более широкополосный , шире 1.2 МГц , "импульсный типа". Там интерполяция не прокатит. Однако же ТС говорит что полосовой. Ну ему виднее.
cornflyer
буду пробовать различные варианты
расскажу через несколько месяцев, что в итоге получится
1) C АЦП я определился - это будет AD7960 (18 bit PULSAR, 5 MSPS, LVDS)
2) Период частоты будет считать FPGA:
для высокой точности будет использоваться самодельный преобразователь времени в напряжение (для измерения интервалов между фронтами)
cornflyer
Для измерения частоты будет использоваться TDC-GP22
cornflyer
все работает
для синхронизации в итоге используется White Rabbit (SPEXI):
https://ohwr.org/projects/white-rabbit/wiki
http://www.incaacomputers.com/products/by-...function/spexi/

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.