Forum Rule: Always post complete source code & details to reproduce any issue!
Page 2 of 2 FirstFirst 1 2
Results 26 to 38 of 38

Thread: Teensy 4.0 Low Power

  1. #26
    Senior Member
    Join Date
    Oct 2015
    Location
    Roma (IT, EU)
    Posts
    336
    Quote Originally Posted by analog&RFmodels View Post
    ---rtc--deepsleep= 9.8 ma---sleep=19.6 ma
    --lptmr-deepsleep=14.4 ma---sleep=24.3 ma
    ma? Are you sure?

  2. #27
    Senior Member
    Join Date
    Oct 2019
    Posts
    119
    ^^ I was just about to ask the same thing

  3. #28
    Senior Member
    Join Date
    Aug 2019
    Location
    southwest USA
    Posts
    112

    sadly ma

    Quote Originally Posted by XFer View Post
    ma? Are you sure?
    just remade the msmnts - they are good. if you look in IMXRT1060CEC.PDF which is the technical datasheet
    111 pages 1.9 megabyte on page 26 table 13 they list some of the idle mode currents and if you assume that
    on the T4 you are looking at the sum of the 3 currents they list for different pins (its all gotta ultimately come
    from the 5v pin) they vary by mode from a handful of ma down to 20ua. only the power down modes are in
    the ua's and keep in mind that there are other parts on the board - datasheet numbers are for 106x only.

    so i think that if you need to retain data or status and only do a warm startup after snooze deepsleep or sleep
    you are looking at 10-20 ma and if you can stand a total cold start each time the power down current (rtc
    running so it knows when to "wake") you still need 220 ua.

  4. #29
    Senior Member
    Join Date
    Oct 2019
    Posts
    119
    Quote Originally Posted by analog&RFmodels View Post
    just remade the msmnts - they are good. if you look in IMXRT1060CEC.PDF which is the technical datasheet
    111 pages 1.9 megabyte on page 26 table 13 they list some of the idle mode currents and if you assume that
    on the T4 you are looking at the sum of the 3 currents they list for different pins (its all gotta ultimately come
    from the 5v pin) they vary by mode from a handful of ma down to 20ua. only the power down modes are in
    the ua's and keep in mind that there are other parts on the board - datasheet numbers are for 106x only.

    so i think that if you need to retain data or status and only do a warm startup after snooze deepsleep or sleep
    you are looking at 10-20 ma and if you can stand a total cold start each time the power down current (rtc
    running so it knows when to "wake") you still need 220 ua.
    A cold start (via a reset I assumes) is perfect for me. Ill have a need later on to log data but only when the CAN bus is active and the T4 is running.

  5. #30
    Senior Member
    Join Date
    Oct 2015
    Location
    Roma (IT, EU)
    Posts
    336
    Quote Originally Posted by analog&RFmodels View Post
    so i think that if you need to retain data or status and only do a warm startup after snooze deepsleep or sleep
    you are looking at 10-20 ma
    Wow, that's BAD!
    It would render the T4 unusable for most of my projects.
    I had hoped for at least T3.6-level sleep currents (hoped for even better power saving, since the chip is newer and maybe built on thinner litography).

  6. #31
    Senior Member
    Join Date
    Aug 2019
    Location
    southwest USA
    Posts
    112
    Quote Originally Posted by XFer View Post
    Wow, that's BAD!
    It would render the T4 unusable for most of my projects.
    I had hoped for at least T3.6-level sleep currents (hoped for even better power saving, since the chip is newer and maybe built on thinner litography).
    found in my archives two documents - the previously mentioned IMXRT1060CEC.PDF and also IMXRT1060IEC.pdf
    basically identical at a glance.

    also sometime recently i described TLC hibernate current as 11-14 ua but that is WITH an LM2936 regulator,
    so probable around 5 ua bare TLC. my old data shows bare T35 53 ua and bare T36 60 ua.

    i am with you - too high for some battery/remote projects. one way out is use 2 cpu - TLC and T4 and
    mosfet but that has its own down sides. it would help if no communication between them to save data,
    maybe someone more tuned in to T4 would know if practical to save data in T4 eeprom before TLC powers
    it down each time. i am glad that Duff has done all the hard work to give us the choice.

  7. #32
    Senior Member
    Join Date
    Oct 2019
    Posts
    119
    Can anyone shed light on which mode in snooze is parallel to stop mode?
    I have tested an implementation of stop mode with wakeup from
    Inturrupt in FlexCAN_T4 but when the T4 wakes up it continues from where it stopped. I donít believe its doing a hard reset that I was expecting it to do, which means its not going into the lowest power consumption mode.

  8. #33
    Senior Member
    Join Date
    Oct 2019
    Posts
    119
    I've gotten around to testing the Snooze library on the T4.
    Its goes into sleep mode as expected, but doesn't wake up.

    Here is how I've set up the code
    Code:
    #include <Snooze.h>
    // Load Snooze drivers
    SnoozeUSBSerial usb;
    SnoozeDigital digital;
    
    // install drivers to a SnoozeBlock
    SnoozeBlock config(usb, digital);
    
    void setup(){
        while (!Serial && millis() < 5000);
        Serial.begin(115200);
        digital.pinMode(20, INPUT, RISING); //pin, mode, type
    
    }
    const long SleepTimer = 30000; // Time to go to sleep
    unsigned long startTime = 0;
    
    void loop(){
        int who;
        if (millis() > startTime + SleepTimer){
          Serial.println("...Time to Sleep....");
          //who = Snooze.sleep( config );
          //who = Snooze.deepSleep( config ); 
          //who = Snooze.hibernate( config );
        }
    }
    I have a function that is interrupt driven from FlexCAN that rests the sleep timer variable as long as there is CAN activity.
    So it does go to sleep as expected when the number hits 30 seconds in any of the three modes.
    But when I apply 3.3v to pin 20 on the T4 - nothing happens. I can't get it to wake up.

    Am I doing something wrong? Besides Snooze and FlexCAN_T4 im also using SPI and HX8357 libraries, and adding SD or SDFat later on too.

  9. #34
    Senior Member
    Join Date
    Aug 2019
    Location
    southwest USA
    Posts
    112
    it it is any help, when i was testing T4 snooze i started with example code Duff had put in the Snooze library
    such as some thing like DeepSleep_all_wakeups - you might compare your code with that - i was using
    ARD 1.8.5,TD1.52

    as i remember, as the lib is right now there are restrictions on hibernate but sleep and deepsleep will wake
    up from many sources

  10. #35
    Senior Member
    Join Date
    Oct 2019
    Posts
    119
    Quote Originally Posted by analog&RFmodels View Post
    it it is any help, when i was testing T4 snooze i started with example code Duff had put in the Snooze library
    such as some thing like DeepSleep_all_wakeups - you might compare your code with that - i was using
    ARD 1.8.5,TD1.52

    as i remember, as the lib is right now there are restrictions on hibernate but sleep and deepsleep will wake
    up from many sources
    So I spent the last hour doing some tests.
    All modes work on a T4.0 with no issues.
    So I suspect another library is causing the issue.. I first added FlexCan to Hibernate_all_wakeups and initialized it - worked with the the digital pin
    Next I added SPI - same as above, worked. Then I added HX8357 (display driver) - that killed it. So I kept the library and constructor but didn't initialize it - wake up worked.

    So I guess I need to figure out what is breaking the digital wake up.
    But your advise was helpful as it got me to this far.

  11. #36
    Junior Member
    Join Date
    May 2020
    Posts
    3
    Took some more measurements after soldering on a single 8 MB PSRAM.

    5V supply, 600 MHz, empty loop(): 545 mW
    5V supply, 24 MHz, empty loop(): 183 mW
    5V supply, 600 MHz, WFI: 301 mW
    5V supply, 24 MHz, WFI: 175 mW
    Additional power draw if LED is on: 19 mW

    3.7V supply, 600 MHz, empty loop(): 404 mW
    3.7V supply, 24 MHz, empty loop(): 133 mW
    3.7V supply, 600 MHz, WFI: 225 mW
    3.7V supply, 24 MHz, WFI: 129 mW
    Additional power draw if LED is on: 14 mW

    Commentary: At 5 V, 600 MHz, WFI the measured power draw is 301 mW, up from 286 mW before adding the PSRAM. I'm not sure how different this is than the SYSTEM_IDLE conditions in 4.1.6 Table 13 of https://www.nxp.com/docs/en/nxp/data...XRT1060CEC.pdf but under those conditions it says it should be drawing 39ish mW.

  12. #37
    Junior Member
    Join Date
    May 2020
    Posts
    3
    One additional measurement: while memcpying from PSRAM to SRAM, at 600 MHz and 5 V supply, it draws 400 mW. This is quite a bit LESS than in an empty loop(), suggesting the cpu draws less power when it's waiting for a resource even if not explicitly told to go into a lower power state.

  13. #38
    Senior Member
    Join Date
    Aug 2019
    Location
    southwest USA
    Posts
    112
    campbell - that is an interesting observation. in 1977 Motorola had a trademark term for their newest family
    of processors - "systems on silicon" - wrong. but things like the ridiculously complex mpus on T3.6 and T4
    along with all of the core code PaulS and others wrote and all of the library code written by many people-
    now THAT'S a system on silicon. i am not surprised that the 1062 decides to "do things it has not explicitly
    been told to" (the datasheet is ONLY 3600 pages long)- it is a short step to "i'm afraid i can't do that Dave"

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •