реклама на сайте
подробности

 
 
> синхронизировать тактовые частоты двух ПЛИС, два Xilinx Spartan 6
AVR
сообщение Mar 2 2013, 22:12
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Необходимо решить задачу синхронизации двух ПЛИС Spartan 6. Мне надо чтобы были синхронными импульсы 100 Гц, а уже расхождение в течение 10 мс в рамках допустимой погрешности будет при любом раскладе. Необходимо чтобы синхронность в пределах 1-2 мкс сохранялась в течение 5 минут. Казалось бы, требования простые, придумывая и тестируя различные методы на Verilog в симуляторе (имитируя расхождение частот в плюс и минус) мне удавалось решить задачу. А вот реальные испытания с осциллографом и двумя каналами (по триггеру смотрел расхождение) показали что решение никуда не годится...

У каждой ПЛИС свой внешний генератор на 50 МГц (KXO-V97, но не суть, там 50 ppm). Между собой они соединены по диф.-паре LVDS_33, помех нет.

Важный момент: после синхронизации ПЛИС должны быть разъединены, поэтому надо чтобы 5 минут потом сохранялось равенство тактовых частот, только вот установить еще надо их равными.

Я так понимаю что встроенный DCM решает такую задачу. Им я пользовался лишь для преобразования одной частоты в другую.

Вопрос: как пользоваться DCM для синхронизации двух тактовых частот? Как называется процесс или режим работы DCM? Есть ли статьи или туториалы?

Чтобы если одна базовая ПЛИС ушла по частота от 50 МГц на 752 Гц например, то чтобы вторая тоже имела такое же смещение (50000752 Гц).


--------------------
Go to the top of the page
 
+Quote Post
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
AVR
сообщение Mar 3 2013, 11:51
Сообщение #16


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(des00 @ Mar 3 2013, 15:46) *
а пропустив через интерфейс 100Гц с мастера и используя их как опорный генератор, еще и по фазе генераторы выровняете sm.gif
вот этот момент, если честно, не понял


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 12:10
Сообщение #17


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AVR @ Mar 3 2013, 05:51) *
вот этот момент, если честно, не понял

для работы фазового детектора нужна опорная частота 100Гц, ее можно получить двумя способами :
1. Подав с мастера 100Гц
2. Подав с мастера тактовую частоту и регенировать из нее 100Гц в слейве.

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


--------------------
Go to the top of the page
 
+Quote Post
Timmy
сообщение Mar 3 2013, 13:29
Сообщение #18


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(des00 @ Mar 3 2013, 15:46) *
ИМХО в порядке ошиблись. Требуемая стабильность частоты 100Гц = 2мкс/10мс = 200ppm.

Просто мне показалось, что ТС говорит не об отклонении периода частоты 100Гц на 1 мкс в течение 5 мин, а об интегральной разности фаз, набегающей за 5 мин. В первом случае задача вроде решается однократной подстройкой обычного цифрового делителя.
Go to the top of the page
 
+Quote Post
khach
сообщение Mar 3 2013, 13:39
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Вместо KXO-V97 ставим подходящий VCXO, выделяем две ноги Спатрана под выход фазового детектора, операционник и ФНЧ на вход управления VCXO. В начале общения по протоколу договариваемся, кто будет ведущим, а кто ведомым. У ведущего отключаме ФД и устанавливаем PWM половину диапазона регулировки VCXO, ну или предустановленное при калибровках из епрома или откуда еще. А второй вводим в синхронизацию с первым. Или тупо подаем на ФД такотовые 100 Гц импульсы от внешней и от внутренней системы, или разность фаз определяем счетным методом- в последенем случае можно быстрее войти в синхронизм.
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 13:49
Сообщение #20


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(khach @ Mar 3 2013, 17:39) *
Вместо KXO-V97 ставим подходящий VCXO, выделяем две ноги Спатрана под выход фазового детектора, операционник и ФНЧ на вход управления VCXO. В начале общения по протоколу договариваемся, кто будет ведущим, а кто ведомым. У ведущего отключаме ФД и устанавливаем PWM половину диапазона регулировки VCXO, ну или предустановленное при калибровках из епрома или откуда еще. А второй вводим в синхронизацию с первым. Или тупо подаем на ФД такотовые 100 Гц импульсы от внешней и от внутренней системы, или разность фаз определяем счетным методом- в последенем случае можно быстрее войти в синхронизм.

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


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 13:57
Сообщение #21


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



2 AVR вы бы задачу описали, тогда можно было бы не гадать


--------------------
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 15:22
Сообщение #22


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(des00 @ Mar 3 2013, 17:57) *
2 AVR вы бы задачу описали, тогда можно было бы не гадать

