Re: Need help understanding a line of code in ubitx_si5351.cpp (msxp2 = ...) #radiuno

Jerry Gaffke

When I wrote the si5351bx code I had the Bitx40 in mind, and was testing for a high side vfo of 19mhz.
As I recall, that code was accurate to within something a bit worse than 0.1hz for arbitrary frequencies at 19mhz.

On the uBitx, our VFO can be as high as 30+45 mhz. 
We lose accuracy as the frequency goes up, but the uBitx should still tune correctly to within 1 hz or so.
If accuracy is an issue, you probably want to put that 25mhz reference in an oven before worrying about the calculations.

Easy enough to set these calculations up on a full blown computer somewhere, do a comparison
between the fractional math of the si5351bx_setfreq() routine and something more straightforward
in double precision floating point.
As I recall, the si5351bx code held it's own, accuracy got a little bit better with floating point but not by much.
There's only so much precision the si5351 can give us with those 20 bit registers for b and c.
Another factor is phase noise, as we go up in frequency that becomes more of an issue.
I have no way to measure it, and no idea at what point it's a problem for the various transmission modes. 
There might be minor improvements to be had with regard to si5351 phase noise.  Going to an integer mode
pll msynth divide might help a little bit but I doubt it would be anything like a factor of two.  Some weird stuff
going on with SiLab's ClockBuilderPro, it doesn't seem to bother with integer mode but does an exhaustive
hunt for low b values in the (a+b/c) selection.  I assume that is done to minimize phase noise.

There's some loose talk here about extending the uBitx to 2m and beyond.
If that takes off we may want to consider a Raduino using the si5338.
Better phase noise figures, better precision, reduced crosstalk, can hit much higher frequencies.

If you want to go crazy, there's the si5340/si5341.  
Goes even higher in freq, lower in phase noise, has an spi bus option for much faster load times.
Primary downside is that it burns a watt or so of 1.8v.

Jerry, KE7ER

On Fri, May 25, 2018 at 10:23 am, David Feldman wrote:
(picking this up from a few weeks ago...)

One follow-up question regarding overflow avoidance method in the SI5351 divider calculation: What is the minimum frequency step size obtained with the ubitx si5351 driver (that is, can you tune a ubitx with 1 Hz steps, or more, or less granular?

Does the pre-shifting code in the driver impact frequency resolution (does it throw away some bits of the desired target frequencies?)


Join to automatically receive all group messages.