-
Hello everyone ! Need some help if possible, with the low power modes . I'm playing with some avr64DA32 + NRF24L01 to make myself a little remote control with dimming for lights and stuff. I have already all the transceiver and receiver working as i need but i have trouble to reduce the power consumption. There is what i did to get the to 0.8mA ( but it's not low enough )
The resistance to see the power use is 5.6 Ohm To put the AVR64DA to sleep , i used just :
I saw that in the datasheet, i should be able to go as low as 0.9 µA in Power-Down mode. I saw in the datasheet "VREGCTRL.PMODE" and "VREGCTRL.HTLLEN" that maybe can do few things ? but no idea how to use them . Any one have ideas or have ben able to do the very low power usage ? or there is no solutions for this as today ? Thank you for your brain time :) |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 11 replies
-
Is your measurement just the mcu or the whole board? Is there a voltage regulator? can you share a schematic (if full board). I would suggest measuring just the MCU if you can. I haven't measured power-down that carefully but I have a board with a 64DB32 that when waking up at 8hz and reading an ina3221 (which itself draws ~375UA) runs around 800ua average across standby and active so 800ua in pure sleep sounds way off. Any chance you have the ADC running? FWIW you might want to play with measuring power use at 1mhz vs 4|5mhz - I often get lower total power use at 5mhz than 1mhz (because the active phase finishes more quickly). While DXCore doesn't officially support it you can switch the clock around yourself. You'll break at least millis(), delay(), and serial while running off an unexpected clock. You might try setting MCLKCTRLB's prescaler bits to the /64 (250khz) or switching the master clock to/from the 32k. Since you are using POWER_DOWN and not STANDBY you are already breaking millis(). You would then switch back on waking up which would make the things you broke work normally again. (You can use delay in the alternate clock you just need to scale your inputs by the ratio of the speeds.) |
Beta Was this translation helpful? Give feedback.
-
Did you remember to set all the pins to be either output, input_pullup, or input disabled? The modern AVRs seem to be a lot more sensitive to that than classic ones were. |
Beta Was this translation helpful? Give feedback.
-
made few tests with bare chip ( only avr64da32 + 5.6ohm resistor on vcc ) with "loop" empty and all pins set to INPUT_PULLUP So , normal, not sleeping the resistor measure 5 mV that give me 0,892857mA SLEEP_MODE_STANDBY at power on, resistor measure 0.6mV that give me 0,107143mA but goes to 0 after around 2-3 sec will have to try some code and a button to see how it goes . ObviousInRetrospect , i haven't tried your proposition yet as right now with only the chip and empty , the low power seems to work , |
Beta Was this translation helpful? Give feedback.
-
Hello back :D chip settings are
AVR64DA32 + NRF24L01 connected + all buttons used are set as INPUT_PULLUP and in sleep mode SLEEP_MODE_PWR_DOWN when i hit a button , i have a spike of 1.9mA (11mV) as the NRF24L01 is sending infos for the receiver and then until i release the button, the consumption is 0.38mA (2.15mV) 17.85µA on a new CR2032 ( 240mAh ) will give me around 1.5years of work and my remote control is working until the voltage goes under 1.7V If someone else is looking for an example and ready to use , here is a clean little example if needed
Thank you a lot for the time and ideas you gave me :) helped me a lot to think |
Beta Was this translation helpful? Give feedback.
-
How did you get 1.7.4 O_O As the creator of DxCore, I think I'm pretty well
qualified to say that there is no DxCore 1.7.4, the latest version is the
in-development 1.5.0
…On Mon, Sep 5, 2022 at 11:15 AM matou78 ***@***.***> wrote:
hey, yeah the NRF24L01 is using SPI + few control pins, I connected it
like on the screenshot below
[image: image]
<https://user-images.githubusercontent.com/20770243/188479065-992c63a4-e85b-42d7-afad-17bc26f4e1b5.png>
And I'm using platformIO with a manually updated dxcore to 1.7.4
Never had problems with serial on AVRXXDA chips
—
Reply to this email directly, view it on GitHub
<#308 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTXEWYMAM3RUDNHEXZGWKDV4YFAVANCNFSM55AULRCQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
--
____________
Spence Konde
Azzy’S Electronics
New products! Check them out at tindie.com/stores/DrAzzy
GitHub: github.com/SpenceKonde
ATTinyCore <https://github.com/SpenceKonde/ATTinyCore>: Arduino support for
all pre-2016 tinyAVR with >2k flash!
megaTinyCore <https://github.com/SpenceKonde/megaTinyCore>: Arduino support
for all post-2016 tinyAVR parts!
DxCore <https://github.com/SpenceKonde/DxCore>: Arduino support for the AVR
Dx-series parts, the latest and greatest from Microchip!
Contact: ***@***.***
|
Beta Was this translation helpful? Give feedback.
Hello back :D
so, i got my remote working pretty good with a pretty low power usage
measures given lower are using a shunt resistor 5.6Ohm
chip settings are
ADC0.CTRLA &= ~ADC_ENABLE_bm;
)AVR64DA32 + NRF24L01 connected + all buttons used are set as INPUT_PULLUP and in sleep mode SLEEP_MODE_PWR_DOWN
gives me a consumption of 17.85 µA ( 0.10mV)
when i hit a button , i have a spike of 1.9mA (11mV) as the NRF24L01 is sending infos for the receiver
and then until i release the button, the consumption is 0.38mA (2.15mV)
17.85µA on a new CR2032 ( 240mAh ) will give m…