>>Выбираете шаг перестройки. Это будет Fref. Рассчитываете R: R = Fosc / Fref.
К примеру у меня опорник ( Fosc) будет 10,240 МГц (как делают многие), шаг сетки (Fref) 5 кГц считаем
10240 / 5 = 2048 DEC -> 0x800 hex
R = 0x800
>>Находите коэф. деления N нужной вам частоты: N = Fvco / Fref.
Нужно получить частоту ГУНа (Fvco) 100 МГц 100000 / 5 = 20000 dec -> 0x4E20 hex
>>5 младших бит получившегося числа будет А. Следующие 13 будут B.
0x4E20 = 0b 0100 1110 001 0 0000
B A
A = 0 0000
B = 010 0111 0001 = 625 dec = 0x271
>>P = 2^5 = 32, те самые 5 бит A. Все число N = P * B + A
P = 32
N = 32 * 625 + 0 = 20000 dec = 0x4E20
С этим понятно , теперь идем к выводу информации в LMX2316/26
R = 0x800 его мы заносим в 14-BIT PROGRAMMABLE REFERENCE DIVIDER RATIO (R COUNTER)
Посылка первый 21 бит
биты 1 2 - контрольные биты = 0 , биты 1 2 3 4 5 6 7 8 9 10 11 12 13 14 = R COUNTER = в данном случае 0х800 ,
биты 15 16 17 18 должны быть 0 в нормальном режиме ,
бит 19 MSB не понятно 0 или 1 писать в него .
Затем посылка следующих 21 бит
биты 1 2 - контрольные биты = 0 , биты 1 2 3 4 5 = А и тоже = 0 , биты 6 7 8 9 10 11 12 13 14 15 16 17 18 = числу В = 0 0010 0111 0001 (добавляем 2 нуля в старшие разряды )
бит 19 MSB не понятно 0 или 1 писать в него .
В принципе вот такой расчет вывел из предложения выше , спасибо за подсказку , теперь надо проверить это на железе , и остается вопрос правильно ли все я понял и MSB не понятно 0 или 1 писать в него ? .
CODE
out_lmx:
mov r29, r19
rcall out_byte
mov r29, r20
rcall out_byte
mov r29, r21
rcall out_byte
nop
nop
nop
sbi PORTB,CE
sbi PORTB,CE
nop
nop
cbi PORTB,CE
cbi PORTB,CE
nop
nop
ret
out_byte:
ldi r28, 8
otb:
clc
rol r29
brcc dat_0
sbi PORTB,DAT
rjmp pulse
dat_0:
cbi PORTB,DAT
pulse:
nop
nop
sbi PORTB,CLOCK
nop
nop
cbi PORTB,CLOCK
nop
nop
dec r28
brne otb
ret
Вот так вот получилось в плане вывода .