Энергосбережение автономная работа Atmega328P

Weisnar
Weisnar аватар
Offline
Зарегистрирован: 19.07.2018

Есть задача сделать автономный датчик от батарейки без подзарядки.
Рабочий режим Atmega328 - около 7mA.
Режим сна, через LowPower - 2mA.
Диод питания ест 1mA, выпаял диод.
Удалось добиться 0.7mA. Еще писали, что потребляет стабилизатор. Выпаял его. Атмега вообще работать перестала. Подключился к контактам, где был этот стабилизатор. Его уже нет, а потребление всё равно 0.7mA. Подумал, что на этой плате меньше не выйдет.
Купил Arduino328P U (DIP корпус). Рабочи режим - 5mA. Sleep Mode - 1.7mA... Откуда?!
Как люди добиваются с этим контроллером микроамперов?
У меня остались два последних варианта:
- поискать какой-то другой режим LowPower. Я использовал тот, что по умолчанию (idle);
- поискать другой амперметр, но сомневаюсь, что дело в нём. Я несколькими месяцами ранее уже так мучался с ESP32. Никак не мог меньше 10mA получить. Извлечение диода индикации питания тоже, еле на 0.8mA дело улучшило и всё (до 9.2mA). Потом вычитал, что на DEV Kit плате меньше и не получить.
Но сейчас уже голый контроллер использую. Вообще без всяких плат. А дело никак не продвинулось.
Как в вас получается получать микроамперы в режиме сна?

b707
Offline
Зарегистрирован: 26.05.2017

выложите схему, как вы питаете контроллер

И скетч перехода в режим сна.

 

Weisnar
Weisnar аватар
Offline
Зарегистрирован: 19.07.2018

Схема типичная: +3.3V на VCC Arduino, минус на GND. В разрыв любого из клем помещается амперметр.

Скетч я вчера пробовал такой: 

#include "LowPower.h"
...
LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, 
                SPI_OFF, USART0_OFF, TWI_OFF);

И напомню, что он при засыпании потребляет 0,7-1,5мА (это без светодиодов и без стабилизаторов).

Но пока вам вчера писал, понял свою ошибку и сегодня использовал так:

#include "LowPower.h"
...
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);  

Кто будет читать и не в курсе, это пример библиотеки: https://github.com/rocketscream/Low-Power/blob/master/Examples/powerDownWakePeriodic/powerDownWakePeriodic.ino

И всё, что Atmega328, что DIP Atmega328P U - показывают 2-3мкА. Вот это я понимаю, энергопотребление. 

К сожалению, проверить сейчас потребление с целым стабилизатором пока не смогу, так как его уже выломал и на фото видно, что пришлось перемычкой (белым проводом) подводить питание к ножкам платы. Иначе не работало. Светодиод точно ест около 1мА, а сколько забирает стабилизатор (даже если его не используют) - не знаю. Проверю позже, когда на очередной Ардуино выковыряю индикатор питания.

 

b707
Offline
Зарегистрирован: 26.05.2017

нет ни малейшего смысла проверять со стабилизатором, он точно увеличит потребление платы даже не в разы - а на порядки. Если хотите малопотребляющий девайс - подключайте МК к источнику питания (батарейки, Li-ioh) напрямую.

Вообще, на будущее - лучше берите голую микросхему, без платы ардуино - тогда не надо будет удалять светодиоды и стаб :)

Weisnar
Weisnar аватар
Offline
Зарегистрирован: 19.07.2018

Спасибо. Имелось ввиду, не потребляет ли стабилизатор микроамперы просто присутствуя на плате. Подлючать через него - не планировалось. Проверить не могу, так как его уже выломал. Во всех предыдущих сообщениях, я привёл значения при подключении напрямую в VCC, не через сабилизатор (RAW).

На предыдущем фото плохо видно. Есть у меня "голая микросхема" Atmega328P-U и она спит в режиме 2-3мкА. И есть Atmega328 уже без сведодиода и стабилизатора . Она тоже теперь спит в режиме 2-3мкА.

Когда выпаивал-выламывал стабилизатор, видимо, повредил дорожки и VCC от платы тоже отпало. Пришлось подпаять его белым проводом от контактов, где раньше был стабилизатор. По этому, конечно, в будущем планируется покупать DIP корпуса.

На фото представлено подключение Атмеги в качестве программатора (ArduinoISP). Про внутренний кварц в DIP корпусе знаю. У меня с ним контроллер и работал. Но не мог долго подключить один датчик и подумал, что это может из-за кварца. Припаял внешний на 8мГц. Но дело было не в кварце, так что такое нагромождение не обязательно. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Weisnar пишет:

Спасибо. Имелось ввиду, не потребляет ли стабилизатор микроамперы просто присутствуя на плате. Подлючать через него - не планировалось. Проверить не могу, так как его уже выломал. Во всех предыдущих сообщениях, я привёл значения при подключении напрямую в VCC, не через сабилизатор (RAW).

Для того, чтобы узнать энерглпотребление стабилизатора, не обязательно впаивать его в плату.