Питание МК от лития, схема измерения напряжения батареи

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Всем привет
Имеется контроллер Atmega328 с питанием от литиевого аккумулятора через LowDrop стабилизатор 3.3В XC6202
В режиме сна контроллер с стабилизатором и радиомодулем NRF24 кушают порядка 18мкА - волне нормально.

Но вот как измерить напряжения на аккумуляторе, чтобы во время узнать разряд батареи до 3.5В ?
Напряжение VCC начинает падать при напряжении аккумулятора менее 3.3В
А все схемы с подачей напряжения на АЦП имеют большое потребление даже с выключенным АЦП в режиме сна (там ведь делитель, через который течет ток.

Посоветуйте схему измерения заряда батареи, не потребляющую ток во время сна контроллера

svm
Offline
Зарегистрирован: 06.11.2016

Без делителя все равно не получится, возьмите высокоомный - пару мегаом, все равно вход АЦП имеет гораздо большее входное сопротивление.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

sav13, а в чём необходимость питать МК через стабилизатор? Если это не делать, то все проблемы отпадут.

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

dimax пишет:

sav13, а в чём необходимость питать МК через стабилизатор? Если это не делать, то все проблемы отпадут.

Имеется периферия в виде NRF24L01+ довольно чувствительная к напряжению питания.
И можно было бы ее одну запитать от 3.3В, но вот беда, заметил, что если NRF-ка работает с локикой выше 3.3В, то через какое то время она начинает кушать ток в размере 1мА в режиме сна. Предпологаю, что накрываются транзисторы, переключающие выходы в высокоимпедансное состояние. Может быть у меня партия бракованных NRF-к конечно, но штук 5 теперь нормально в режим сна не уходят, вернее уходят, но много кушают даже при выключенном питании. Поработали чуть чуть от ардуины при питании 3.3В, но с логикой 5В

Гарантированно все работет, если давать логику 3.3В, а у AVR-ок она зависит от напряжения питания

А ставить перобразователем логики не хочется усложнять схему

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

svm пишет:

Без делителя все равно не получится, возьмите высокоомный - пару мегаом, все равно вход АЦП имеет гораздо большее входное сопротивление.

Там проблема, я как понимаю во входном сопротивлении. Рекомендуют сопротивления делителя менее 10кОм. Правда люди ставят высокоомный делитею и кондер на питание

Получается что-то вроде такой схемы

 

LodDrop читать как LowDrop )))

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

sav13 пишет:

 можно было бы ее одну запитать от 3.3В, но вот беда, заметил, что если NRF-ка работает с локикой выше 3.3В, то через какое то время она начинает кушать ток в размере 1мА в режиме сна.

У NRF официально ноги толеранты к 5 вольтам. Ну можно перестраховаться, и поджать уровень исходящих данных с мк резистором +стабилитроном.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Земляную ногу делителя оторвите от земли и повесте на ногу МК. Для измерения - преключаете ее на выход и в 0. Во сне делаете входом. Показания могут немного уползти, то решается программно. И и со входом АЦП, перед сном разбираетесь похожим образом.

Но вообще, c делителем из таких номиналов , АЦП может такой бред намерять, мало не покажется :)

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

dimax пишет:

sav13 пишет:

 можно было бы ее одну запитать от 3.3В, но вот беда, заметил, что если NRF-ка работает с локикой выше 3.3В, то через какое то время она начинает кушать ток в размере 1мА в режиме сна.

У NRF официально ноги толеранты к 5 вольтам. Ну можно перестраховаться, и поджать уровень исходящих данных с мк резистором +стабилитроном.

Я думал. Но поставить один стабилизатор мне показалось проще, чем 5 стабилитронов с резисторами или преобразователей уровней на MOSFET

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Разве дунька не способна измерять напряжение собственного питания? Там же есть вроде как даже детектор во фьюзах .. через него не получается? Не очень сильно вникал в задачу, если что..

svm
Offline
Зарегистрирован: 06.11.2016

