JakeTri -- I would like to thank you for your work, I know the request wasn't mine, but I was wondering about this the same as la7eralus. I'm interested in how you calculated those Reg. values. I would like to break this down one more level and be able to find the nitch between 250 and 243.75. I looked at the Reg. values and attempted to convert from HEX...but that didn't look even close to right. So...i'm interested in how you calculated them. If you could explain, or point me to some documentation that explains it...i would be grateful. I have done a few Google searches...but found zip. Any direction you could give would be appreciated.
I started with the bit layout for freq_value and from there you can calculate the chip_freq.
Bit layout for the freq_value is as follow:

OD can have values between 0 and 3
R can have values between 0 and 31
F can have values between 0 and 127
BS can have only 0 or 1
From page 6 of BM1382 spec (
https://www.bitmaintech.com/files/download/BM1382_Datasheet_v3.0.pdf) you get:
NR = R + 1
NF = 2 * (F + 1)
NO value from OD value (see Table 4 from same spec page)
Fref = Fin / NR
Fvco = Fout * NO
Fout = Fin * NF / (NR*NO)
So Fout is "chip_freq" and can be calculated based on valued from above ("OD", "R" and "F"). BS select "high-band" or "low-band" (see page 7 from BM1382 spec for valid freq values for each band).
chip_freq = 50 * ( F + 1 ) / ( ( R + 1 ) * POWER( 2 , OD ) )
For timeout I used following formula:
timeout = 4000 / chip_freq
I suggest to calculate all 3 Fref, Fvco and Fout and make sure all 3 value are in range described on page 7 for the band specified by "BS" value.
EDIT: Here is an example:
freq_value =
1306OD = 2
R = 1
F = 38
You can compute the rest as following:
NR = 2
NF = 78
NO = 4
Fref = 12.5
Fvco = 975
Fout =
243.75BS = 0 and all 3 values for Fref, Fvco and Fout are in range for Low-Band.