Oscillator
Title:Oscillator
Author:86.17.144.58
Published:Thu, 14 Aug 2008 22:40:47 GMT

Important Note


When comparing the information here with that in the Propeller Chip Manual and Datasheet you will notice discrepancies. For example, this page states the PLL output is rated at 64MHz to 160MHz while the Manual states it is rated at 64MHz to only 128MHz, this page says an external crystal with PLL enabled can have a frequency of between 4MHz and 10MHz, the Manual states 4MHz and 8MHz.

The reason is that Parallax have conservatively rated the Propeller Chip to specify the circumstances in which it is, for want of a better phrase, "guaranteed to work". The reality is that Parallax themselves produce product which requires operation outside the conservative ratings given; the SpinStamp uses a 10MHz crystal with the PLL output running at 160MHz. By all accounts this has never proven to problematic.

In consequence, this page has been written with respect to "best known reality" rather than simply reiterating the specified ratings given in the Propeller Chip Manual or datasheet.

System Clock Speed


The internal operation of the Propeller Chip is controlled by a system clock which determines how quickly the Propeller runs and how fast the execution of programs are.

There are four sources from which a system clock can be derived -


Additionally, when using a crystal, resonator or oscillator module a PLL may be enabled to increase the system clock speed by up to a factor of 16.

The system clock speed is rated at up to 80MHz and operation at up to 100MHz can usually be achieved under normal circumstances. As the clock speed increases above 100MHz the internal circuitry of the Propeller Chip will start to become unstable and correct operation is not guaranteed.

There is no definitive statement possible as to what the absolute maximum system clock speed is because that depends upon what methods are used to attain a particular system clock speed. A super-cooled Propeller Chip will likely be able to operate at much higher clock speed than one which is simply placed upon a PCB with no special considerations taken.
This also depends on the supply voltage. According to experiences 100MHz systems run quite reliable @ 3.6V but not well @ 3V.

RCSLOW


While notionally running at 20kHz, the manufacturing tolerances of the the RCSLOW oscillator means that, for any particular Propeller Chip, the oscillator may run at anywhere between 13kHz and 33kHz.

The oscillator should remain fairly stable over short periods of time but it may drift over longer periods and the actual oscillator frequency will depend on operating temperature and supply voltage.

While allowing operation with no additional, external components the RCSLOW oscillator will unlikely be usable in applications which require accurate timing without calibration and may require re-calibration during application execution. For accurate timing it is recommended to use an external crystal, resonator or oscillator module.

RCFAST


While notionally running at 12MHz, the manufacturing tolerances of the the RCFAST oscillator means that, for any particular Propeller Chip, the oscillator may run at anywhere between 8MHz and 20MHz.

The oscillator should remain fairly stable over short periods of time but it may drift over longer periods and the actual oscillator frequency will depend on operating temperature and supply voltage.

While allowing reasonable fast operation with no additional, external components the RCFAST oscillator will unlikely be usable in applications which require accurate timing without calibration and may require re-calibration during application execution. For accurate timing it is recommended to use an external crystal, resonator or oscillator module.

The Propeller Chip uses the RCFAST oscillator while it is booting and downloading programs from a PC. To cater for the variations between Propeller Chips the download protocol uses a mechanism which does not require absolute timing and is suitable for all Propeller Chips regardless of the operating frequency of the RCFAST oscillator.

Crystal or Resonator


The Propeller Chip supports the direct connection of a crystal or resonator with frequencies between DC and 80MHz.

When the PLL is enabled the crystal or resonator frequency must be between 4MHz and 10MHz.

Note that no capacitors are needed in the oscillator circuit and the oscillator can simply be connected to the appropriate Propeller Chip pins.

Oscillator Module


The propeller Chip supports the direct connection of an oscillator module with an operating frequency of between DC and 128MHz.

When the PLL is enabled the oscillator module operating frequency must be between 4MHz and 10MHz.

PLL


An internal PLL can be enabled when using a Crystal controlled oscillator or an oscillator module. When enabled it can boost the internal system clock speed by a factor of up to 16.

The PLL is a fixed "times 16" multiplier which is followed by a divider which can reduce the PLL output to create the system clock. The PLL output is rated from 64MHz up to 160MHz which requires that the crystal or oscillator module it is driven from is not below 4MHz and does not exceed 10MHz. The system clock is rated at up to 80MHz which requires that the PLL output is divided down to a value no greater than 80MHz.

Taking both these factors into account means that only certain crystal and oscillator module frequencies are allowed when the PLL is enabled. As already stated, the crystal or oscillator module frequency must not exceed 10MHz to keep the PLL output within rated specification. To run with a system clock speed of 80MHz, a 5MHz oscillator source, multiplied by 16 by the PLL and divided by one would be acceptable as would a 10MHz crystal, multiplied by 16 by the PLL and divided by two.

In practice the system clock speed is usually capable of reaching 96MHz under normal circumstances allowing a 6MHz oscillator source to be used with the PLL and a post-PLL division of one. Under most normal circumstances a system clock speed of 100MHz is attainable allowing the oscillator source to be 6.25MHz while still retaining a post-PLL division of one.

