0

Si5351a CircuitPython - Limited Divider N Support?
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Si5351a CircuitPython - Limited Divider N Support?

by stoltzmr74 on Sun Mar 28, 2021 8:00 am

Hi There, need your advice please.

I am trying to generate a 3Khz clock on Si5351a interfaced to Raspberry Pi 3+ running Circuitpython and Blinka libraries. According to the ClockBuilder frequency plan, I should program the PPL as follows, but it does not seem to be supported in such configuration by the Circuitpython/Blinka libraries. I have contacted ClockBuilder support and they say this output plan seems valid but the libraries seem to be the limitation...?
Target frequency is 3Khz. To get there:
(i) I can successfully set PLL Fvco to 786Mhz using M = 31.45728.
(ii) I can also set final divider R as 128, however
(iii) in the Circuitpython libraries I am using, I get an error because the divider of N can be a maximum of 900, and hence the frequency plan suggesting 2048 is not supported?

This should be the result: 25Mhz clock * M(31.45728) = 786.432 MHz / N(2048) = 0.384 Mhz / R(128) = 3kHz.

Python code for these steps are:
si5351.pll_b.configure_fractional(31, 289, 632) # M 31.45728 x 25 Mhz this yields 786.432 Mhz
si5351.clock_2.configure_integer(si5351.pll_b, 900) #N div by 2048. But 900 is the maximum. According to ClockBuilder this should be 2048
si5351.clock_2.r_divider = adafruit_si5351.R_DIV_128 #R div by 128

Any advice would be appreciated.....am I missing something? See output plan from ClockBuilder Pro:

Frequency Plan
==============
PLL_A:
Enabled Features = None
Fvco = 786.432 MHz
M = 31.45728
Input0:
Source = Crystal
Source Frequency = 25 MHz
Fpfd = 25 MHz
Load Capacitance = Load_08pF
Output0:
Features = None
Disabled State = StopLow
R = 128 (2^7)
Fout = 3 kHz
N = 2048

stoltzmr74
 
Posts: 4
Joined: Sun Jan 20, 2019 10:26 am

Re: Si5351a CircuitPython - Limited Divider N Support?

by adafruit_support_carter on Tue Mar 30, 2021 11:01 am

Sounds like same issue as opened here?
https://github.com/adafruit/Adafruit_Ci ... /issues/18

adafruit_support_carter
 
Posts: 20281
Joined: Tue Nov 29, 2016 2:45 pm

Re: Si5351a CircuitPython - Limited Divider N Support?

by stoltzmr74 on Tue Mar 30, 2021 12:18 pm

..indeed it looks like the same issue. Any advice?

stoltzmr74
 
Posts: 4
Joined: Sun Jan 20, 2019 10:26 am

Re: Si5351a CircuitPython - Limited Divider N Support?

by adafruit_support_carter on Tue Mar 30, 2021 12:29 pm

Keep an eye on that issue thread. Looks like it was just opened about a month ago.

adafruit_support_carter
 
Posts: 20281
Joined: Tue Nov 29, 2016 2:45 pm

Re: Si5351a CircuitPython - Limited Divider N Support?

by stoltzmr74 on Sat Apr 10, 2021 6:14 am

Hi There, I am happy to report that this library has been updated and published as version 1.2.7. I tested this on Raspberry Pi and I am now able to divide by N = 2048.

However this has not been corrected in the Arduino libraries - where/how do I report this for them to be updated?

See here as reference: https://github.com/adafruit/Adafruit_CircuitPython_SI5351/issues/18

Thanks!

stoltzmr74
 
Posts: 4
Joined: Sun Jan 20, 2019 10:26 am

Re: Si5351a CircuitPython - Limited Divider N Support?

by adafruit_support_carter on Mon Apr 12, 2021 10:59 am

Looks like it has already been reported:
https://github.com/adafruit/Adafruit_Si ... y/issues/8

adafruit_support_carter
 
Posts: 20281
Joined: Tue Nov 29, 2016 2:45 pm

Please be positive and constructive with your questions and comments.