brokly пишет:

Земляную ногу делителя оторвите от земли и повесте на ногу МК. Для измерения - преключаете ее на выход и в 0. Во сне делаете входом. Показания могут немного уползти, то решается программно. И и со входом АЦП, перед сном разбираетесь похожим образом.

Но вообще, c делителем из таких номиналов , АЦП может такой бред намерять, мало не покажется :)

В принципе решение хорошее, а насчет уползания показаний особенно беспокоться не стоит. Открытый ключ выхода ардуино имеет сопротивление 20 Ом и его легко учесть. Но и с делителем 300 кОм/1 МОм тоже большого криминала нет. Единственно что придется - более аккуратно отнестись к монтажу и тщательно отмыть флюс. Ну и для надежности можно лаком покрыть, чтобы от влияния влажности избавиться. 

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Может тогда так?
Во время измерения Adc0 - вход, DC0 - выход в состоянии LOW
Во время сна Adc0 и DC0 - вход без подтяжки (Hi-Z состояние)

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

А если питать Arduino напрямую от аккумулятора а NRF  стабилизатором ? 

Atmega может измерять напряжение своего питания без всяких делителей  внутренними средствами и не занимая пины.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Если надо отсекать фиксированное напряжение - то может проще поставить внешний компаратор, а выход завести на ардуино и настроить просыпание по этому сигналу.

Green
Offline
Зарегистрирован: 01.10.2015

А без аккумулятора никак? CR2032 не?

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016
svm
Offline
Зарегистрирован: 06.11.2016

Схема из 10 поста для Вашей проблемы - самое правильное решение, если ресурсов ардуины хватает.

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

asam пишет:

Если надо отсекать фиксированное напряжение - то может проще поставить внешний компаратор, а выход завести на ардуино и настроить просыпание по этому сигналу.

Писал выше, почему это не айс.
Кроме питания 3.3В неплохо бы еще и логику 3.3В. А ставить защиту или преобразование логического уровня на 5 каналов громоздко

Green пишет:

А без аккумулятора никак? CR2032 не?

Не.
NRF24 в режиме передачи кушает порядка 18мА. А Mysensors довольно долго передает данные, особенно при старте. CR2032 сразу проседает по напряжению. А ниже 2.4В либо NRF нормально работать перстает, либо сам контроллер (разве что на 1МГц уйти). 

Пробовал на CR2450. На свежей батарейке все хорошо. Но на вялой наблюдается похожая ситуация

Гораздо лучше ведут себя 2xAAA, но габариты получаются поболее. Хотя по цене лучше всего

Может потом код вылижу, попробую на батарейки перейти. Пока нужна стабильная работа для отладки всей системы

Green
Offline
Зарегистрирован: 01.10.2015

Со стабилизатором вы ограничиваете нижний порог питающего напряжения до 3,5 вольта. Тогда как аккумулятор можно разряжать вплоть до 2,5. 2032 лучше по всем параметрам. Кроме максимального тока.)
Специально для наркоманов.

Green
Offline
Зарегистрирован: 01.10.2015

sav13 пишет:
NRF24 в режиме передачи кушает порядка 18мА. А Mysensors довольно долго передает данные, особенно при старте. CR2032 сразу проседает по напряжению. А ниже 2.4В либо NRF нормально работать перстает, либо сам контроллер (разве что на 1МГц уйти). 

Пробовал на CR2450. На свежей батарейке все хорошо. Но на вялой наблюдается похожая ситуация

Гораздо лучше ведут себя 2xAAA, но габариты получаются поболее. Хотя по цене лучше всего

Ну да, у Вас всё определяется Mysensors. Потому что, если привязки нет то можно минимизировать времена приёма/передачи со всеми вытекающими. Я уже говорил где то. У меня на велосипедике 2 датчика на nrf24l01. Фирменные, Polar, неразборные. Один проработал 4 года, другой около 5-ти(!). При интенсивной эксплуатации! Потому и неразборные.) При вскрытии оказалось что там всего лишь 1632, ага! Правда в компе (приёмнике) редкостная CR2450, которой хватает всего на год/два. Но там много всего накручено. Вплоть до измерения уровня твоей тренированности.) 
nRf работает от 1,8 вольта. Как и Ардуино, если его настроить.)

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Green пишет:

