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 |
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 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.
--
Hello Eldon,
ReplyDeletehave 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
Christoph,
ReplyDeleteThanks 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