Shop OBEX P1 Docs P2 Docs Learn Events
Prop Chip Minimum Power — Parallax Forums

Prop Chip Minimum Power

HumanoidoHumanoido Posts: 5,770
edited 2009-12-19 03:37 in Propeller 1
What is the minimum operating voltage, in real world conditions - not specs, that the Propeller chip will continue to function? I am wondering if two AA batteries, providing 3-volts DC, will be adequate. With the Basic Stamp circuit, without the watchdog chip, it can function down to only 2-volts! This is a real advantage for numerous applications (but peripherals must be compliant, not 5-volt devices on the same supply). Thanks sincerely for your reply.

humanoido
«1

Comments

  • Patrick1abPatrick1ab Posts: 136
    edited 2009-11-27 12:59
    Hm, difficult to say... I made the experience that my propeller didn't work properly anymore (rebooting in the middle of the program) when my switching power supply was broken. The supply voltage of the propeller dropped to 2.7 V which should have been sufficient according to the datasheet.
    Perhaps, if I had run my program with a lower clock speed, it could have worked.

    So, using two fresh batteries should work, but I guess using two rechargeble batteries (2.4V) won't.
  • localrogerlocalroger Posts: 3,452
    edited 2009-11-27 13:50
    I would guess the PLL's are pickier about the supply voltage than the CMOS logic. Most digital CMOS chips are rated to run down to 2 volts, but low voltages do reduce the maximum clock speed.
  • LeonLeon Posts: 7,620
    edited 2009-11-27 14:45
    According to the data sheet. it should work at 80 MHz at 2.7V. I doubt if it will work with a 10 MHz crystal at that voltage, because the PLL input will be out of spec, although they generally work at 5V with a crystal of that frequency.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • Patrick1abPatrick1ab Posts: 136
    edited 2009-11-27 15:28
    Leon said...
    According to the data sheet. it should work at 80 MHz at 2.7V.
    Leon

    This is exactly the configuration i tried, but it didn't work for my chip.
    I used the 5 MHz crystal and 16x PLL.
  • LeonLeon Posts: 7,620
    edited 2009-11-27 16:52
    I'll remove the regulator from one of my boards with a 5 MHz crystal and see how it behaves at low voltages.

    The voltage setting on my PS is a bit coarse, so the closest I could get was 2.72 V at the Propeller supply pins. It won't work at that voltage. My DVM hasn't been calibrated, but it can't be far out, and the PS shows 2.7 V. 2.8 V is fine. Perhaps the chip wasn't properly characterised for low-voltage operation. although I find that difficult to believe.

    Anyway, 2.8 V is fine for two AA cells, although they obviously won't last as long as if the voltage was according to the data sheet.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/27/2009 5:34:59 PM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-27 18:02
    Actually this is for running the Propeller chip without a crystal, in low power internal clock mode, so I would expect to get much better battery usage. Very low power mode is activated by using the command RCSLOW. This sets the internal clock to its slowest speed which also consumes the least power. It runs at about 20kHz (may range from 13 kHz to 33 kHz). The format is
    CON 
    _CLKMODE = RCSLOW
    

    The Valid Expression is RCSLOW and the CLK Register Value is 0_0_0_00_001. In Very Low Power Mode, the video signal and BASIC screen will not function. However, pins function normally and LED indicators along with other sensors (LCD screen) are possible.

    humanoido
  • cgraceycgracey Posts: 14,256
    edited 2009-11-27 21:25
    To operate at less than 3.3V, you'll need to disable the brownout circuit by making BOEn high and pulling up RESn.

    I believe all those voltage/speed tests were performed with the Propeller being fed a 1/16-frequency clock signal from a function generator. The Propeller then used its PLL to wind it up 16x. So, the PLL was in use at all those voltages.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.

    Post Edited (Chip Gracey (Parallax)) : 11/27/2009 9:30:30 PM GMT
  • LeonLeon Posts: 7,620
    edited 2009-11-27 22:55
    I'll try that.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM

    Post Edited (Leon) : 11/27/2009 11:10:26 PM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-29 10:25
    Chip Gracey (Parallax) said...
    To operate at less than 3.3V, you'll need to disable the brownout circuit by making BOEn high and pulling up RESn.
    Thanks sincerely for the solution! I'm putting it together now and will study the results based on voltage levels.

    Leon: what results did you have?

    humanoido
  • LeonLeon Posts: 7,620
    edited 2009-11-29 14:54
    I'll need to design and make a new board, I don't want to cut tracks and rewire one of my existing boards.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-29 15:49
    Just use a solderless breadboard and you won't need to cut any tracks.
    I'm currently looking for some subminiature toggle switches that plug
    into pcbs or solderless breadboards. It may take a special trip by
    subway just to get to the parts store to find these. The pushbuttons
    seem to fit nice though.

    humanoido
  • LeonLeon Posts: 7,620
    edited 2009-11-29 16:03
    I never use solderless breadboards.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-29 17:54
    Solderless breadboards are quick. I have the circuit working already. It's very stable at 3-volts, and there is no problem with program load reliability, programs run fine, timing is good, everything works perfect. The next step experiment will take the voltage down incrementally to study the effects of a battery losing power. We'll see where this goes without the brownout circuit. Any guesstimates as to the lowest voltage it will operate?

    humanoido
  • LeonLeon Posts: 7,620
    edited 2009-11-29 18:25
    2.7 V?

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-29 18:28
    Some results. With or without the brownout circuit pulled high, the chip functions at 2.7 volts and not at 2.6 volts. To test, a high and low on P3 was programmed and tested with a meter and then with an LED. The results were the same during several trials. The conclusion is that two AA batteries providing 3 volts will not last long enough for reliable operation, as they will quickly lose charge and approach the failure voltage of 2.6 volts. Why the failure voltage remains at 2.6 volts with or without BOEn pulled high is unknown.

    humanoido
  • SapiehaSapieha Posts: 2,964
    edited 2009-11-29 21:13
    Hi humanoido


    If You will test Propeller for power/Voltage requirements .... You must write any Program that RUN all COG's with use of WAIT instructions that RUN in diferent time rates. That give You more reliable requirements on that

    Regards

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-11-29 21:37
    humanoido,

    How about a CR123 lithium primary cell? These are nominally 3.0V, with new ones starting out at about 3.15V (unloaded). They have excellent shelf life, high energy density, and a flat discharge curve with a knee at the end. What is not certain is whether the flat portion of the discharge curve will remain above 2.7V. This will be a function of the current draw and the battery's internal resistance. The only curves I've seen online were for a 500mA or higher load, and they hovered around 2.5 - 2.6V before crapping out. But 500mA is likely a lot more than what you're contemplating, so it may be worth an experiment.

    -Phil
  • Clock LoopClock Loop Posts: 2,069
    edited 2009-11-30 01:06
    One could use a few CR123's/batteries stacked in parallel so the life is extended. They are so small you could stack 4.

    Solderless breadboards are picky, quick, and dirty.
    But the speed at which one can test designs is what makes it all worth the breadboard issues.

    Most of my issues with my designs are due to the fact that my breadboard is becoming worn out.
    Not to mention that high frequency signals don't like the pressure based electrical connection.

    I have a jameco breadboard which lets me take the back off and pull out all the pins to check them.
    Most of my connection issues are because of stuff getting lodged into the holes.
    But its time consuming because these breadboards have hundreds of pins to pull out.

    Post Edited (Clock Loop) : 11/30/2009 1:11:20 AM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-30 08:41
    Sapieha said...
    If You will test Propeller for power/Voltage requirements .... You must write any Program that RUN all COG's with use of WAIT instructions that RUN in diferent time rates. That give You more reliable requirements on that.
    Thanks Sapieha for this tip. So mainly the code is running in only one cog and there are additional considerations when simultaneously running additional cogs. So to get a minimal condition, other cogs need to be selectively turned off. The sample code is shown below. How would you modify it?
    humanoido

    CON
      _clkmode        = xtal1 + pll16x           ' Feedback and PLL multiplier
      _xinfreq        = 5_000_000                ' External oscillator = 5 MHz
      LEDs_START      = 0                        ' Start of I/O pin group for on/off signals
      LEDs_END        = 15                       ' End of I/O pin group for on/off signals
      PUSHBUTTON      = 18                       ' Pushbutton Input Pin
    PUB ButtonBlinkSpeed                         ' Main method
      '' Sends on/off (3.3 V / 0 V) signals at approximately 2 Hz. 
      dira[noparse][[/noparse]LEDs_START..LEDs_END]~~               ' Set entire pin group to output
      repeat                                     ' Endless loop
        ! outa[noparse][[/noparse]LEDs_START..LEDs_END]             ' Change the state of pin group
        if ina[noparse][[/noparse]PUSHBUTTON] == 1                  ' If pushbutton pressed
          waitcnt(clkfreq / 4 + cnt)             ' Wait 1/4 second -> 2 Hz
        else                                     ' If pushbutton not pressed
          waitcnt(clkfreq / 20 + cnt)            ' Wait 1/20 second -> 10 Hz
    
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-30 08:52
    The CR123 battery is a good idea. Parallax published a CR123 battery study in their Penguin Robot Manual. Penguin uses two such batteries to propel it for hours. This chart shows that most quality batteries will last up to 3.5 hours at a drain of 200ma, until they reach below the 2.7 volt Propeller chip limit.

    Additional details are provided here
    www.parallax.com/Portals/0/Downloads/docs/prod/robo/27313-6%20PenguinDoc-v1.3.pdf

    humanoido

    attachment.php?attachmentid=65461

    Post Edited (humanoido) : 11/30/2009 9:13:10 AM GMT
    277 x 192 - 18K
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-30 09:06
    @Phil:

    You are correct, it's certainly not 500ma current draw for the Propeller chip. The loaded circuit (chip + EEPROM + 2 regulators + LED + Prop Plug) draws only 30ma in a typical test setup, and with mainly the chip run directly on batteries the current drops significantly to just a few ma.

    Since apparently the condition of the remaining cogs may affect this, I'll wait to hear from Sapieha or someone who can offer additional information about this process and spell out some code to take this into consideration for these tests. Maybe there is a simple code to shut off all cogs but one and keep the demo running?

    humanoido
  • SapiehaSapieha Posts: 2,964
    edited 2009-11-30 14:26
    Hi humanoido

    1.First One part that RUN all COG's fully loaded. That can give You total cuarent consumption.

    2.Next one program that randomly stsrt/stop COG's with WAIT instructions
    Next One program to start/staop COG's From one master in same time them RUN stage 2.
    That program must start/stop COG's in randomly fashion.

    As Propeller are Variable Curent device ..(POWER consupmtion are function of YOURS program + I/O pins usage).. You must in that program meet that needs.
    At last RUN YOURS aplication program that You will use on Propeller (That only in that case YOU can have correct POWER masurements that needs in YOURS aplication.)


    Regards
    ChJ

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-12-01 02:21
    In reviewing the propeller cog boot procedure, I decided to let the test settle with one cog and one port with one LED. I have also gone back to the one lithium CR123 battery idea at 3-volts and dropped the voltage regulators while disabling the brownout detection circuit and pulling up RESn. The current draw is really low on this so the battery should last a long time, tests are forthcoming.

    humanoido
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-12-03 01:51
    Some breaking news, the circuit is finally completely wired and the results are in. The Propeller chip can function down to 1.9 volts driving 8 LEDs (dimly) at a current consumption of a mere 2 mA.

    With one LED, it will do 1.7 volts. I would guess that if all the LEDs were removed, the chip could do internal calculations at significantly less voltage and current although there would be no practical way to extract the results until the power was increased.

    The latest test shows that internally, the code continues to correctly run at extremely low voltage and current, because, dialing up the power brings back the program and it is still correctly executing. Using this technique, it maintains correct program functioning at a very small fractional volt.

    (for all tests, usb connections must be removed)

    There are numerous uses for this technique. I consider it to be a significant breakthrough, at least for my projects. I hope others can confirm the results after the project details are posted.

    This could serve well in a system to preserve battery power for months, perhaps several years, up to the life of the battery, as well as other new applications. For example, in a robot, the core processor can continue to function, calculate, process data, at almost no power consumption, then bring up its own battery power to use some peripheral, say vision to look around, collect data, and then go back into low power mode to process the results.

    I know there are sleep modes and nap modes in the BASIC Stamp, for example, that can induce lower power consumption, but these modes do not permit various calculations to be performed when sleeping or napping.

    However, this technique works just as well in the BASIC Stamp as described initially for the BASIC Stamp SEED project and written up in the Handbook of Basic Stamp Supercomputing and posted on the Forum.

    humanoido

    Post Edited (humanoido) : 12/3/2009 2:02:26 AM GMT
  • Miner_with_a_PICMiner_with_a_PIC Posts: 123
    edited 2009-12-15 16:55
    Humanoido, your final results of 1.7-1.9V, could you please add some more detail to this low voltage benchmark:

    1) Were you running an external crystal and what speed?

    2) What was the PLL setting?

    3) How many cogs were running?

    Sharing the code might answer many of the above questions also.

    Thanks!
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-12-17 02:27
    Miner_with_a_PIC:

    To answer your questions, one cog, crystal not used and therefore PLL disengaged. The project will soon have details, code and circuit diagrams made available for many of the effects described in this thread.

    humanoido
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-12-17 08:20
    There is also a low power state and a wait statement. More info here.
    http://forums.parallax.com/showthread.php?p=865361
    So by turning off cogs or making wait states, it's possible to do some
    fine tuning on power consumption. Any comments?

    humanoido
  • Miner_with_a_PICMiner_with_a_PIC Posts: 123
    edited 2009-12-17 16:24
    Thanks humanoido, I look forward to hearing more regarding your low voltage experiments.

    Have you considered a programmatic method of raising and lowering the voltage of the propeller for certain events? An example of such an event that may need higher voltage would be an EEPROM write should you be doing remote datalogging, say logging temperature and humidity every 5 minutes over a period of a month or two. Some non-propeller circuitry could also be powered off by some of the propeller's I/O (the I/O would be connected to the base of a npn transistor [noparse][[/noparse]base resistor necessary] with emitter to ground + collector to load , not as direct power sources), the possibilities are endless!

    I hazarded a lengthy comment to the I/O issue in the thread provided that suggests a potential programming solution.

    Post Edited (Miner_with_a_PIC) : 12/17/2009 4:37:04 PM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-12-18 06:29
    Miner_with_a_PIC: thanks and of course this is one good idea to utilize the status of a pin, from some condition external to the chip, that would indicate the power mode.

    Instead of using hardware for the low power approach, it looks like there are options for a software method. Anyone care to elaborate and demonstrate a small piece of code to show how to accomplish several low power modes in SPIN? I think there's more than one way to do this.
  • Miner_with_a_PICMiner_with_a_PIC Posts: 123
    edited 2009-12-18 21:49
    Humanoido,

    Just got through running a couple of experiments with a propeller and low voltage:

    Program: One cog toggling three pin states

    RCFAST >> Scoped outputs stopped toggling @ around 1.05V and restarted at ~ 1.1V
    The output toggle rate of one of the pins dropped from 2.2KHz down to 260 HZ, the drop began at 1.6V (I am assuming the RC circuit has a particular trigger level and is the cause of this change in clock rate)

    RCSLOW >> Scoped outputs stopped toggling @ around 1.05V and restarted at ~ 1.1V
    The output toggle rate was less affected perhaps a factor of 2 drop in output toggle rate. It is likely that the RCFAST is derived from a PLL output from a common RC, the PLL is likely culprit of the 9X change in the RCFAST case above.

    I suspect 1V is around the Vt for this part's MOSFETs, a technological rather than design limit. Reboot at 1.1V was only possible if the propeller's RAM contents were still viable as all attempts to reboot from the EEPROM after power cycling were only possible @ ~ 1.65V (parallax 32KB EEPROM, the LC version). Dropping the voltage below 0.4V caused loss of RAM contents. The propeller is amazingly tolerant of low voltages!


    Follow-on >>

    The frequency shift issue prompted more experimentation with a crystal rather than the internal RC....the findings are even more surprising...

    XTAL1 >> Using a 3.6 MHz crystal, the pin toggling stopped at 0.7V but all attempts to resume execution by raising voltage alone failed, either the RAM contents were lost or the XTAL failed to restart (more probable that it was the XTAL). The above 1V Vt assumption seems to be false.
    Frequency shifted at around 0.95 V and was quite distinct.

    XTAL2 >> same as above except the crystal would not oscillate unless the voltage was dropped below 1.8V, best to use the correct settings.

    Activating the PLL at any value (1X...16X) causes the pins to stop toggling at around 1.7V with sporadic restarts when the voltage was raised.

    The optimum solution seems to be a low frequency (I didn't try any high frequency ones) external crystal and no PLL with performance all the way down to 1V.

    Post Edited (Miner_with_a_PIC) : 12/18/2009 10:51:57 PM GMT
Sign In or Register to comment.