si5351a #synth


Richard G4TGJ
 

I've started experimenting with the si5351a for my own projects. I have a few questions and observations for Hans, but I think they will be of interest to anyone else using the chip.

1. I discovered my chip's I2C address is 0x62 and not 0x60. I realised I have bought the SI5351A-B04486-GT instead of the vanilla SI5351A-B-GT. I chose this one as Farnell said it was the newer version and they have far more of this one in stock so I just assumed it was the latest version. Next time I will make sure I fully understand the manufacturer's part number. It's not a big deal as it is for my own project so I can use any I2C address I want. At power up it outputs 49.152MHz, 24MHz and 45.1584Mhz. I am curious as to what this device is for - it is very widely available.

2. Did you have the 27MHz crystals specially made? The only off-the-shelf crystals I can find that meet the spec are surface mount. This was almost as much fun to solder as the MSOP, especially since the Farnell datasheet has the crystal and ground pins swapped! It took me a while to work out why it wasn't oscillating.

3. In your notes you say that it is necessary to use an integer divider to get low jitter. According to AN619 you have to set the MSx_INT bit to put the multisynth into integer mode but that fractional mode is required if you want to specify a delay offset. Your example code sets this bit for integer mode but I have still managed to get quadrature output. Another data sheet error?

4. In the QCX the I2C SDA and SCL lines are connected directly between the si5351a and the ATMega even though they run at different voltages. Is this safe? The pull-up resistor is to 3V3 so I guess this means that the ATMega doesn't ever pull the line high, but just goes high-impedance. Presumably it wouldn't be safe to connect other devices to the bus in case they do actively pull the lines high. I am using two 2N7000 FETs as level shifters.

Thanks again Hans for all your projects. I have a 30m QCX which I have enjoyed using. Your personal website is also an inspiration.
--
73
Richard
G4TGJ


Shirley Dulcey KE1L
 

The I2C protocol uses open collector outputs. The ATMega328 does not
pull them up to any voltage; it only pulls them down to ground. The
high voltage is determined by the external pullup resistors, which in
this case is the supply voltage of the Si5351A. It's possible to use
the internal pullups in the 328 for I2C rather than external resistors
(though the external resistors are the recommended practice), but you
don't do that in an application where a voltage other than the supply
voltage of the 328 will be used on the I2C bus. So yes, quite safe.

No compliant I2C device will ever pull up its outputs. It is safe to
connect other devices to the bus so long as they all pull the I2C bus
up to the same voltage, which (as is the case with the ATMega328 on
the QCX) may not match the supply voltage of the device.

The only other catch is that if the voltage levels of the I2C bus is
too low, things running at a higher supply voltage might not recognize
the signals. Mixing 1.8V and 5V devices on an I2C bus would not work
because the 1.8V signals on the I2C bus would not be at a high enough
voltage to be recognized by 5V logic. (The required voltage is around
60% to 70% of Vdd on most CMOS devices.) However, some 1.8V devices
will tolerate higher voltages on some I/O pins, so it might be
possible to use one with the I2C bus pulled up to 3.3V or 5V.

On Tue, Dec 4, 2018 at 3:31 PM Richard G4TGJ <rpt@rpt.me.uk> wrote:

I've started experimenting with the si5351a for my own projects. I have a few questions and observations for Hans, but I think they will be of interest to anyone else using the chip.

1. I discovered my chip's I2C address is 0x62 and not 0x60. I realised I have bought the SI5351A-B04486-GT instead of the vanilla SI5351A-B-GT. I chose this one as Farnell said it was the newer version and they have far more of this one in stock so I just assumed it was the latest version. Next time I will make sure I fully understand the manufacturer's part number. It's not a big deal as it is for my own project so I can use any I2C address I want. At power up it outputs 49.152MHz, 24MHz and 45.1584Mhz. I am curious as to what this device is for - it is very widely available.

2. Did you have the 27MHz crystals specially made? The only off-the-shelf crystals I can find that meet the spec are surface mount. This was almost as much fun to solder as the MSOP, especially since the Farnell datasheet has the crystal and ground pins swapped! It took me a while to work out why it wasn't oscillating.

3. In your notes you say that it is necessary to use an integer divider to get low jitter. According to AN619 you have to set the MSx_INT bit to put the multisynth into integer mode but that fractional mode is required if you want to specify a delay offset. Your example code sets this bit for integer mode but I have still managed to get quadrature output. Another data sheet error?

