Добры день
Если ошибся веткой - простите и подскажите куда правильнее закинуть такой вопрос.
Столкнулся проблемой синхронизации часов между 2-я разными устройствами.
Для этого есть источник синхронизации master , который посылает пакет с текущим временем. Считаем его эталоном. Мастер выдает значение времени с точностью до 1 нс.
Устройство на ФПГА , которое принимает пакет синхронизации - slave, в соответствии с содержимым пакета устанавливает локальное значение времени и продолжает тикать.
Задающий генератор 4 ppm 20 мгц из него я делаю 100 мгц с помощью пллки.
В качестве часов выступает счетчик , к которому прибавляется значение 10 на каждом такте в 100 мгц. И при приеме пакета загружается эталонное значение.
Проблема в том что при приеме каждого нового эталонного пакета отклонение локального времени от эталона все время разное.
Когда задумывали систему думали, что к примеру если +-50 PPM то частота может быть соответствующих пределах т.е чуть чуть больше 100 или чуть чуть меньше 100 и при этом значение будет постоянным. Далее это отклонение можно было бы компенсировать (увеличивать или уменьшать значение на 1 нс через N тактов в счетчике).
Но по данным которые сейчас читаются выходит что частота на каждом отдельном периоде в 30 сек разная бывает что количество тиков чуть больше чем эталон а бывает чуть меньше.
Из этого выходит что PPM определяет не предел отклонения частоты , а гуляние частоты в определенных границах.
Но на сколько это соответствует действительности ?