Страница 1 из 2

Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 13:10:49
SABRAT
Подскажите пожалуйста методы снижения потребления тока мироконтроллером, в часности Tiny2313.
Мне известно, что нужно отключать неиспользуемую перефирию(АЦП, компаратор, и.т.д)
Про режимы пониженного энергопотребления мне тоже всё понятно.
Снижать частоту и напряжение питания, тоже понятно.
Остался вопрос по портам, в каком состоянии должны быть порты для наименшего потребления? Включать или отключать подтягивающие резисторы внутренние или испльзовать внешние и какого ниминала, куда подтягивать в + или -?

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 13:40:27
Kavka
Включение подтягивающих резисторов рекомендуется для устранения "плавания" входов, в результате которого могут возникать "левые" переключения логики на входах. Причём переключения могут быть периодические, например наводки от сети 50/100Гц. А каждое переключение ест электричество. Т.е. чем меньше переключений - тем меньше потребляется энергии.
А по поводу куда и чем подтягивать незадействованные входа - смотрим спецификацию:
Input Leakage Current per I/O Pin (VCC = 5.5V), MAXIMUM (absolute value) 1 μA - 1 микроампер МАКСИМУМ
Ещё что надо? :))

Добавил через пару минут...
Опять же, смотрим спецификацию:
Rpu I/O Pin Pull-up Resistor 20-50 kΩ
Даже если ты при включенном внетреннем резисторе подтяжки устроишь к.з. на землю, то ток будет не более 0.25 миллиампера.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 13:55:48
SABRAT
Kavka писал(а):Включение подтягивающих резисторов рекомендуется для устранения "плавания" входов, в результате которого могут возникать "левые" переключения логики на входах. Причём переключения могут быть периодические, например наводки от сети 50/100Гц. А каждое переключение ест электричество. Т.е. чем меньше переключений - тем меньше потребляется энергии.
А по поводу куда и чем подтягивать незадействованные входа - смотрим спецификацию:
Input Leakage Current per I/O Pin (VCC = 5.5V), MAXIMUM (absolute value) 1 μA - 1 микроампер МАКСИМУМ
Ещё что надо? :))

Добавил через пару минут...
Опять же, смотрим спецификацию:
Rpu I/O Pin Pull-up Resistor 20-50 kΩ
Даже если ты при включенном внетреннем резисторе подтяжки устроишь к.з. на землю, то ток будет не более 0.25 миллиампера.

Я так понимаю, что при нажатии кнопки подключённой к порту с подтягивающим резистором я таки получу потребление около 0,25 миллиампера? 0.25 миллиампера для моей задачи много. Что будет если я порт подятну в 0 а кнопка будет на+? я так понимаю тоже самое?

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 14:19:49
Liv
SABRAT писал(а):Я так понимаю, что при нажатии кнопки подключённой к порту с подтягивающим резистором я таки получу потребление около 0,25 миллиампера? 0.25 миллиампера для моей задачи много.
Тогда выключите внутренний подтягивающий резистор и поставьте внешний нужного Вам номинала, например, 1 МОм.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 15:18:09
O-LED
я недавно решал подобную задачу, и "бился за каждый микроампер"
Если выводы вообще не используются, то с одинаковым результатом были след варианты (мега16А)
1. вывод - выход с низким уровнем
2. вывод - вход с внутренней подтяжкой
3. вывод - вход(Z) с подтяжкой внешним резистором на землюю(ставил 10к)

Если у вас кнопки на выводе, и они должны пробуждать контроллер, то вариант только с внутренней подтяжкой. Внешняя подтяжка резистором большего сопротивления чем встроенный - опасно, потому что, часто даже со встроенными ловятся помехи(особенно на Тини, у мег с этим получше). Если кнопки не учавствуют в пробуждении, то перед усыплением сделайте эти выводы - выходами с низким уровнем, и не бойтесь ни случайных нажатий, ни переключений входа от наводок. а как контроллер проснется - снова сконфигурируйте эти выводы как вам нужно.

Liv боюсь 1мом - что есть, что нет, без разницы будет. вон например в тини 2313 вроде 100ком, так что с ним, что без него - разница не большая, прикосновения пальца к выводу ловит только в путь :)) а у меги вроде 35к, работает приемлемо