Ну да, у Вас всё определяется Mysensors. Потому что, если привязки нет то можно минимизировать времена приёма/передачи со всеми вытекающими. Я уже говорил где то. У меня на велосипедике 2 датчика на nrf24l01. Фирменные, Polar, неразборные. Один проработал 4 года, другой около 5-ти(!). При интенсивной эксплуатации! Потому и неразборные.) При вскрытии оказалось что там всего лишь 1632, ага! Правда в компе (приёмнике) редкостная CR2450, которой хватает всего на год/два. Но там много всего накручено. Вплоть до измерения уровня твоей тренированности.) 

nRf работает от 1,8 вольта. Как и Ардуино, если его настроить.)

Согласен. Но преимущества Mysensors превышают пока все его недостатки - поддержка во многих системах умного дома "из коробки", поддержка адресации, бродкастов, ретрансляторов и прочих вкустностей готовых решений. Шифрование опять же можно прикруить и удаленную загрузку. А если NodeManager заюзать, так и вообще все с сервера конфигурится. Так что с издержками протокола борюсь пока как могу. Сейчас штук 20 датчиков работают на 2xAAA батарейках. Один из н х за окном. Правда суровая уральская зима заставила разориться на литивые AAA. Но пока не жалею.

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

sav13 пишет:

asam пишет:

Если надо отсекать фиксированное напряжение - то может проще поставить внешний компаратор, а выход завести на ардуино и настроить просыпание по этому сигналу.

Писал выше, почему это не айс.
Кроме питания 3.3В неплохо бы еще и логику 3.3В. А ставить защиту или преобразование логического уровня на 5 каналов громоздко

Вот сейчас вообще ничего не понял. Какие 5 каналов? И преобразовывать  ничего не надо. Достаточно токоограничивающего резистора. Схема приведенная выше имеет только ток утечки через резисторы 360мкА. Плюс еще надо регулярно мерять напряжение, что тоже добавляет расходов. А микромощные ОУ , например LPV потребляют всего пару микроампер.

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

sav13 пишет:

Может тогда так?
Во время измерения Adc0 - вход, DC0 - выход в состоянии LOW
Во время сна Adc0 и DC0 - вход без подтяжки (Hi-Z состояние)

Здесь явно несбалансированы номиналы: на r2 при измерении будет порядка 0.1 В. Если же имелось в виду 300к - это уже мнного. И еще: попытайтесть посчитать, сколько времени должно пройти в последнем случае между моментом подачи низкого уровня на D0 и измерением, чтобы его результату можно было доверять.

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

andriano пишет:

sav13 пишет:

Может тогда так?
Во время измерения Adc0 - вход, DC0 - выход в состоянии LOW
Во время сна Adc0 и DC0 - вход без подтяжки (Hi-Z состояние)

Здесь явно несбалансированы номиналы: на r2 при измерении будет порядка 0.1 В. Если же имелось в виду 300к - это уже мнного. И еще: попытайтесть посчитать, сколько времени должно пройти в последнем случае между моментом подачи низкого уровня на D0 и измерением, чтобы его результату можно было доверять.

Правильно R1 - 1К R2 - 300 ом (точнее 330)
Либо 10 и 3.3
При 4.2В на R2 падает чуть больше вольта
С внутренним ИОН 1.1В самое то

 

Green
Offline
Зарегистрирован: 01.10.2015

Мне кажется 4 резистора проще поставить, как вам советует asam, вместо делителя. И выиграете в долгоиграемости.

Green
Offline
Зарегистрирован: 01.10.2015

При 1К и 330 ом у вас делитель будет потреблять временами около 0,5 ма. Не сильная экономия получается.)