Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2014 05:18:13
|
obstler
Joined: 04/12/2014 09:48:01
Messages: 8
Offline
|
When putting a MiniWireless with RFM69, Memory and RTC to sleep do we need to put the Memory and RTC to sleep also? If so, how do you put them to sleep or powerdown?
I'm sleeping with the following code:
But I'm still measuring 3.9 mA in sleep mode, so I'm guessing not all the components are sleeping/powered down properly.
There's nothing else connected to the board, just 5V VCC and GND through the multimeter.
what is the proper sleep procedure the get close to the
MiniWireless with 128Mb MEM,RTC, on-board RTC supercap, and supporting extreme low power hibernation < 50nA
quoted description?
This message was edited 1 time. Last update was at 05/12/2014 08:55:19
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2014 07:22:20
|
obstler
Joined: 04/12/2014 09:48:01
Messages: 8
Offline
|
After lots of searching I found the below code to put the SPI Flash memory to sleep on the Moteino forum.
With that the sleep power consumption is now 0.380 milliAmps, which is better than before but still too high by a factor of about 100.
Just one good sample code on how to put all the Anarduino MiniWireless components into lowest power sleep would be really helpful!
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/12/2014 03:18:07
|
obstler
Joined: 04/12/2014 09:48:01
Messages: 8
Offline
|
Partly out of curiosity and partly out of frustration I butchered one of my MiniWireless boards and desoldered the flash, RTC and RTC crystal to see if that helps lowering the sleep power consumption. Unfortunately, this is not the case, it is still quite high at around 0.38-0.4 milliAmps. I also tried powering directly via 3V3 in case the voltage regulator was wasting too much power, but got the same result.
For comparison I took a cheap chinese Pro Mini 3V3 board, added a RFM69HW module and used the same sketch sleeping the wireless and the arduino, which results in only 0.045 milliAmps sleep power consumption. Not great, but still better than the MiniWireless by a factor of 10.
I would really appreciate any help at all to lower the MiniWireless sleep power consumption.
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/12/2014 10:54:10
|
stevech
Joined: 07/07/2014 18:07:27
Messages: 91
Offline
|
The Moteino uses a different part for the SPI flash so the commands may differ from the Spansion chip used on the Anarduino boards.
Is it possible that the software you're using to sleep the AVR is not using the right methods?
This message was edited 1 time. Last update was at 16/12/2014 10:55:03
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/12/2014 14:55:04
|
obstler
Joined: 04/12/2014 09:48:01
Messages: 8
Offline
|
I've tried using Lowpower, Narcoleptic as well as the native avr/sleep & avr/power libraries, all yield exactly the same results.
the flash sleep command using the moteino spiflash library also worked, as the power was reduced accordingly, and also is the same when the flash is sent to sleep or is physically removed.
unfortunately I'm completely out of ideas now, and am hoping to find some help here....
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/12/2014 21:22:31
|
siew
Joined: 30/05/2014 22:27:10
Messages: 3
Offline
|
Hello,
Is your Serial driver active when you are trying to sleep?
It seems to me I noticed doing a Serial.end() made a big difference.
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/12/2014 14:41:27
|
obstler
Joined: 04/12/2014 09:48:01
Messages: 8
Offline
|
I've also tried completely without any Serial output, so not even a Serial.begin, and it didn't make any difference.
would also be interested to read about what kind of sleeo power consumptions others achieve with their MiniWireless Anarduinos, and the relevant sleep code.
thanks!
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 06:24:28
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
I'm experiencing the same issue with very similar readings (0.38-0.4mA).
Interesting part is that powering through 3V3 pin increased drain by ~50uA, [450mA total] (tried both with and without regulator soldered).
However, when powering circuit with 5V on VIN pin everyting seems to work fine draining 1.5uA in sleep mode.
the code i'm running for test is:
There are no additional components attached to board during test.
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 15:45:56
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
It seems that the cause of my problem is radio module.
I've desoldered every unnecessary piece from the board one by one, measuring power consumption between each step.
After desoldering RFM69W, consumption dropped to ~1uA.
I thought it might be damaged, so i've replaced it with a spare one. Consumption went back to 350uA.
It seems that separate circuit to power on/off RFM69 is necessary
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 16:17:04
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
Just read that sleeping RFM69 module should drain 1uA at most, so there's something really wrong...
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 16:27:29
|
stevech
Joined: 07/07/2014 18:07:27
Messages: 91
Offline
|
maybe the wrong commands to the RFM69 are being used for deep sleep?
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 17:12:38
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
stevech wrote:maybe the wrong commands to the RFM69 are being used for deep sleep?
Maybe.
Currently I'm using LowPowerLab RFM69 library, which seem to handle switching modes quite similarly to RadioHead. There is some strange bit-magic happening though.
RadioHead
LowPowerLab
Not sure where that 0xE3 came from, but it appears that it filters out every OPMODE down to 0. (So all in all both implementations should be doing the same thing).
Anyway, i'll try with just writeReg(1, 0);
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 17:53:54
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
empeka wrote:Anyway, i'll try with just writeReg(1, 0);
No difference. Switching to RadioHead lib completely also didn't help
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/12/2014 19:18:30
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
Ok, so the cause is 10K pullup resistor between D2 and 3V3. (located near RX/A7 pins on the board).
Power consumption fell to ~16uA after desoldering it. As far as i know it's not required when using RFM69 module.
This message was edited 1 time. Last update was at 22/12/2014 14:27:17
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2014 14:09:17
|
stevech
Joined: 07/07/2014 18:07:27
Messages: 91
Offline
|
What does Dr. Ohm say to Dr. Ampere about 3.3 / 10,000?
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2014 08:23:24
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
stevech wrote:What does Dr. Ohm say to Dr. Ampere about 3.3 / 10,000?
Right, 330uA
And the remaining 16 is drained by SPI Flash in standby mode (which is nice, as if I identified chip correctly, it drains 70uA typically).
2.2.2.6 Deep Power Down
The Deep Power Down (DPD) function is not supported in FL-S family devices.
So... anyone knows some low power replacement?
// EDIT
Answering my own question:
W25X40CL supports Deep Power Down with <1uA current.
I'ts a lot smaller than Spansion (4Mbit vs 128Mbit), but still enough for wireless flashing.
W25Q128FVSG is a bit pricey, but has 128Mbit with 1uA (typ.) power-down current
This message was edited 2 times. Last update was at 27/12/2014 16:09:49
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/01/2015 11:06:31
|
Rick
Joined: 30/05/2014 22:08:56
Messages: 93
Offline
|
Thanks for your posts and such.
The 10K pullup on D2 is indeed unnecessary, and will henceforth be omitted.
BR/-Rick
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2015 08:49:30
|
obstler
Joined: 04/12/2014 09:48:01
Messages: 8
Offline
|
Thanks for figuring this out, I now get the following results with this setup:
sleep current when powered from 4x AA NiMH Eneloop on VIN: 0.02 mA (19.8 uA to be exact)
I can definitely live with that, should allow for quite some battery life time.
This could probably still be improved by bypassing the voltage regulator and powering straight to VCC, but definitely good enough for now to finally deploy a battery powered wireless field node
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/01/2015 09:05:38
|
bobp
Joined: 11/12/2014 09:53:31
Messages: 1
Offline
|
Nice job working this out!
Ran across this recent report from Jack Ganssle on ultra-low power ...
Hardware and Firmware Issues in Using Ultra-Low Power MCUs, Dec 2014
Lot's of interesting info on sleep current vs. sleep time, technique to check voltage as you ramp up frequency/clock from wake-up, battery droop, choosing de-coupling capacitors carefully, and more. He emphasizes "successful low-power design requires careful analysis of every component used ...", which folks have clearly flushed out here.
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2015 16:17:17
|
haqthat
Joined: 16/02/2015 16:14:47
Messages: 3
Offline
|
I have desoldered the pull-up resistor as mentioned, but I still see .40ma current draw.
I am doing a:
RadioHead library: radio.sleep();
LowPower library: LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
That's as low as I can get my board to go, it has a rfm69 on it.
What could I be doing wrong?
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2015 09:25:12
|
haqthat
Joined: 16/02/2015 16:14:47
Messages: 3
Offline
|
Additionally trying to sleep the flash seems to lock up the board.
All Serial output stops even if I try to init the flash.
The best I've been able to achieve so far is .4mA by sleeping the radio and the mc
Any ideas?
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2015 21:08:44
|
empeka
Joined: 21/12/2014 05:56:01
Messages: 18
Offline
|
I'm pretty sure your flash's manufacturer id is not 0.
Fix this and you should be fine
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2015 21:27:28
|
stevech
Joined: 07/07/2014 18:07:27
Messages: 91
Offline
|
Spansion is ID 1 in all I've worked with.
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2015 10:19:05
|
haqthat
Joined: 16/02/2015 16:14:47
Messages: 3
Offline
|
empeka wrote:I'm pretty sure your flash's manufacturer id is not 0.
Fix this and you should be fine
That seems to have been it.
changed to:
and it worked.
.04ma during sleep now.
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2015 12:38:34
|
srusha
Joined: 03/06/2015 12:36:37
Messages: 2
Offline
|
Hello, I'm also trying to lower my power consumption with no success so far,
I followed this entire thread, but I only get 6.8ma, I have the miniwireless with rfm92w.
this is my code:
any help would be greatly appreciated.
Thanks!
This message was edited 2 times. Last update was at 03/06/2015 12:40:04
|
|
 |
|