Методы снижения потребления тока микроконтроллером
Методы снижения потребления тока микроконтроллером
Подскажите пожалуйста методы снижения потребления тока мироконтроллером, в часности Tiny2313.
Мне известно, что нужно отключать неиспользуемую перефирию(АЦП, компаратор, и.т.д)
Про режимы пониженного энергопотребления мне тоже всё понятно.
Снижать частоту и напряжение питания, тоже понятно.
Остался вопрос по портам, в каком состоянии должны быть порты для наименшего потребления? Включать или отключать подтягивающие резисторы внутренние или испльзовать внешние и какого ниминала, куда подтягивать в + или -?
Мне известно, что нужно отключать неиспользуемую перефирию(АЦП, компаратор, и.т.д)
Про режимы пониженного энергопотребления мне тоже всё понятно.
Снижать частоту и напряжение питания, тоже понятно.
Остался вопрос по портам, в каком состоянии должны быть порты для наименшего потребления? Включать или отключать подтягивающие резисторы внутренние или испльзовать внешние и какого ниминала, куда подтягивать в + или -?
- Реклама
Re: Методы снижения потребления тока микроконтроллером
Включение подтягивающих резисторов рекомендуется для устранения "плавания" входов, в результате которого могут возникать "левые" переключения логики на входах. Причём переключения могут быть периодические, например наводки от сети 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 миллиампера.
А по поводу куда и чем подтягивать незадействованные входа - смотрим спецификацию:
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 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
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 миллиампера.
Я так понимаю, что при нажатии кнопки подключённой к порту с подтягивающим резистором я таки получу потребление около 0,25 миллиампера? 0.25 миллиампера для моей задачи много. Что будет если я порт подятну в 0 а кнопка будет на+? я так понимаю тоже самое?
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Методы снижения потребления тока микроконтроллером
Тогда выключите внутренний подтягивающий резистор и поставьте внешний нужного Вам номинала, например, 1 МОм.SABRAT писал(а):Я так понимаю, что при нажатии кнопки подключённой к порту с подтягивающим резистором я таки получу потребление около 0,25 миллиампера? 0.25 миллиампера для моей задачи много.
Re: Методы снижения потребления тока микроконтроллером
я недавно решал подобную задачу, и "бился за каждый микроампер"
Если выводы вообще не используются, то с одинаковым результатом были след варианты (мега16А)
1. вывод - выход с низким уровнем
2. вывод - вход с внутренней подтяжкой
3. вывод - вход(Z) с подтяжкой внешним резистором на землюю(ставил 10к)
Если у вас кнопки на выводе, и они должны пробуждать контроллер, то вариант только с внутренней подтяжкой. Внешняя подтяжка резистором большего сопротивления чем встроенный - опасно, потому что, часто даже со встроенными ловятся помехи(особенно на Тини, у мег с этим получше). Если кнопки не учавствуют в пробуждении, то перед усыплением сделайте эти выводы - выходами с низким уровнем, и не бойтесь ни случайных нажатий, ни переключений входа от наводок. а как контроллер проснется - снова сконфигурируйте эти выводы как вам нужно.
Liv боюсь 1мом - что есть, что нет, без разницы будет. вон например в тини 2313 вроде 100ком, так что с ним, что без него - разница не большая, прикосновения пальца к выводу ловит только в путь
а у меги вроде 35к, работает приемлемо
зы. а что строим то?
Если выводы вообще не используются, то с одинаковым результатом были след варианты (мега16А)
1. вывод - выход с низким уровнем
2. вывод - вход с внутренней подтяжкой
3. вывод - вход(Z) с подтяжкой внешним резистором на землюю(ставил 10к)
Если у вас кнопки на выводе, и они должны пробуждать контроллер, то вариант только с внутренней подтяжкой. Внешняя подтяжка резистором большего сопротивления чем встроенный - опасно, потому что, часто даже со встроенными ловятся помехи(особенно на Тини, у мег с этим получше). Если кнопки не учавствуют в пробуждении, то перед усыплением сделайте эти выводы - выходами с низким уровнем, и не бойтесь ни случайных нажатий, ни переключений входа от наводок. а как контроллер проснется - снова сконфигурируйте эти выводы как вам нужно.
Liv боюсь 1мом - что есть, что нет, без разницы будет. вон например в тини 2313 вроде 100ком, так что с ним, что без него - разница не большая, прикосновения пальца к выводу ловит только в путь
зы. а что строим то?
KIT
- Реклама
Re: Методы снижения потребления тока микроконтроллером
Благодарю за ответы! Строю я счётчик наработки моточасов двигателя внутреннего сгорания, который имеет батарейное питание и должен на двух батарейках "пальчиковых" проработать хотябы год. Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.O-LED писал(а):
зы. а что строим то?
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Методы снижения потребления тока микроконтроллером
1 МОм достаточно, чтобы перебороть утечки и задать на КМОП-входе определенный уровень. Конечно, чувствительность к наводкам будет высокая. Но применимость зависит от задачи.
Если кнопка просто должна пробуждать устройство, то перед засыпанием включить встроенную подтяжку, а как только проснется - переключить вход на вывод с нулем. Ток подтяжки при нажатии кнопки будет лишь кратковременный. Но если у кнопки есть еще какие-то функции, то можно ее опрашивать, кратковременно включая вывод на вход с подтяжкой.
Если кнопка просто должна пробуждать устройство, то перед засыпанием включить встроенную подтяжку, а как только проснется - переключить вход на вывод с нулем. Ток подтяжки при нажатии кнопки будет лишь кратковременный. Но если у кнопки есть еще какие-то функции, то можно ее опрашивать, кратковременно включая вывод на вход с подтяжкой.
Re: Методы снижения потребления тока микроконтроллером
В том то и дело, что прибор будет находится в непосредственной близости от двигателя внутреннего сгорания, а там провода высоковольтные на свечи. Помеха круче некуда...Liv писал(а):1 МОм достаточно, чтобы перебороть утечки и задать на КМОП-входе определенный уровень. Конечно, чувствительность к наводкам будет высокая. Но применимость зависит от задачи.
- Liv
- Вымогатель припоя
- Сообщения: 525
- Зарегистрирован: Сб сен 20, 2008 12:12:30
- Откуда: Minsk
- Контактная информация:
Re: Методы снижения потребления тока микроконтроллером
Тогда всё должно быть низкоимпедансное. А потребление уменьшать скважностью.
Re: Методы снижения потребления тока микроконтроллером
А ДВС исключительно вручную заводится или таки есть батарея? Если батарея присутствует, не вижу смысла особо экономить. Единственное - предусмотреть резервное питание типа CR2032 на случай отключения основной батареи. Когда движка не работает, контроллер в полный дип-слип режим, потребление должно быть мизерное. Не знаю правда как с этим у tiny2313.SABRAT писал(а): Благодарю за ответы! Строю я счётчик наработки моточасов двигателя внутреннего сгорания, который имеет батарейное питание и должен на двух батарейках "пальчиковых" проработать хотябы год.
А 32 кГц не хватит? По-моему для такой тривиальной задачи - за глаза и за уши. Тактируй часовым кварцем - и время считать удобней, и потребление ниже. Если все же нужна временами высокая производительность - используй внутренний RC-генератор для режима вычислений, а 32 кГц кварцем тактировать таймер 1, который будет считать время и будить контроллер своим прерыванием.SABRAT писал(а): Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.
Re: Методы снижения потребления тока микроконтроллером
Это подвесные лодочные двигатели, в них зачастую даже генератора нет, не то что акб. Тактировать от кварца 32768 можно, но в этом случае нужно городить внешний генератор, на прямую от кварца не заводится. Генератор отдельно делать не хочется, так как он тоже ток потребляет.stas00n писал(а): А ДВС исключительно вручную заводится или таки есть батарея? Если батарея присутствует, не вижу смысла особо экономить. Единственное - предусмотреть резервное питание типа CR2032 на случай отключения основной батареи. Когда движка не работает, контроллер в полный дип-слип режим, потребление должно быть мизерное. Не знаю правда как с этим у tiny2313.А 32 кГц не хватит? По-моему для такой тривиальной задачи - за глаза и за уши. Тактируй часовым кварцем - и время считать удобней, и потребление ниже. Если все же нужна временами высокая производительность - используй внутренний RC-генератор для режима вычислений, а 32 кГц кварцем тактировать таймер 1, который будет считать время и будить контроллер своим прерыванием.SABRAT писал(а): Использую Attiny2313 на частоте 1Мгц и дисплей TIC5234.
Re: Методы снижения потребления тока микроконтроллером
Ну, низкочастотный кварцевый генератор на одном транзисторе потребляет единицы микроампер. Хотя в принципе, если удастся получить 30 мкА @ 1 МГц в Stаndby режиме как нарисовано в даташите - этого хватит побольше чем на год, даже от 2-х элементов ААА.
- AlexFisher
- Мучитель микросхем
- Сообщения: 493
- Зарегистрирован: Вт апр 21, 2009 13:31:27
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Методы снижения потребления тока микроконтроллером
Может камень тогда более подходящий подобрать? Вот STM8L, скажем, в режиме слипа вообще несколько НАНОампер кушает. Вполне можно питать целый год од одной 3-х вольтовой батарейки.
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
- КРАМ
- Друг Кота
- Сообщения: 25277
- Зарегистрирован: Чт янв 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: Методы снижения потребления тока микроконтроллером
Из даташита на tiny2313:
Лучше смотрите, сколько будет кушать остальная часть схемы.
То есть 100 наноампер в ждущем режиме максимум. Можно ставить литиевую батарейку и не заморачиваться. Ну при работе на 4-х мегагерцах будет кушать 1 мА - но это же редко и недолго.Active mode:
1MHc, 1.8V - 230uA
32kHc, 1.8V - 20uA (including oscillator)
Power-downe Mode:
<0.1 uA at 1.8V
Лучше смотрите, сколько будет кушать остальная часть схемы.
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
Re: Методы снижения потребления тока микроконтроллером
Микроампер - это много. Часто дейсвительно бьешся за них.Kavka писал(а):Input Leakage Current per I/O Pin (VCC = 5.5V), MAXIMUM (absolute value) 1 μA - 1 микроампер МАКСИМУМ
Ещё что надо?
Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
Кстати, напряжение питания снижать надо, а вот частоту - не стоит. Если посчитать, то при работе на более низкой частоте МК тратит больше энергии за счет увеличения времени работы, чем при более высокой частоте. По крайней мере, AVR.
Оптимизм х (Опыт + Знания) = const
Re: Методы снижения потребления тока микроконтроллером
а вы уверены в этом??? Дело в том, что небольшой потенциал присутствует даже когда вывод переключен в 0. и если его "наглухо" посадить на землю, то по идеи получим доп. потребление. Конечно мизерное, но мыже за мизер и воюем. Я думаю, просто вывести 0 будет правильнее.Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
KIT
- maglev
- Потрогал лапой паяльник
- Сообщения: 316
- Зарегистрирован: Пт апр 17, 2009 22:45:42
- Откуда: Minsk
- Контактная информация:
Re: Методы снижения потребления тока микроконтроллером
Нет там потенциала, кроме утечки закрытого верхнего полевика (нижний при этом открыт) - посмотри схему выходного каскада. Утечка эта настолько мала, что на дорожках от батарейки больше теряем.O-LED писал(а):а вы уверены в этом??? Дело в том, что небольшой потенциал присутствует даже когда вывод переключен в 0. и если его "наглухо" посадить на землю, то по идеи получим доп. потребление. Конечно мизерное, но мыже за мизер и воюем. Я думаю, просто вывести 0 будет правильнее.Если вывод вообще никак не используется - сделать его выходом лог. 0 и заземлить наглухо.
А вот заземлять-ли его - не вижу разницы, кроме наводок. Если рядом вход АЦП, теоретически полезно иметь рядом заземленный вывод, но для AVR это не влияет.
Re: Методы снижения потребления тока микроконтроллером
maglev Я знаю строение выходного каскада.
Если вы измерите ток между землей и выводом МК с 0, то ток не будет равен 0. Вот про этот ток я и говорил. И если автор повел разговор о микро и нано амперах, то ябы не советовал без явной надобности вывод с нулем сажать "наглухо" на землю.
Если вы измерите ток между землей и выводом МК с 0, то ток не будет равен 0. Вот про этот ток я и говорил. И если автор повел разговор о микро и нано амперах, то ябы не советовал без явной надобности вывод с нулем сажать "наглухо" на землю.
KIT
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: Методы снижения потребления тока микроконтроллером
по поводу портов в/в мне кажется либо подключать к питанию напрямую (либо к + либо к -) ножку порта настроенную на вход, либо оставлять свободной ножку настроенную на выход.
вариант с подключением ножки настроенной на выход к питанию отметаю, поскольку в даташите в электрических характеристиках контроллера написано что минимальное напряжение лог. "1" на выходе равно 4.2 Вольта, что по-сути допустимо для всех CMOS микросхем, но недопустимо в условиях минимального потребления (аналогично лог."0" максимум 0.7 Вольта) при замыкании на питание потечет нехилый (в рассматриваемом случае) ток.
вариант с подключением ножки настроенной на выход к питанию отметаю, поскольку в даташите в электрических характеристиках контроллера написано что минимальное напряжение лог. "1" на выходе равно 4.2 Вольта, что по-сути допустимо для всех CMOS микросхем, но недопустимо в условиях минимального потребления (аналогично лог."0" максимум 0.7 Вольта) при замыкании на питание потечет нехилый (в рассматриваемом случае) ток.
Ставим плюсы: )