4. In the QCX the I2C SDA and SCL lines are connected directly between the si5351a and the ATMega even though they run at different voltages. Is this safe? The pull-up resistor is to 3V3 so I guess this means that the ATMega doesn't ever pull the line high, but just goes high-impedance. Presumably it wouldn't be safe to connect other devices to the bus in case they do actively pull the lines high. I am using two 2N7000 FETs as level shifters.

Thanks again Hans for all your projects. I have a 30m QCX which I have enjoyed using. Your personal website is also an inspiration.
--
73
Richard
G4TGJ


Hans Summers
 

Hi Richard
 
1. I discovered my chip's I2C address is 0x62 and not 0x60. I realised I have bought the SI5351A-B04486-GT instead of the vanilla SI5351A-B-GT. I chose this one as Farnell said it was the newer version and they have far more of this one in stock so I just assumed it was the latest version. Next time I will make sure I fully understand the manufacturer's part number. It's not a big deal as it is for my own project so I can use any I2C address I want. At power up it outputs 49.152MHz, 24MHz and 45.1584Mhz. I am curious as to what this device is for - it is very widely available.

Yes well I think someone at Farnell was speaking through their posterior. Some sales types of people will say anything to sell you something. This version of the chip is NOT the standard version, which is Si5351A-B-GT (or equivalently on SMD reel, as I use for the PCB factory's machines, Si5351A-B-GTR). In the Si5351A documentation, in the datasheet "Ordering Information" section where the usual figure exists (Fig 22 on page 29) showing the explanation of the full part-numbers, it says:

"Factory pre-programmed Si5351 devices (e.g., with bootup frequencies) can be requested using the ClockBuilder web-based utility available at:  www.silabs.com/ClockBuilder.  A unique part number is assigned to each custom configuration as indicated in Figure 22. Blank, un-programmed Si5351 devices (with no boot-up frequency) do not contain a custom code"

and in Fig 2 itself:

"XXXXX  = Unique Custom Code . A five-character code will be assigned for each unique custom configuration"

This chip Si5351A-B-04486-GT is therefore a custom version that some customer once requested. I do not think it is the "newer version". Hi hi. Just some salesman or someone who didn't know what he was talking about. A couple of years ago there was an issue where one of the US distributors DigiKey or Mouser were accidentally selling this custom version and it caused problems of course, for people who got it. Due to the differing I2C address. Now Digikey currently still stock a small number of 04486 but at least it is properly identified as such. They also have a long list of other custom XXXXX types but with 4-week lead times. I suppose SiLabs gave them a list of whatever is available and it went into Digikey's database, probably all automated with no human oversight at the Digikey end. 

It's my SUSPICION only that SiLabs manufactured a significant quantity of the -04486 custom version, perhaps accidentally, then sold them to distributors, either accidentally or perhaps at a discount because they were a mistake. 

In my opinion Farnell are (probably inadvertently) mis-selling this part because they are not making it clear that it is a custom part. Also they link to the standard Si5351A-B datasheet. But there is a special datasheet addendum available for this custom variant, and they should also link to that addendum. Then it would be clear to any purchaser. 

 
2. Did you have the 27MHz crystals specially made? The only off-the-shelf crystals I can find that meet the spec are surface mount. This was almost as much fun to solder as the MSOP, especially since the Farnell datasheet has the crystal and ground pins swapped! It took me a while to work out why it wasn't oscillating.

The 27MHz crystals were not specially made. 27MHz and 25MHz crystals in HC49/4U size were both equally available. I chose the 27MHz purely because the iterative algorithm I wrote to optimize configuration parameters for WSPR to get extremely precise 1.46Hz tone separation, works better for 27MHz than 25MHz. "Better" only in the sense that with a 25MHz crystal the algorithm does not converge on any solution for 2m WSPR. All other bands it does. But given both 25 and 27MHz crystals were easily available and at the same price, it made sense to choose 27MHz. 

I note that every other Si5351A module maker uses 25MHz!  
 
3. In your notes you say that it is necessary to use an integer divider to get low jitter. According to AN619 you have to set the MSx_INT bit to put the multisynth into integer mode but that fractional mode is required if you want to specify a delay offset. Your example code sets this bit for integer mode but I have still managed to get quadrature output. Another data sheet error?
 
Probably another error in the SiLabs documentation. There are quite a list of errors and inconsistencies in AN619, and a longer list of things which are not well explained, phase offset being one of them! 

For the quadrature output case it is very easy to get exact 90-degree offset by setting the Phase Offset register equal to the MS Divider value (must be integer). It is described in considerable detail in my FDIM 2018 presentation conference proceedings article, you can download the PDF here http://www.qrp-labs.com/dayton2018.html

I can see that in a more general case where you wanted some arbitrary phase offset, not a nice 90-degree one, then it would be necessary to have fractional PLL feedback divider as well as fractional MS Divider. Maybe this is what AN619 is trying to talk about. 
 
4. In the QCX the I2C SDA and SCL lines are connected directly between the si5351a and the ATMega even though they run at different voltages. Is this safe? The pull-up resistor is to 3V3 so I guess this means that the ATMega doesn't ever pull the line high, but just goes high-impedance. Presumably it wouldn't be safe to connect other devices to the bus in case they do actively pull the lines high. I am using two 2N7000 FETs as level shifters.

What Shirley said in his post would normally be correct (I2C signals are not driven high, only be pulled-up by the 1K resistors). However Shirley misses one thing specific to the QCX design: in QCX there were not enough microcontroller I/O pins. So I had to come up with pin-sharing in certain cases. The SDA signal is one of these and is shared with the LCD RS pin. It IS driven high to 5V, the microcontroller DOES pull this line high briefly when talking to the LCD module. This is not within spec of the Si5351A. However, it does not appear to cause any damage to it. 6,155 QCX kit Si5351A chips are tolerating this abuse without complaint. But there is an entry on my ToDo list to change it, so that the microcontroller doesn't pull the level up to 5V when talking to the LCD. The LCD would be happy with the 1K pullup resistor to 3.3V (which is anyway more like 3.5V). 
 
Thanks again Hans for all your projects. I have a 30m QCX which I have enjoyed using. Your personal website is also an inspiration.

Thanks for the kind feedback Richard. For those reading this thread who are not aware of it, my personal website is http://hanssummers.com since 1999. But it has not been updated very often in the last few years due to too much time being drained by QRP Labs projects!

73 Hans G0UPL


Richard G4TGJ
 

Hi Hans
Thanks for your comprehensive reply. How do you find time - do you ever sleep?

1. I should have checked the precise part number. It's no big deal as it still works for me and is cheap. I need the SMD practice anyway.
2. What spec are the crystals you use? I looked at Farnell, RS, Rapid, Mouser and Digi-Key. Only Digi-Key have non-SMD in stock - all the others only have them with much higher load capacitance. Even the Digi-Key crystals are 12pF which require external caps with the si5351a.
3. I followed your notes and it does work as you say. I've seen a few quirky things happen when I switch between integer and fractional modes. I think the order in which you set certain registers or reset PLLs is important.
4. I now understand why level shifters are not needed - I will remove them from my project. The outputs are open-collector as it requires wired AND so, as long as the pull-ups are to the lower voltage, it is safe. The only consideration is if the lower logic levels are OK for the higher voltage device. I have a feeling there are a very large number of unnecessary I2C level shifters in the world. As long as I am in control of the hardware design I can guarantee there are no pull-ups to 5V.

--
73
Richard
G4TGJ


Hans Summers
 

Hi Richard

Thanks for your comprehensive reply. How do you find time - do you ever sleep?

A lot more than I used to, unfortunately... until I'm fully back to normal health levels I sleep all I can!

2. What spec are the crystals you use? I looked at Farnell, RS, Rapid, Mouser and Digi-Key. Only Digi-Key have non-SMD in stock - all the others only have them with much higher load capacitance.

No particular spec. Just generic 27MHz fundamental-mode crystals.

I stopped believing in adding capacitors to crystals a few years back. The Ultimate3S kit still has pads for the originally supplied 22pF capacitors but they are no longer supplied or recommended. It was found that sometimes the 20MHz crystal wouldn't oscillate with the capacitors in place. But it always oscillates without them. So on the principles of the guy who designed TVs in ye olde days and used to remove one component at a time until it stopped working... same theory, I stopped putting capacitors in the circuit.

The fact the 27MHz Si5351A crystal tends to oscillate around 27.004 and the 20MHz Atmel AVR crystal at around 20.006MHz... indicates ideally a bit of capacitance would be needed. But stray PCB capacitance etc is enough to make sure everything always works, and we don't need them to be precisely on frequency either. 

One way to have trimmed the reference oscillator would be a trimmer capacitor on one side of the crystal, commonly seen. But we just do it in software... as long as the software knows the oscillation frequency it just takes it into account when calculating Si5351A values and everything comes out on frequency. It saves physical parts (the trimmer capacitor) and it also means you can employ a GPS to let the software accurately measure the actual oscillation frequency itself. Just perfect all round.

So just buy any 27MHz crystal and proceed regardless. Do make sure it is a fundamental mode one though not 3rd harmonic type.

4. I now understand why level shifters are not needed - I will remove them from my project. The outputs are open-collector as it requires wired AND so, as long as the pull-ups are to the lower voltage, it is safe. The only consideration is if the lower logic levels are OK for the higher voltage device. I have a feeling there are a very large number of unnecessary I2C level shifters in the world. As long as I am in control of the hardware design I can guarantee there are no pull-ups to 5V.

Hahaha I like that thought, but the large number of unnecessary I2C level shifters in the world! I'd add, a lot of other logic level shifters also unnecessary. It's important not to design recklessly but it sometimes seems there's a tendency to be too conservative!

73 Hans G0UPL 


Dave New, N8SBE
 

Hans,

Had a crystal oscillator issue a few years ago that cause a lot of head scratching.  We had been producing said module for several years with no problems, when suddenly we had a rash of dead modules (no oscillation) after they had been outside overnight in desert air that veered toward freezing, but not below.

We found ultimately that the oscillator was failing to start under low temperature conditions, but our modules are meant to operate over -40C to 85C and had been tested to that repeatedly over the current production runs.

Long story short (too late), we found that the original design had been marginal, in that the recommendation of the microprocessor manufacturer didn't line up with the recommendations of the crystal supplier.  Production variation had exposed the margin, and thus, we started seeing failures at low temperature.  So, after a lot of back and forth, we lowered the value of the ballast resistor in the tank circuit to increase the feedback, and voila! all the issues went away.

Several more years (and a few million) modules later, we have never seen another oscillator failure in the field.

Lesson:  Every component has a data sheet, and often, they DON'T agree with those components' datasheets they need to interface to.  Sometimes it takes a whole engineering team (and their OEM customer breathing down their back) to bash heads (and those of the component suppliers) until an optimal solution is found.

73,

-- Dave, N8SBE

-------- Original Message --------
Subject: Re: [QRPLabs] si5351a #synth
From: "Hans Summers" <hans.summers@...>
Date: Wed, December 05, 2018 11:30 am
To: QRPLabs@groups.io

Hi Richard

Thanks for your comprehensive reply. How do you find time - do you ever sleep?

A lot more than I used to, unfortunately... until I'm fully back to normal health levels I sleep all I can!

2. What spec are the crystals you use? I looked at Farnell, RS, Rapid, Mouser and Digi-Key. Only Digi-Key have non-SMD in stock - all the others only have them with much higher load capacitance.

No particular spec. Just generic 27MHz fundamental-mode crystals.

I stopped believing in adding capacitors to crystals a few years back. The Ultimate3S kit still has pads for the originally supplied 22pF capacitors but they are no longer supplied or recommended. It was found that sometimes the 20MHz crystal wouldn't oscillate with the capacitors in place. But it always oscillates without them. So on the principles of the guy who designed TVs in ye olde days and used to remove one component at a time until it stopped working... same theory, I stopped putting capacitors in the circuit.

The fact the 27MHz Si5351A crystal tends to oscillate around 27.004 and the 20MHz Atmel AVR crystal at around 20.006MHz... indicates ideally a bit of capacitance would be needed. But stray PCB capacitance etc is enough to make sure everything always works, and we don't need them to be precisely on frequency either. 

One way to have trimmed the reference oscillator would be a trimmer capacitor on one side of the crystal, commonly seen. But we just do it in software... as long as the software knows the oscillation frequency it just takes it into account when calculating Si5351A values and everything comes out on frequency. It saves physical parts (the trimmer capacitor) and it also means you can employ a GPS to let the software accurately measure the actual oscillation frequency itself. Just perfect all round.

So just buy any 27MHz crystal and proceed regardless. Do make sure it is a fundamental mode one though not 3rd harmonic type.

4. I now understand why level shifters are not needed - I will remove them from my project. The outputs are open-collector as it requires wired AND so, as long as the pull-ups are to the lower voltage, it is safe. The only consideration is if the lower logic levels are OK for the higher voltage device. I have a feeling there are a very large number of unnecessary I2C level shifters in the world. As long as I am in control of the hardware design I can guarantee there are no pull-ups to 5V.

Hahaha I like that thought, but the large number of unnecessary I2C level shifters in the world! I'd add, a lot of other logic level shifters also unnecessary. It's important not to design recklessly but it sometimes seems there's a tendency to be too conservative!

73 Hans G0UPL