Sunday, March 4, 2012

A New Master Clock

One aspect of using the Propeller for a WSPR, QRSS, or OPERA Beacon (see previous posts) is that while transmitting, the Frequency drifts (a little), maybe as much as 10Hz. The drift is believed to be due to the rise in temperature within the processor itself. The processor clock/oscillator is within the processor and core activity warms the oscillator and the Frequency drifts low. During the non-transmit period of the Beacon schedule the drift recovers. With normal Amateur Radio use, a 10Hz drift is almost undetectable, but with a Beacon it is NOT acceptable as the band width of most signals is less than 6Hz.

With only limited success, I have attempted to isolate and insulate the Propeller Board to alleviate the problem.

My latest attempt to solve the drift problem is to source the master clock from an external device, which hopefully will not be affected by Propeller Processor temperature change. I purchased a 100MHz Master Oscillator Chip.
Clock Chip

After ordering the Clock Chip I noticed that I ordered "the small one". The original intention was to order a chip about 5x3.5mm which is small, but I felt I could mount it on to the Propeller USB Protoboard without a problem.


WRONG, what I actually ordered was a very small SiT8103 Master Clock Chip, which is 2x2.5mm in size, or a 2025 SMT size part.

The Clock Chip with Wires Attached
For my use, three wire had to be soldered to the four terminals, the wires would then be soldered to the Prop protoboard. Soldering three wires onto this chip was like trying to glue baseball bats to a domino.

The wire attachment task took about an hour to complete.

After wires were attached and it was setting on top up the Propeller Protoboard, I decided to clean some old rosin from the intended attachment area of the board. I normally wash/desolve rosin with spray cleaner into the trash can. Just as I sprayed the cleaner, I saw my newly created part; jump off of the board and disappear into a jumble of trash in the can. It was lost! :-(

It is a good thing I purchased several chips. The wiring of the second chip only took about 30 minutes ( I am getting better at this :-)

The Clock Chip Installed on the Propeller
The Master Clock Chip installation replaces the vendor supplied crystal, and will "hover" slightly above the board on wire legs to the left of the processor.

The vacated crystal socket can be seen, the new Master Clock Chip can be seen center.

The original 5MHz crystal (when internally multiplied by 16), ran the Propeller at 80MHz. The new Master Clock Chip will over-clock the processor by 25%, that is, it will run at 100MHz.

Note: the crystal and the new Clock Chip are both rated about the same stability; that is +/-50ppm. The only real goal with this modification is to; avoid the heating effect of the processor. It is interesting, that the Real Time Clock peripheral that I installed on the Propeller has much better stability spec, at only +/-5ppm. But, there is no way to take advantage of it for a processor master clock.

Currently the new 100MHz Master Clock and Propeller are running my previous applications, just fine. Hopefully the only result will be the Propeller Frequency will NOT drift as before. Only additional tests will tell.

My Propeller Programs needed to be modified a bit to use the new Master Clock, but it is an easy configuration modification.

Old 5MHz Crystal Spin Config:

CON
  _CLKMODE = XTAL1 + PLL16X
  _XINFREQ = 5_000_000


New External 100MHz Master Clock Spin Config (Corrected as per feedback in comments):

CON
  _CLKMODE = XINPUT
  _XINFREQ = 100_000_000



UPDATE
This was a good attempt, but it produced too much Hash on the RF Frequency, see follow-on posts of our attempts to solve the Oscillator's Thermal Stability problem.

--

2 comments:

  1. Hello Eldon,
    have you thought about using a TCXO as your master clock?

    They are available in SMD package sizes similar to the chip you selected and you would have about the same or better absolute frequency accuracy as your RTC.
    The downside is that I haven't seen one with a frequency above 52MHz or below 8MHz.

    If you're interested, take a look at http://forums.parallax.com/showthread.php?137941

    Also, I think that for your current configuration you should probably have
    _CLKMODE = XINPUT
    instead of
    _CLKMODE = XINPUT + PLL1X


    Christoph

    ReplyDelete
  2. Christoph,

    Thanks for the ideas and pointers, I now have several TCXO's on order. One at 40MHz and another at 52MHz each with a stability spec of +/-0.5ppm.

    See: http://goo.gl/8f4Mv

    I think each will work with a configuration of:

    _CLKMODE = XTAL3 + PLL2X

    I like to stay with the standard 80MHz clock speed, but it is fun to Over-clock as well.

    Eldon - WA0UWH

    ReplyDelete