зы. а что строим то?

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 16:08:42
SABRAT
O-LED писал(а):
зы. а что строим то?
Благодарю за ответы! Строю я счётчик наработки моточасов двигателя внутреннего сгорания, который имеет батарейное питание и должен на двух батарейках "пальчиковых" проработать хотябы год. Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 16:43:44
Liv
1 МОм достаточно, чтобы перебороть утечки и задать на КМОП-входе определенный уровень. Конечно, чувствительность к наводкам будет высокая. Но применимость зависит от задачи.

Если кнопка просто должна пробуждать устройство, то перед засыпанием включить встроенную подтяжку, а как только проснется - переключить вход на вывод с нулем. Ток подтяжки при нажатии кнопки будет лишь кратковременный. Но если у кнопки есть еще какие-то функции, то можно ее опрашивать, кратковременно включая вывод на вход с подтяжкой.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 16:52:36
SABRAT
Liv писал(а):1 МОм достаточно, чтобы перебороть утечки и задать на КМОП-входе определенный уровень. Конечно, чувствительность к наводкам будет высокая. Но применимость зависит от задачи.
В том то и дело, что прибор будет находится в непосредственной близости от двигателя внутреннего сгорания, а там провода высоковольтные на свечи. Помеха круче некуда...

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 15, 2010 16:55:52
Liv
Тогда всё должно быть низкоимпедансное. А потребление уменьшать скважностью.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Чт дек 16, 2010 00:03:33
stas00n
SABRAT писал(а): Благодарю за ответы! Строю я счётчик наработки моточасов двигателя внутреннего сгорания, который имеет батарейное питание и должен на двух батарейках "пальчиковых" проработать хотябы год.
А ДВС исключительно вручную заводится или таки есть батарея? Если батарея присутствует, не вижу смысла особо экономить. Единственное - предусмотреть резервное питание типа CR2032 на случай отключения основной батареи. Когда движка не работает, контроллер в полный дип-слип режим, потребление должно быть мизерное. Не знаю правда как с этим у tiny2313.
SABRAT писал(а): Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.
А 32 кГц не хватит? По-моему для такой тривиальной задачи - за глаза и за уши. Тактируй часовым кварцем - и время считать удобней, и потребление ниже. Если все же нужна временами высокая производительность - используй внутренний RC-генератор для режима вычислений, а 32 кГц кварцем тактировать таймер 1, который будет считать время и будить контроллер своим прерыванием.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Чт дек 16, 2010 11:07:32
SABRAT
stas00n писал(а): А ДВС исключительно вручную заводится или таки есть батарея? Если батарея присутствует, не вижу смысла особо экономить. Единственное - предусмотреть резервное питание типа CR2032 на случай отключения основной батареи. Когда движка не работает, контроллер в полный дип-слип режим, потребление должно быть мизерное. Не знаю правда как с этим у tiny2313.
SABRAT писал(а): Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.
А 32 кГц не хватит? По-моему для такой тривиальной задачи - за глаза и за уши. Тактируй часовым кварцем - и время считать удобней, и потребление ниже. Если все же нужна временами высокая производительность - используй внутренний RC-генератор для режима вычислений, а 32 кГц кварцем тактировать таймер 1, который будет считать время и будить контроллер своим прерыванием.
Это подвесные лодочные двигатели, в них зачастую даже генератора нет, не то что акб. Тактировать от кварца 32768 можно, но в этом случае нужно городить внешний генератор, на прямую от кварца не заводится. Генератор отдельно делать не хочется, так как он тоже ток потребляет.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Чт дек 16, 2010 21:53:21
stas00n
Ну, низкочастотный кварцевый генератор на одном транзисторе потребляет единицы микроампер. Хотя в принципе, если удастся получить 30 мкА @ 1 МГц в Stаndby режиме как нарисовано в даташите - этого хватит побольше чем на год, даже от 2-х элементов ААА.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Пт дек 17, 2010 13:25:24
AlexFisher
Может камень тогда более подходящий подобрать? Вот STM8L, скажем, в режиме слипа вообще несколько НАНОампер кушает. Вполне можно питать целый год од одной 3-х вольтовой батарейки.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Пт дек 17, 2010 13:49:16
КРАМ
AlexFisher писал(а):Может камень тогда более подходящий подобрать? Вот STM8L, скажем, в режиме слипа вообще несколько НАНОампер кушает. Вполне можно питать целый год од одной 3-х вольтовой батарейки.
А посчитать? :)

