Propeller (P1 or P2).. sleep mode?
ngeneer
Posts: 62
in Propeller 2
I see variable clock from DC - 80 MHz (for example on P1) which is great to use less power if you don't need the speed of processing (or some UART Baud rate, VGA display rate, etc.)
is that variable during run-time? it always appears as a constant, and I've played with running the P2 between 300MHz and 1KHz (dropping current consumption from ~140mA to ~30mA) which saves energy. but, even at 1Hz, P2 continues to draw ~20mA.
So... is there a sleep mode I'm overlooking (ctrl-F on the Spin lang document page) ? Or, do I have to get clever with a RTC module that'll re-apply power after a time?
Comments
It’s been a long time since this was asked …. But think the answer is here , somewhere …
Did you shut down all the other cogs?
Spec sheet says there is 130uA mode
the "limbo - how low can it go" thread
Static P2's raw current is around 34uA, P1's is around 1uA. With nothing connected (so not exactly practical), but I think those are the low limits. I guess the 130uA is using RCslow.
clkset( 1, 20_000 )
should be the lowest internal operating power. It stops the crystal oscillator as well as dropping to 20 kHz sysclock. Also, oddly, I've noted the Prop2 cogs seem to use slightly less power when running WAITX instructions in a cogRAM loop than when stopped entirely.@Rayman @Tubular good tips; I'll poke around the RCslow stuff, probably will shed some light.
@evanh thanks on the command to switch while running. interesting, too, the WAITX situation. might just be the best sleep ..... intermittent wake up ... check and do thing or two .... sleep most of the time scenario I was interested in.
There used to be some funny business about switching from rcfast to pll….
Is that all sorted out with clkset() ?
Yep, clkset() has that taken care of. The low level HUBSET instruction is where you need to remember those details. Switching out of DIVP=1 PLL parameter is where things get cranky. Clkset() doesn't distinguish though, it does the same method all round.