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.
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
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.