Задача:
Есть две ПЛИС. У каждой свой генератор. Частоты различаются. На несколько секунд их можно соединить кабелем, затем 5 минут работы автономно.
Необходимо сделать так, чтобы импульсы (пусть будет 1 КГц, не 100 Гц) в течение 5 минут на одной плате были как можно более синхронны к 1 КГц импульсам на второй плате.

Цель: необходимо замерять время хода звука с высокой точностью (есть датчики к ПЛИС с соответствующей аналоговой схемой), поэтому хотя бы 5 минут должно быть более менее стабильно.


--------------------
Go to the top of the page
 
+Quote Post
skv
сообщение Mar 3 2013, 15:55
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 23-12-04
Пользователь №: 1 636



Цитата(AVR @ Mar 3 2013, 02:12) *
Необходимо решить задачу синхронизации двух ПЛИС Spartan 6. Мне надо чтобы были синхронными импульсы 100 Гц, а уже расхождение в течение 10 мс в рамках допустимой погрешности будет при любом раскладе. Необходимо чтобы синхронность в пределах 1-2 мкс сохранялась в течение 5 минут. Казалось бы, требования простые, придумывая и тестируя различные методы на Verilog в симуляторе (имитируя расхождение частот в плюс и минус) мне удавалось решить задачу. А вот реальные испытания с осциллографом и двумя каналами (по триггеру смотрел расхождение) показали что решение никуда не годится...

У каждой ПЛИС свой внешний генератор на 50 МГц (KXO-V97, но не суть, там 50 ppm). Между собой они соединены по диф.-паре LVDS_33, помех нет.

Важный момент: после синхронизации ПЛИС должны быть разъединены, поэтому надо чтобы 5 минут потом сохранялось равенство тактовых частот, только вот установить еще надо их равными.

Я так понимаю что встроенный DCM решает такую задачу. Им я пользовался лишь для преобразования одной частоты в другую.

Вопрос: как пользоваться DCM для синхронизации двух тактовых частот? Как называется процесс или режим работы DCM? Есть ли статьи или туториалы?

Чтобы если одна базовая ПЛИС ушла по частота от 50 МГц на 752 Гц например, то чтобы вторая тоже имела такое же смещение (50000752 Гц).


Боюсь, что сделать "часы реалього времени" на дешевой комерческой базе, но с точностью атомных ччастов не получиться. Все зависит от точности опорного тактового генератора. Никакие синтезаторы не могут скомпенсировать неточность тактового генератора. Это не их задача. Они для этого не предназначены. Они лишь делят и умножают опорную частоту, чтобы получить требуемую. Сами посчитайте. При 50 ppm за 5 минут в худшем случае разбегутся на 30 мс. Чтобы обеспечить ваши требования нужно чтобы точность тактовых генераторов была 0,00х ppm. Лично я таких генераторов не встричал.

Можно попробовать подобрать. Но нужно обязательно генератор с компенсацией температурного дрейфа. Иначе все усилия пойдут "коту под хвост"

Цитата(AVR @ Mar 3 2013, 19:22) *
Задача:
Есть две ПЛИС. У каждой свой генератор. Частоты различаются. На несколько секунд их можно соединить кабелем, затем 5 минут работы автономно.
Необходимо сделать так, чтобы импульсы (пусть будет 1 КГц, не 100 Гц) в течение 5 минут на одной плате были как можно более синхронны к 1 КГц импульсам на второй плате.

Цель: необходимо замерять время хода звука с высокой точностью (есть датчики к ПЛИС с соответствующей аналоговой схемой), поэтому хотя бы 5 минут должно быть более менее стабильно.


Для этого не надо высокоточных генераторов.
Задача решается калибровкой системы по эталонному звуковому сигналу. Грубо говоря, подбираете сколько тактов 50 МГ-цовой частоты укладывается в периоде эталонного 100 Г-цового сигнала
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 16:07
Сообщение #24


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(skv @ Mar 3 2013, 19:55) *
Для этого не надо высокоточных генераторов.
Задача решается калибровкой системы по эталонному звуковому сигналу. Грубо говоря, подбираете сколько тактов 50 МГ-цовой частоты укладывается в периоде эталонного 100 Г-цового сигнала

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

Только сигнал у меня 20-40 КГц, а 1 КГц - это лишь частота синхроимпульсов.

