(fMCLK/2^28 ) × FREQREG.
fMCKL = частота референского тактового сигнала. 2^28=268'435'456.
Пример такой:
(26'843'545,6 Гц / 268435456) * 1000000 = 100'000 Гц
(26'843'545,6 Гц / 268435456) * 1000001 = 100'000,1 Гц
(26'843'545,6 Гц / 268435456) * 1000002 = 100'000,2 Гц
Значение регистра привел в десятичном формате.
Частота тактового генератора должна быть очень точной, иначе получится погрешность.
Правда, максимальная частота мастер-клока определена в 25 МГц, а нам требуется точно 26,8435456 МГц. Но если в 10 раз ее снизить, тогда точность будет в 10 раз выше.
Главное, если хочешь получить сетку частот с точными-точными-преточными значениями в 0,1 Гц и без каких-либо округлений, тогда придется соблюдать точную-преточную мастер-частоту
Для частоты мастер-клока
2,5 МГц коэффициент частоты
составит
(2500000 / 2^28 ) = 0,0093132
Чтобы получить частоту
1000 Гц на выходе, значение регистра составит
1000 / 0,0093132 = 107345 (в десятичном формате!) или
0х1A351.
Точное значение частоты на выходе =
1000,007614 Гц
Аналогично, чтобы получить частоту
1000,1 Гц, нужно
1000,1 / 0,0093132 = 107385 (в десятичном формате) или
0x1A379.
Точное значение частоты на выходе =
1000,1007468 Гц
Таким образом, для изменения частоты на
0,1 Гц нужно изменять значение регистра на 40 (в десятичном формате) или
0x28 в гексаформате.
Принцип понятен теперь??