Low Power with Teensey 3.6 + Arduino

Status
Not open for further replies.

AalokShah

Member
I am looking for the low power design with Teensey. My hardware is design with the same focus - having control pins to toggle the power of module-wise circuitry.

Right now my code snippet is like this in loop() function of Ardunio,

power_mgmt.disable_all(); ///I am disabling power to all the modules of my hardware for which I have availability of control pin
time_mgmt.power_down();
power_mgmt.enable_all(); ///I am enabling power to all the modules of my hardware for which I have availability of control pin

...................

Implementation for time_mgmt.power_down() is like this,

SnoozeBlock config_teensy(alarm);

err_status v_time_mgmt::power_down()
{
Snooze.deepSleep(config_teensy);
return NO_ERR;
}

.........................

Basically I am trying to wakeup with the RTC. My need is to wake up at every 15 minutes, read the data from attached sensors -> send it over XBEE, and then again go back to sleep for 15 minutes. There is a provision of digital I/O for all the modules (i.e. XBEE, Attached Sensors) to disable the power going to them which I am handing with power_mgmt.disable_all().

I have put the multi-meter in series to my power source and measured current at both the instants - at the deep_sleep and at the operational time. When it is operational, I am seeing current around 100mA, and when it is in deep_sleep, I am seeing current around 28mA.

After debugging across the hardware, it was figured that almost all the the current is being taken by the Teensey itself even though it is in deep sleep. How can I manage Teensey firmware to get as minimum current as possible when I put it in sleep mode - seek some guidance?
 
Is there anyway I can reduce 28mA to further low value over Teensey? Teensey itself seems to be eating up the current though in snooze.deepSleep mode. Is it possible or make sense to directly write on registers of NXP (instead of library call for Teensey) over Arduino to get less current?
 
Hello,

I have used snooze library in simelar circumstances like in your project with success.
Some hints:
- if you don't need exact time and date for other reasons in your app, it is simpler to use timer instead RTC
- the current you see in deepSleep can be caused by external hardware connected to teensy via interfaces like SPI ; I had to set the pins in triState via pinmode(x, INPUT_DISABLE) before Sleep and set to desired function after wakeup again.
 
@larry
- As you have mentioned I have configured all the 57 pins of Teensey3.6 in INPUT_DISABLED mode, but not seeing improvement.
- I have reduced the operating frequency to 24MHZ, and seeing significant difference in current (80mA -> 30mA) at working condition, however, no improvement in current value at sleep mode
- I have tried low power timer as well, but I am seeing almost near current occupation which I get with RTC

My current consumption is 13mA in low power mode, using Deff's Snooze library - VLLS2 with hibernnate mode [Snooze.hibernate(config_teensy, VLLS2)]. What was your current rating? Were you on the similar mode?

Referring Table-5 of http://cache.freescale.com/files/32bit/doc/app_note/AN4503.pdf, it seems that all the peripherals are OFF with VLLS2, would appreciate if have suggestions to try out to improve this.
 
In Hibernate mode, you should get (way!) less than 1mA of power consumption with Teensy 3.6.

I don't have a spare Teensy 3.6 right now; but I just measured a Teensy 3.2 overclocked to 120 MHz.

Powered by USB at 5V, I measured 45mA under load and about 0.15 mA in deepSleep (did not try Hibernate; anyway I could not measure much lower than that...).
Did not even bother disabling pins or ADCs.
 
By reading Duff's posts (he's the author of the Snooze library), Teensy 3.6 should draw less than 100 uA in Hibernate mode without anything attached.
 
Does the slower 16mhz teensy 2.0 use less power ?

What environment are you in ? Can you use a solar panel ?
 
@larry
- As you have mentioned I have configured all the 57 pins of Teensey3.6 in INPUT_DISABLED mode, but not seeing improvement.
- I have reduced the operating frequency to 24MHZ, and seeing significant difference in current (80mA -> 30mA) at working condition, however, no improvement in current value at sleep mode
- I have tried low power timer as well, but I am seeing almost near current occupation which I get with RTC

My current consumption is 13mA in low power mode, using Deff's Snooze library - VLLS2 with hibernnate mode [Snooze.hibernate(config_teensy, VLLS2)]. What was your current rating? Were you on the similar mode?

Referring Table-5 of http://cache.freescale.com/files/32bit/doc/app_note/AN4503.pdf, it seems that all the peripherals are OFF with VLLS2, would appreciate if have suggestions to try out to improve this.

I had in hibernate on teensy 3.2 about 0.25 mA current, less is not possible on t3.2 because of the voltage regulator LP38691 on teensy PCB (expect the same for t3.6).
I recommend checking the circuit outside teensy to identfy the cause of 13 mA current.
Also I think reducing operating frequency for hibernate has no impact for current in hibernate (stop mode).

Good luck
 
Actually, I have 0.15mA on T3.2 in DeepSleep mode, so < 0.25mA is possible (I'm powering from microUSB).
And, Duff himself measured 0.085 mA in Hibernate from T3.6.
 
Status
Not open for further replies.
Back
Top