Jump to content

    

DP83640 синхронизация по фазе CLK_OUT

Начали работать с физикой DP83640, которая помимо встроенного механизма синхронизации часов согласно IEEE1588 PTP имеет возможность синтезировать частоту CLK_OUT. Помимо того, что CLK_OUT с помощью механизма rate adjustment следует частоте PTP ядра (счетчик, они же часы PTP Clock), заявлено, что CLK_OUT можно сфазировать относительно PTP часов.

С первого взгляда документация на этот чип богатая, но при полном прочтении возникает больше вопросов чем понимания. В частности пока не понятно как устроен механизм фазировки CLK_OUT относительно локальных часов. Может кто работал с этой физикой и реализовывал механизм подстройки CLK_OUT по фазе относительно PTP часов и подскажет, правильны ли следующие утверждения:

1) Прямого механизма двигать CLK_OUT по фазе нет, и единственная возможность приблизить фронт CLK_OUT к нужным значениям счетчика PTP Clock это "двигать" сам счетчик с использованием механизма step adjustment (сомнительный подход, но другого пока не видно)

2) Точность фазирования будет +-8ns так как счетчик работает на частоте 125 МГц, а step adjustment это просто увеличение/уменьшение значения счетчика на заданную величину

3) Механизм step adjustment не влияет на фазу CLK_OUT при любых значениях задаваемого шага

Share this post


Link to post
Share on other sites

C PTP на данной мсх не работал. Хотя очень активно ее используем в качестве ETh PHY.

Может фазировка идет по PPS?

Я 1588 собираюсь делать на АЛьтере. В еешней корке есть выход PPS и значение счетчика в ns.

Из счетчика делаешь нужную частоту. А фазу по PPS. Потом, при необходимости, можно пропустить еще через jitter cleaner.

Share this post


Link to post
Share on other sites

Дело в том, что готового формирователя PPS импульсов в DP83640 нет, есть более интересный механизм: триггеры, по которым относительно PTP Clock (счетчик) можно различные импульсы генерировать (в том числе и PPS) c дискретностью в 8ns. Как раз запасной вариант у меня частоту с триггера и выводить, а далее ее через ФАПЧ умножить и почистить. Пока хочется разобраться как разработчики данной мс смогли двигать фазу CLK_OUT относительно счетчика и добились результатов, приведенных на стр.8 в AN-1730 DP83640 Synchronous Ethernet Mode: Achieving Sub-Nanosecond Accuracy in PTP Applications, а также как на видео, начиная с 3:30: http://www.youtube.com/watch?v=6vyr7dFU_O4

Share this post


Link to post
Share on other sites

А ПЛИС у вас есть? Как крайний вариант в нее затащить CLK_OUT и PPS. И там уже сделать нужный клок с нужной фазой.

А это смотрели ? AN-1729 DP83640 IEEE 1588 PTP Synchronized ClockOutput

3.2 Phase Alignment

Aligning the phase of the clock output requires the following steps:

1. Ensure the clock output pin is enabled.

2. Prior to enabling the PTP synchronization protocol, enable the clock output and the PTP clock.

3. Enable an event monitor for a single event to catch the rising edge of the clock output pin.

4. Determine clock output offset from aligned expected time: clock output period – (event timestamp mod

clock output period).

5. Do a step adjustment to align the clock output.

6. During synchronization, all step adjustments should be in units of the clock output period.

Example: Phase alignment of a 10 MHz clock output:

Share this post


Link to post
Share on other sites

ПЛИС на плате нет. AN-1729 я смотрел, раздел про rate adjustment вопросов не вызывает: все согласно функционалу и регистрам, описанным в основном datasheet'е. А вот раздел про phase Alignment вызывает вопросы. Так например, описанный алгоритм если посмотреть внимательно двигает не фазу CLK_OUT а сам PTP Clock т.е. получается не CLK_OUT двигается к нужным значениям счетчика, а сам счетчик к CLK_OUT. Поэтому если на стороне мастера мы привяжем счетчик к источнику точного времени, то описанный алгоритм никоим образом сам CLK_OUT к нужным отсчетам (PPS например) источника точного времени не подвинет, более того, он еще и сами PTP часы сместит, что скажется на всех ведомых устройствах в сети.

Еще раз повторюсь: пока я вижу, что механизм step adjustment работает только со счетчиком (что самое интересное datasheet на DP83640 тоже только про этот функционал говорит). Я пробовал на плате делать step adjust на значения до 200нс - CLK_OUT при этом не сдвигался.

Share this post


Link to post
Share on other sites
Еще раз повторюсь: пока я вижу, что механизм step adjustment работает только со счетчиком (что самое интересное datasheet на DP83640 тоже только про этот функционал говорит). Я пробовал на плате делать step adjust на значения до 200нс - CLK_OUT при этом не сдвигался.

Удалось получить заявленные в AN-1963 характеристики по девиации для 20% загрузки свитчей?

 

добились результатов, приведенных на стр.8 в AN-1730

Отличный результат у них получился!

 

А куда заводите CLK_OUT?

Edited by LexaryStyle

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this