Disconnecting XTAL with digital switch
groggory
Posts: 205
I am working on low power, portable design based around a propeller.
One power saving avenue I'm exploring is using the propeller's built in resonator @ 22kHz and a single cog to run in a power saving mode and monitoring a few outside parameters.
When I need better timing for high speed serial or other situations I would use a 5MHz crystal (or maybe 80 MHz crystal and no PLL ...or similar).
The problem arises around the fact that even if you don't use the external crystal it still takes power to keep it oscillating. As such, I would like to remove it from the circuit when I'm not using it. To do this I'm looking at using a digital switch (such as the Fairchild FSUSB31K8X) to remove it.
Do you see any problems in me doing this?
The xtal leads will increase...which means perhaps I should stick with the 5MHz crystal to reduce switching speeds so that board layout isn't as much an issue.
Lead capacitance will increase by around 3.7 pf and lead resistance will increase by around 6.5 ohms.
...I think the chip I'm looking at isn't the best candidate...but what do you think about the concept? Have any better ways of going about this?
One power saving avenue I'm exploring is using the propeller's built in resonator @ 22kHz and a single cog to run in a power saving mode and monitoring a few outside parameters.
When I need better timing for high speed serial or other situations I would use a 5MHz crystal (or maybe 80 MHz crystal and no PLL ...or similar).
The problem arises around the fact that even if you don't use the external crystal it still takes power to keep it oscillating. As such, I would like to remove it from the circuit when I'm not using it. To do this I'm looking at using a digital switch (such as the Fairchild FSUSB31K8X) to remove it.
Do you see any problems in me doing this?
The xtal leads will increase...which means perhaps I should stick with the 5MHz crystal to reduce switching speeds so that board layout isn't as much an issue.
Lead capacitance will increase by around 3.7 pf and lead resistance will increase by around 6.5 ohms.
...I think the chip I'm looking at isn't the best candidate...but what do you think about the concept? Have any better ways of going about this?
Comments
Have you instrumented the Propeller in both standalone RCSLOW mode and with the crystal attached in RCSLOW mode? I don't know how the silicon is configured, but there is a timing delay in going from one mode to another to allow it to settle, it's possible that the xtal is not oscillating when you switch out of PLL mode. I can't say for any certainty though.
I'm also pretty sure an 80MHz crystal wouldn't work.
Does a 5MHz crystal really draw power if you're using RCFAST or RCSLOW?
I think an 80MHz crystal will work as long as you disable the PLL.
I think the maximum speed for a crystal is around 12MHz when using the PLL due to hardware 3rd harmonic filtering limitations in the prop.
..........
Power usage on propeller (single cog running)
http://forums.parallax.com/showthread.php?84907-Propeller-Current-Draw
This would be very cool. I'm just surprised I haven't heard of it being done. I've been following the Propeller forum for a few years and I don't recall any mention of using an 80MHz crystal (which isn't to say it hasn't been discussed).
Thanks for your patience.
If you only change the CLKSEL[2..0] bits and leave OSCENA enabled, the crystal oscillator will continue the draw current.
Gotcha. So when I want to be in 'low power mode'
Switch off the OSCENA and PLLENA
Use RCSLOW or RCFAST (as appropriate)
Run a single cog
Run @ >2.7V (above brownout)
Use peripherals connected to high pins (P31,P30, etc) (takes more current to access pins farther down the chain due to internal losses in the propeller).
Look at the various power consumption graphs in the Propeller's datasheet. They give a pretty good measure of the power consumption under different conditions. As with all CMOS, the slower things switch, the less power they take, so RCSLOW is best for pure low power consumption.
I wouldn't worry about which I/O pins you use. There's not really any difference among them. The chain is from one cog to another and there's not much logic involved there. I'd be more concerned about using WAITxxx instructions as much as possible to stop the cog when waiting for a time interval or I/O condition. When stopped, the cog draws minimal power.
I think that'll work great.
This is kind of a related topic.
Is there a way to get RCSLOW to run at 9.6KHz or less?
If the Props clock was < 9.6KHz one doesn't need to pass FCC radio emission testing.
Duane
The real way would require some major chip-fu, because the sillycon is in control.
You could connect a very slow external oscillator to satisfy this I suppose