3-х вольтовый дисковый литий имеет емкость 45 мач. Примем, что до минимально рабочего напряжения для МК элемент провалится за 30 мач. Значит при потреблении в 1 МИКРОампер элемент продержится 30 000 часов. Делим на 24. Получаем 1250 дней. Делим на 365. Получаем 3,5 года...
Так о чем же этот "фильм"? Да ни о чем...
Саморазряд элемента определит срок его службы. Бороться за токи менее 1 мка при питании от таких элементов (об алкалайне в типоразмере ААА или АА я вообще молчу, там емкость 1500...4000 мач) просто глупо...
:))

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Пт дек 17, 2010 14:13:10
AlexFisher
Из даташита на tiny2313:
Active mode:
1MHc, 1.8V - 230uA
32kHc, 1.8V - 20uA (including oscillator)
Power-downe Mode:
<0.1 uA at 1.8V
То есть 100 наноампер в ждущем режиме максимум. Можно ставить литиевую батарейку и не заморачиваться. Ну при работе на 4-х мегагерцах будет кушать 1 мА - но это же редко и недолго.
Лучше смотрите, сколько будет кушать остальная часть схемы.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Вт дек 21, 2010 21:21:18
Aheir
Kavka писал(а):Input Leakage Current per I/O Pin (VCC = 5.5V), MAXIMUM (absolute value) 1 μA - 1 микроампер МАКСИМУМ
Ещё что надо? :))
Микроампер - это много. Часто дейсвительно бьешся за них.
Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
Кстати, напряжение питания снижать надо, а вот частоту - не стоит. Если посчитать, то при работе на более низкой частоте МК тратит больше энергии за счет увеличения времени работы, чем при более высокой частоте. По крайней мере, AVR.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Вт дек 21, 2010 22:12:14
O-LED
Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
а вы уверены в этом??? Дело в том, что небольшой потенциал присутствует даже когда вывод переключен в 0. и если его "наглухо" посадить на землю, то по идеи получим доп. потребление. Конечно мизерное, но мыже за мизер и воюем. Я думаю, просто вывести 0 будет правильнее.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Вт дек 21, 2010 22:46:21
maglev
O-LED писал(а):
Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
а вы уверены в этом??? Дело в том, что небольшой потенциал присутствует даже когда вывод переключен в 0. и если его "наглухо" посадить на землю, то по идеи получим доп. потребление. Конечно мизерное, но мыже за мизер и воюем. Я думаю, просто вывести 0 будет правильнее.
Нет там потенциала, кроме утечки закрытого верхнего полевика (нижний при этом открыт) - посмотри схему выходного каскада. Утечка эта настолько мала, что на дорожках от батарейки больше теряем.
А вот заземлять-ли его - не вижу разницы, кроме наводок. Если рядом вход АЦП, теоретически полезно иметь рядом заземленный вывод, но для AVR это не влияет.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Вт дек 21, 2010 23:57:34
O-LED
maglev Я знаю строение выходного каскада.
Если вы измерите ток между землей и выводом МК с 0, то ток не будет равен 0. Вот про этот ток я и говорил. И если автор повел разговор о микро и нано амперах, то ябы не советовал без явной надобности вывод с нулем сажать "наглухо" на землю.

Re: Методы снижения потребления тока микроконтроллером

Добавлено: Ср дек 22, 2010 00:15:28
ibiza11
по поводу портов в/в мне кажется либо подключать к питанию напрямую (либо к + либо к -) ножку порта настроенную на вход, либо оставлять свободной ножку настроенную на выход.
вариант с подключением ножки настроенной на выход к питанию отметаю, поскольку в даташите в электрических характеристиках контроллера написано что минимальное напряжение лог. "1" на выходе равно 4.2 Вольта, что по-сути допустимо для всех CMOS микросхем, но недопустимо в условиях минимального потребления (аналогично лог."0" максимум 0.7 Вольта) при замыкании на питание потечет нехилый (в рассматриваемом случае) ток.