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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
SABRAT
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вт июн 24, 2008 17:17:08
Откуда: Киев

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

Сообщение SABRAT »

Подскажите пожалуйста методы снижения потребления тока мироконтроллером, в часности Tiny2313.
Мне известно, что нужно отключать неиспользуемую перефирию(АЦП, компаратор, и.т.д)
Про режимы пониженного энергопотребления мне тоже всё понятно.
Снижать частоту и напряжение питания, тоже понятно.
Остался вопрос по портам, в каком состоянии должны быть порты для наименшего потребления? Включать или отключать подтягивающие резисторы внутренние или испльзовать внешние и какого ниминала, куда подтягивать в + или -?
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

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

Сообщение 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 миллиампера.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
SABRAT
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вт июн 24, 2008 17:17:08
Откуда: Киев

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

Сообщение 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 а кнопка будет на+? я так понимаю тоже самое?
Аватара пользователя
Liv
Вымогатель припоя
Сообщения: 525
Зарегистрирован: Сб сен 20, 2008 12:12:30
Откуда: Minsk
Контактная информация:

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

Сообщение Liv »

SABRAT писал(а):Я так понимаю, что при нажатии кнопки подключённой к порту с подтягивающим резистором я таки получу потребление около 0,25 миллиампера? 0.25 миллиампера для моей задачи много.
Тогда выключите внутренний подтягивающий резистор и поставьте внешний нужного Вам номинала, например, 1 МОм.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

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

Сообщение O-LED »

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

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

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

зы. а что строим то?
KIT
Реклама
SABRAT
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вт июн 24, 2008 17:17:08
Откуда: Киев

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

Сообщение SABRAT »

O-LED писал(а):
зы. а что строим то?
Благодарю за ответы! Строю я счётчик наработки моточасов двигателя внутреннего сгорания, который имеет батарейное питание и должен на двух батарейках "пальчиковых" проработать хотябы год. Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.
Реклама
Аватара пользователя
Liv
Вымогатель припоя
Сообщения: 525
Зарегистрирован: Сб сен 20, 2008 12:12:30
Откуда: Minsk
Контактная информация:

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

Сообщение Liv »

1 МОм достаточно, чтобы перебороть утечки и задать на КМОП-входе определенный уровень. Конечно, чувствительность к наводкам будет высокая. Но применимость зависит от задачи.

Если кнопка просто должна пробуждать устройство, то перед засыпанием включить встроенную подтяжку, а как только проснется - переключить вход на вывод с нулем. Ток подтяжки при нажатии кнопки будет лишь кратковременный. Но если у кнопки есть еще какие-то функции, то можно ее опрашивать, кратковременно включая вывод на вход с подтяжкой.
SABRAT
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вт июн 24, 2008 17:17:08
Откуда: Киев

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

Сообщение SABRAT »

Liv писал(а):1 МОм достаточно, чтобы перебороть утечки и задать на КМОП-входе определенный уровень. Конечно, чувствительность к наводкам будет высокая. Но применимость зависит от задачи.
В том то и дело, что прибор будет находится в непосредственной близости от двигателя внутреннего сгорания, а там провода высоковольтные на свечи. Помеха круче некуда...
Аватара пользователя
Liv
Вымогатель припоя
Сообщения: 525
Зарегистрирован: Сб сен 20, 2008 12:12:30
Откуда: Minsk
Контактная информация:

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

Сообщение Liv »

Тогда всё должно быть низкоимпедансное. А потребление уменьшать скважностью.
stas00n
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

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

Сообщение stas00n »

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

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

Сообщение SABRAT »

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

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

Сообщение stas00n »

Ну, низкочастотный кварцевый генератор на одном транзисторе потребляет единицы микроампер. Хотя в принципе, если удастся получить 30 мкА @ 1 МГц в Stаndby режиме как нарисовано в даташите - этого хватит побольше чем на год, даже от 2-х элементов ААА.
Аватара пользователя
AlexFisher
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Вт апр 21, 2009 13:31:27
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение AlexFisher »

Может камень тогда более подходящий подобрать? Вот STM8L, скажем, в режиме слипа вообще несколько НАНОампер кушает. Вполне можно питать целый год од одной 3-х вольтовой батарейки.
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

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

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

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

Сообщение 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 мА - но это же редко и недолго.
Лучше смотрите, сколько будет кушать остальная часть схемы.
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

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

Сообщение Aheir »

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

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

Сообщение O-LED »

Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
а вы уверены в этом??? Дело в том, что небольшой потенциал присутствует даже когда вывод переключен в 0. и если его "наглухо" посадить на землю, то по идеи получим доп. потребление. Конечно мизерное, но мыже за мизер и воюем. Я думаю, просто вывести 0 будет правильнее.
KIT
Аватара пользователя
maglev
Потрогал лапой паяльник
Сообщения: 316
Зарегистрирован: Пт апр 17, 2009 22:45:42
Откуда: Minsk
Контактная информация:

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

Сообщение maglev »

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

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

Сообщение O-LED »

maglev Я знаю строение выходного каскада.
Если вы измерите ток между землей и выводом МК с 0, то ток не будет равен 0. Вот про этот ток я и говорил. И если автор повел разговор о микро и нано амперах, то ябы не советовал без явной надобности вывод с нулем сажать "наглухо" на землю.
KIT
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

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

Вернуться в «Микроконтроллеры и ПЛИС»