Maximum reliable clock frequency?
ags
Posts: 386
I've created designs exclusively with 5 MHz xtal (16xPLL==80 MHz clock). It works. Well.
I now have speed pressures that would be helped by a faster clock. I've read "the documentation" and it seems to indicate that a 128 MHz clock is within spec. From the Propeller Manual, on the CLK register:
I realize that challenges increase with higher clock frequency: power consumption, IR drop, noise, reliability. Is there a generally accepted maximum reliable clock frequency that has been proven reliable (within defined constraints - including specific circuit design parameters (decoupling capacitors, wire length, etc) over the years?
Summarizing: it seems from the "official" documentation that an 8 MHz xtal and 16xPLL configuration is "legal". The question is whether it can be used reliably, and if so, what if any accommodations must be made?
I now have speed pressures that would be helped by a faster clock. I've read "the documentation" and it seems to indicate that a 128 MHz clock is within spec. From the Propeller Manual, on the CLK register:
The Clock PLL's internal frequency must be kept within 64 MHz to 128 MHz this translates to an XIN frequency range of 4 MHz to 8 MHz.
I realize that challenges increase with higher clock frequency: power consumption, IR drop, noise, reliability. Is there a generally accepted maximum reliable clock frequency that has been proven reliable (within defined constraints - including specific circuit design parameters (decoupling capacitors, wire length, etc) over the years?
Summarizing: it seems from the "official" documentation that an 8 MHz xtal and 16xPLL configuration is "legal". The question is whether it can be used reliably, and if so, what if any accommodations must be made?
Comments
There isn't a magic Fmax wall at which chips stop working. The spec is the max at which everything is guaranteed to work. Once you step past that boundary you are stepping onto a frozen lake. Close to shore the ice is plenty thick and you can safely push the boundary. But the further you get out, the less certain anything is. If your failure mode is intermittent bit drop it could be maddening to sort out. How important is this speed, and what are you needing it for?
Why do it? It's not the only reason, but a big part is the result of having to spend two instructions per bit to read using SPI. Writing can be done with a counter in one instruction. Reading is more critical for me. I worked around this previously by using an 8-bit interface instead of SPI, but now I can't spare the 12 IOs total to support this design. I'm back to the crippled SPI read.
Edit: I just checked the datasheet (v1.3) - not the user manual. It clearly specifies 80 MHz as the maximum clock speed.
Really simple answer to this one, read the datasheet, it's 80MHz guaranteed reliable. Now, if you are not so worried about thin ice and you don't weigh too much then you can go to 96Mhz, that is your operating conditions and voltage etc are not extreme.Trouble is unless it's a device that we know for absolute certainly would be operated in a certain environment etc then there is no way to use the word "reliable".
Years ago there was a small OLED screen which used a Propeller as the driver. The manufacture used an 8MHz crystal and ran it at 16xPLL. Surprisingly it kind of worked. It would crash with very little provocation. It couldn't run FDS and a bunch of other objects. I've tried to repress these memories. I was new to the Prop and this was one of my first Propeller projects. I couldn't understand why my programs would sometimes work and other times wouldn't.
There was a representative from the company who make this devices who continually blamed others for any problems and insisted that all the devices they sold would work at this extreme frequency. (Did I mention I have bad memories about this situation?)
Anyway, if the soon to be overclocked Propellers are to be sold to others, I hope they are thoroughly tested before hand.
The Parallax Range Finder uses an overclocked Propeller and works very well.
Edit: Rayman has some information about the (infamous) Prop96 OLED on his website.
From an old post on what's likely to fail:
It sounds like 96 or 100 MHz is reasonable, at or below 50C and 3.3v or slightly higher, particularly not using any video generators. But no guarantees of course.
I could avoid all of this if I could figure out a way to have a single instruction pin sample-and-store. If I could make the counter "trick" explored by lonesock for the fsrw object reliable that would be enough. The challenge there seems to be configuring a counter to sample just once per instruction.
It doesn't mean all future chips will run that fast though.
That would be nice if one existed.
Ray (Cluso99) may have written a test program. He consistently runs his props at 104 Mhz.
http://forums.parallax.com/showthread.php/116893-RamBlade-Prop-SRAM-microSD-addon-to-run-ZiCog-CPM-PropDos-Catalina-etc
Parallax sells a 6.25 Mhz xtal, (thanks to Bill Henning), to allow the Prop to run at 100 Mhz.
http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/Crystal/List/0/SortField/4/ProductID/570/Default.aspx
Quote from the Parallax site:
That would mean proper bypass capacitors and layout of the PC board, (ALL VCC and VSS connected)
I think one does:
I wonder if that is done at the Fab facility or Parallax?
Be nice to know.
I've used that crystal in my own and EFX-TEK projects and never had a lick of trouble, despite the often less-than-idea conditions the projects are subjected to.
The-6.250MHz-crystals-are-in!-Run-your-Propeller-at-100MHz...
I run my props at 104MHz (6.5MHz PLL16) without problems. I have also tested them at 108MHz (13MHz PLL8). I have extended proper decoupling and pcb layout to help achieve this. 14.31818MHz PLL8 is the absolute max I have achieved but this has not been thoroughly tested. Sapieha ran my TriBlade pcb successfully for many months at 120MHz (15MHz PLL8).
These results were interesting because the TriBlade uses the DIP40 Prop and my testing has been using the QFP44 package where I can only achieve a little less.
Now, having said all of this, there is no guarantee that running the prop even at my 104MHz will never fail. I would not want, nor guarantee, it to work in any life or other critical use device.
So, for any hobbyist application, I go for 104MHz.
Correct, but that is for :
Vdd : Supply Voltage 2.7~3.6 Operating temperature range: -55°C < Ta < +125°C
So if you can avoid 125°C & 2.7V, you can buy some margin.
If you wanted to push clocks, buy a higher precision regulator, and target sightly above 3.3v, and avoid temperature rises as much as possible, and err on the paranoid side of supply decoupling.
Interesting - decoupling should be better in QFP44, but the thermal mass & Area is more in DIP40, so maybe the cooler-die wins ?
Were your test figures similar to the data sheet's :
9.2. Fastest Operating Frequency as a Function of Temperature
I am at a loss to say why the difference between DIP and QFP. I use the normal 3V3. If anything, the groundplane and decoupling should have been better on the QFP.
Aren't there slight variations between each batch of chips produced. I read a post from someone in Parallax stating the first batch of Propellers had some properties which caused it to test better than other batches. Parallax had some customers state they weren't getting the same results in some tests as the results Parallax had published. Upon retesting, Parallax found the test data from the first batch didn't match results on tests preformed on subsequent batches of the Propeller.
Could the difference seen between the DIP and QFP packages be the result of variations between batches of the die?
Another theory I've entertained about this difference between the package types is perhaps the DIP package has some additional internal capacitance on the power lines which helps it remain stable at higher clock speeds.
-What works:
14 MHz x 8 = 112 MHz
7.3728 MHz x16 = 117_964_800 Hz - max achieved stable speed.
This doesn't work:
15 MHz x 8
16 MHz x 8
- the Propeller can't boot.
Cog's PLLs work up to ~230 MHz
Note again, only a very simple spin program flashing leds.