Date
1 - 5 of 5
Raduino mod to use the SI5351C
Rafael Diniz
Hi all,
Have anyone adapted the raduino board layout and arduino firmware for a SI5351C instead of the SI5351A (just set CLKIN to 10Mhz for my GPSDO and set the freq ref of the pins to the ubitx to use the CLKIN, and may be change any constants to cope with 10MHz base clock)? Concerning the ubitx v6 board, I don't think any modification is needed, as the SI5351C has the same output levels available in the SI5351A, as far as I could read the data-sheet, right? Thanks, Rafael
|
|
Jerry Gaffke
It's been several years since I've had my head in that si5351bx code,
toggle quoted messageShow quoted text
but I believe the code will correctly index the additional registers for up to 6 outputs. The only change required is this: < uint8_t si5351bx_drive[3] = {1, 1, 1}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2 > uint8_t si5351bx_drive[6] = {1, 1, 1, 1, 1, 1}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2 Outputs at clknum=6,7 need special code, as they support only integer output divides, not fractional output divides. It should be trivial to support those final two outputs by adding a couple more entries to si5351bx_drive[] and treating them as a special case to load registers MS6_P1 and MS7_P1 appropriately as described in AN619. However, note that you only get even integer divides from 6 to 254 of your VCO frequency. The etherkit si5351 library has been tested on all 8 outputs of the larger parts such as the Si5351C, but is quite large and takes up most of the flash on the Nano. The si5351bx routines were written specifically to allow si5351 code to fit in the Nano's flash along with all the other firmware required for a Bitx40 or uBitx. If you have a 10mhz reference instead of a 25mhz reference, then I suggest changing the following lines: < // If using 27mhz crystal, set XTAL=27000000, MSA=33. Then vco=891mhz
< #define SI5351BX_XTAL 25000000 // Crystal freq in Hz
< #define SI5351BX_MSA 35 // VCOA is at 25mhz*35 = 875mhz
> // If using 27mhz crystal, set XTAL=27000000, MSA=33. Then vco=891mhz
> #define SI5351BX_XTAL 10000000 // Crystal freq in Hz
> #define SI5351BX_MSA 88 // VCOA is at 10mhz*88 = 880mhz
Note that this does not work so well on the crystal input pins such as found on the Si5351A, only the CLKIN pin of the Si5351C. Attempting to drive an Si5351A crystal pin at 10mhz sort of works, but results in significant VCO jitter. Jerry, KE7ER
On Thu, Jan 21, 2021 at 05:12 AM, Rafael Diniz wrote:
Hi all,
|
|
Rafael Diniz
Thanks a lot Jerry! The I saw the etherkit si5351 library, it seems it
toggle quoted messageShow quoted text
is all there! I don't really get the integer dividers limitation - It is just a matter of avoiding the use of the SI5351C pins with this integer-only divider limitation, right? What exactly means this SI5351BX_MSA multiplier and the resultant SI5351BX_XTAL*SI5351BX_MSA frequency? It should be always around 800 something MHz, right? Rafael
On 1/21/21 2:01 PM, Jerry Gaffke via groups.io wrote:
It's been several years since I've had my head in that si5351bx code,
|
|
Jerry Gaffke
Rafael,
toggle quoted messageShow quoted text
Yes, avoiding outputs 6 and 7 allows you to use the si5351bx code, no change except as noted in my previous post. The si5351 is a two stage device. SiLabs specs the two VCO's as having a range of 600 to 900 mhz, though G0UPL has found that the Si5351 still seems to work when programmed between roughly 1200mhz and 300mhz. The uBitx VCO frequency (875mhz) is determined by the reference frequency (25mhz) and the MSA divider value (35). The VCO frequency is divided by MSA, the result is compared with the reference frequency: 875mhz/35 == 25mhz A minor change to load up registers MS6_P1 and MS7_P1 would allow you to emit frequencies that are an even integer divide of the VCO. The Si5351 has two VCO's, the second VCO is left unused. You could use the first VCO as the source for output 6, the second VCO for output 7, and if you use fractional dividers on the PLL's (the PLL currently uses an integer divide of 35), then outputs 6 and 7 can be any frequency you want. And outputs 0 through 5 can do fractional divides of either one of those VCO's, so they can be arbitrary too. But doing all of that will take a thorough understanding of AN619. The etherkit library tries to do pretty much everything. For that reason, you may find it harder to use than the si5351bx routines. But not quite as hard as figuring out AN619. Jerry, KE7ER
On Thu, Jan 21, 2021 at 10:15 AM, Rafael Diniz wrote:
Thanks a lot Jerry! The I saw the etherkit si5351 library, it seems it
|
|
Rafael Diniz
Thanks Jerry. I think I start to understand its working. I'm taking a
toggle quoted messageShow quoted text
look in the AN619. Any recommended package type for the Si5351C? Rafael
On 1/21/21 3:58 PM, Jerry Gaffke via groups.io wrote:
Rafael,
|
|