Я создал тему чтобы узнать - есть ли в Spartan 6 что-нибудь для идеального решения задачи. Оказалось нет.


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 16:26
Сообщение #25


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(AVR @ Mar 3 2013, 09:22) *
Необходимо сделать так, чтобы импульсы (пусть будет 1 КГц, не 100 Гц) в течение 5 минут на одной плате были как можно более синхронны к 1 КГц импульсам на второй плате.

Что дальше происходит с этими импульсами ? они идут вне плис или используются в качестве стробов/сигналов для обработки внутри плис ?


Как бы есть простая технология цифровой привязки "виртуальных тактовых частот" (т.е. частоты, на которой идет обработка сигнала, не путать с тактовой частотой), как раз на описанной выше ФАПЧ. Использую ее в связных модемах, в задачах когда нужно передавать/принимать синхронные потоки при использовании одного эталонного генератора. Но не знаю подойдет ли она вам, там есть определенные ограничения (например требование на тактовую частоту устройства Ft > Fsymb), в особенности что касается аналого-цифровых стыков.

вот только генераторы надо будет подобрать получше, хотя бы 5ппм %)

Цитата(khach @ Mar 3 2013, 07:39) *
Вместо KXO-V97 ставим подходящий VCXO, выделяем две ноги Спатрана под выход фазового детектора, операционник и ФНЧ на вход управления VCXO. В начале общения по протоколу договариваемся, кто будет ведущим, а кто ведомым. У ведущего отключаме ФД и устанавливаем PWM половину диапазона регулировки VCXO, ну или предустановленное при калибровках из епрома или откуда еще. А второй вводим в синхронизацию с первым. Или тупо подаем на ФД такотовые 100 Гц импульсы от внешней и от внутренней системы, или разность фаз определяем счетным методом- в последенем случае можно быстрее войти в синхронизм.

угу, а когда внешний клок пропадает, как будете фиксировать уровень управления гуном? генерировать требуемую последовательность фазового детектора? Петлевой фильтр в цифре делать надо. Ну и по управлению либо шумоподобный шим либо ЦАП ставить %)


--------------------
Go to the top of the page
 
+Quote Post
Iptash
сообщение Mar 3 2013, 16:43
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



На ведущей плате передатчик посылающие синхросигналы, на ведомой плате приемник. Или не?
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 3 2013, 16:57
Сообщение #27


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Iptash @ Mar 3 2013, 10:43) *
На ведущей плате передатчик посылающие синхросигналы, на ведомой плате приемник. Или не?

не внимательно читали условие задачи sm.gif


--------------------
Go to the top of the page
 
+Quote Post
Iptash
сообщение Mar 3 2013, 18:07
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Ну вот же.
Цитата(AVR @ Mar 3 2013, 19:22) *
Задача:
Есть две ПЛИС. У каждой свой генератор. Частоты различаются. На несколько секунд их можно соединить кабелем, затем 5 минут работы автономно.
Необходимо сделать так, чтобы импульсы (пусть будет 1 КГц, не 100 Гц) в течение 5 минут на одной плате были как можно более синхронны к 1 КГц импульсам на второй плате.

Цель: необходимо замерять время хода звука с высокой точностью (есть датчики к ПЛИС с соответствующей аналоговой схемой), поэтому хотя бы 5 минут должно быть более менее стабильно.

Поэтому платы разнесенные на некоторое растояние. На этом растоянии измеряется скорость звука. Вообще может можно некую тактирующую частоту
передовать, а ведомый будет работать от этой частоты. Или не?

Хм. Опять непонятно наверное выразился.
Для точного измерения некой велечины между двумя разнесенными устройствами, необходимо чтобы их генераторы точно работали синхронно, поэтому нужно раз в 5мин. синхронизировать эти устройства между собой, иначе синхронизация уплывает. Вот я и предлагаю синхронизироваться удаленно с помощью передатчика
синхроимпульсов на ведущем устройстве и приемником на ведомом.
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 3 2013, 18:13
Сообщение #29


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Iptash @ Mar 3 2013, 22:07) *
Вот я и предлагаю синхронизироваться удаленно с помощью передатчика синхроимпульсов на ведущем устройстве и приемником на ведомом.

На каком принципе? Может оптическом? Потому что расстояние в течение 5 минут будет неизвестно.

Есть светодиод, он мигает синхроимпульсами, зная инерционность этого процесса - определяем точное время, так?

Устройства будут разъединены и находиться на произвольном расстоянии и произвольной ориентацией в пространстве.


--------------------
Go to the top of the page
 
+Quote Post
Iptash
сообщение Mar 3 2013, 18:46
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Цитата(AVR @ Mar 3 2013, 22:13) *
На каком принципе?

Радиоволны.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 09:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.0155 секунд с 7
ELECTRONIX ©2004-2016