Parallax report that all Propeller Chips must pass soak testing at 104MHz system clock speed before being allowed out the factory door.

Some success has been reported using 7.3728MHz crystals on an otherwise unmodified ProtoBoard. Other reports are that there can be problems at this frequency when the Propeller is being worked hard.

Similar success has been reported using 14.31818MHz crystals with a PLL8x setting.

Using 15MHz is reported to present difficulties which would fit with hitting the 120MHz system clock speed limit where Parallax report break down in reliable Cog operation. The hard limit will almost certainly be affected by temperature, voltage and particular chip.

While it may be possible to achieve even higher system clock speeds under the right conditions ( running above normal operating voltage, forced cooling or even freezing ), operation under normal circumstances is not guaranteed above 80MHz.
Crystal Frequency
PLL divided by 2
PLL divided by 1
4MHz
32MHz
64MHz
5MHz
40MHz
80MHz
6MHz
48MHz
96MHz
6.25MHz
50MHz
100MHz
6.5MHz
52MHz
104MHz
7.3728MHz
59MHz
118MHz
8MHz
64MHz
Not allowed
10MHz
80MHz
Not allowed
14.31818MHz
114.5MHz
Not allowed

uOLED-96-PROP


There has been some debate and confusion over the capabilities of the uOLED-96-PROP manufactured by 4D Systems, a small graphics display module which includes an embedded Propeller Chip as its controller.

uOLED-96-PROP Mk 2 - 10MHz Crystal

The uOLED-96-PROP Mk 2 uses an 10MHz and has no reported issues. This can operate with up to PLL8x giving a maximum system clock of 80MHz.

uOLED-96-PROP Mk 1 - 8MHz Crystal

The uOLED-96-PROP Mk 1 uses an 8MHz crystal and manufacturer provided example code shows configuration using PLL with no post-PLL division; this results in a 128MHz system clock, well above what is "normally allowed".

The reasoning as to why this works is that the choice of Propeller Chip Packaging and board design mitigates the potential problems of high system clock speed.

In practice it has been demonstrated that some code appears to execute as expected at 128MHz but it has also been shown that some code will not and will fail in a manner as predicted by Parallax at such high system clock speeds. There is no clear-cut, "it does" or "does not" work at 128MHz, answer. It is a case of "Your mileage may vary" (YMMV) and will depend very much on what the actual code is.

For those who have a uOLED-96-PROP Mk 1 and are concerned with using a 128MHz system clock or are having problems when trying to use that, the simple solution is to configure the application code to use a PLL8x setting rather than the PLL16x setting. This will reduce the system clock speed to 64MHz but should be satisfactory for many application programs.

For those who wish to use the uOLED-96-PROP Mk 1 with a system clock speed above 64MHz, one option would be to replace the 8MHz crystal with another. This must be done with due care and will likely void any manufacturers warranty. It is not recommended that the crystal be changed unless you know what you are doing and fully understand the potential consequences; you are entirely responsible for any adverse effects or damage which may occur during such a process.

DLP-PROP


The DLP-PROP is an Propeller-based board manufactured by DLP Design which is provided as a DIP-style plug-in module, complete with USB programming interface which also provides power and acts as an oscillator module for the Propeller Chip.

There are two issues with this configuration which DLP-PROP users should be aware of -


The consequences are that the Propeller Chip will not function when not connected to a USB host system and accurate timing may not be possible.

Standard Configurations


The following table shows the crystals fitted and maximum system clock speeds attainable for a variety of commercial and third-party Propeller Chip boards ...
Board
Crystal
Max PLL
Max System Clock
Notes
Parallax DemoBoard
5MHz
PLL16x
80MHz

Parallax PDB
5MHz
PLL16x
80MHz
1
Parallax ProtoBoard
5MHz
PLL16x
80MHz

Parallax SpinStamp
10MHz
PLL8x
80MHz

DLP-PROP
6MHz
PLL16x
96MHz

Hydra Games System
10MHz
PLL8x
80MHz

PropRPM
5MHz
PLL16x
80MHz

PropSTICK
5MHz
PLL16x
80MHz

uOLED-96-PROP Mk 1
8MHz
PLL8x
64MHz
2
uOLED-96-PROP Mk 2
10MHz
PLL8x
80MHz

(1) Parallax Professional Development Board ( PPDB )
(2) May be usable to 128MHz under some circumstances ( see earlier notes ).

The majority of boards use an 80MHz system clock speed ( 5MHz with PLL16x or 10MHz with PLL8x ) and software examples are usually configured for 80MHz operation. It is often necessary to adjust the configuration settings for use with other boards.

Over-Clocking


The following tables show the performance gains which can be achieved by replacing a fitted crystal with another to increase the execution speed of the Propeller Chip ...

To 80MHz
To 96MHz
To 100MHz
To 104MHz
To 118MHz
From 80MHz

+20%
+25%
+30%
+48%
From 96MHz
-16%

+4%
+8%
+23%
From 100MHz
-20%
-4%

+4%
+18%
From 104MHz
-23%
-8%
-4%

+14%