Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: минимальное энергопотребление
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
marcinio
Думаю, что тема уже обсуждалась, но не знал, что писать в поиске...
Как должны быть сконфигурированы биты DDRx, PORTx, чтобы было минимальное энергопотребление в активном и в спящем режиме? smile.gif
Также интересует - выгодно ли мне использовать power-save mode, если МК каждую секунду работает только 25х100 тактов при 1MHz? Каждую секунду 100 одинаковых кадров, каждий 25 тактов -обработывание данных, а потом МК "спит" до начала следущего кадра -
1 000 000/100-25 - столько тактов в каждом кадре мог бы МК отдохнуть. Что вы думаете?
DASM
Да вобщем-то главное чтобы не на вход с одновременным висением в воздухе - иначе Шмидты внутренние кушать начнут. Хотя может у АВР немного иначе, когда сейчас током потребления пришлось самому заняться - процики стали 51-го семейства. Вобщем лучше на выход. Или на вход и обязательно заземлить.
singlskv
Цитата(marcinio @ Oct 25 2007, 22:29) *
Как должны быть сконфигурированы биты DDRx, PORTx, чтобы было минимальное энергопотребление в активном и в спящем режиме? smile.gif
Или вход с подтяжкой или любой выход, зависит еще от того, как Вы будете просыпаться.
Цитата
Также интересует - выгодно ли мне использовать power-save mode, если МК каждую секунду работает только 25х100 тактов при 1MHz? Каждую секунду 100 одинаковых кадров, каждий 25 тактов -обработывание данных, а потом МК "спит" до начала следущего кадра -
1 000 000/100-25 - столько тактов в каждом кадре мог бы МК отдохнуть. Что вы думаете?

Все это очень сильно зависит от того откуда у Вас приходит тактовая 1MHz для MCU.
Обратите внимание на следующие таблички в даташите:
Start-up Times for the Crystal Oscillator Clock Selection
Start-up Times for the Low-frequency Crystal Oscillator Clock Selection
Start-up Times for the External RC Oscillator Clock Selection
......

Там есть такая графа:
Start-up Time from
Power-down and
Power-save


Ну и так же неплохо бы узнать какой у Вас контроллер...
rezident
Неиспользуемые пины лучше никуда не подключать и сконфигурировать как выходы с выдачей лог "0".
DASM
Ну вобщем да.. Хотя чем хуже подключить и на вход хуже - не очень понимаю. Разве что проги аккуратнее писать надо будет, чтобы по дури на выход и не загнать
marcinio
Цитата
Разве что проги аккуратнее писать надо будет

стараюсь! smile.gif

Цитата
Ну и так же неплохо бы узнать какой у Вас контроллер...

Atmega48
singlskv
Цитата(rezident @ Oct 25 2007, 23:45) *
Неиспользуемые пины лучше никуда не подключать
Это точно, во избежании smile3009.gif , лучше не подключать,
разьве что еще внешний пулап может быть...
Цитата
и сконфигурировать как выходы с выдачей лог "0".
Объясните почему именно "0" а не "1" и почему вход c пулапом хуже ?
Цитата(marcinio @ Oct 26 2007, 00:02) *
Atmega48

то что m48 это конечно хорошо,
а 1Mhz то, Вы таки откуда получаете ?
marcinio
Цитата
а 1Mhz то, Вы таки откуда получаете ?


By default, the Internal RC OScillator provides an approximate 8.0 MHz clock. Though voltage
and temperature dependent, this clock can be very accurately calibrated by the user. The device
is shipped with the CKDIV8 Fuse programmed.

прямо из датащита smile.gif
Internal RC OScillator wink.gif
DASM
Пуалапы дохлые довольно, а помехи бывают сильные... лучше не надеяться на них
singlskv
Цитата(marcinio @ Oct 26 2007, 00:29) *
прямо из датащита smile.gif
Internal RC OScillator wink.gif

Если внутренний RC то тогда PowerSave несомненно сэкономит вам кучу заряда батареи.

P.S. Только вот Ваш изначальный TTX (100 раз в секунду и по 25 тактов) почему-то мне
подсказывает что это RTC с разрешением 0,01c ?
Если это так, то RC генератор Вам явно не подходит.
Хотя может быть мне просто показалось...

P.P.S Если хотите дельных советов, описывайте задачку поконкретнее.


Цитата(DASM @ Oct 26 2007, 00:36) *
Пуалапы дохлые довольно, а помехи бывают сильные... лучше не надеяться на них
И какая разница для неиспользуемых пинов ?
Или помехи будут такие что на пине все время будет около 0,5*V ?
Не хотел бы я со своим батарейным девайсом оказаться в таком месте smile.gif
marcinio
Цитата
P.S. Только вот Ваш изначальный TTX (100 раз в секунду и по 25 тактов) почему-то мне
подсказывает что это RTC с разрешением 0,01c ?
Если это так, то RC генератор Вам явно не подходит.
Хотя может быть мне просто показалось...

P.P.S Если хотите дельных советов, описывайте задачку поконкретнее.


Не не - КОНкретнее о проекте (мне нежалко smile.gif ) - это просто устройство с 2 индикаторами (динамичная индикация). Так вот чтобы была эта индикация, нужны эти кадры. А устройство должно работать круглыми годами, потому и хочеться найти самый энергосберегающий вариант.
Кстати - это не часики, а термометр с терморегуляцией.
DASM
Цитата(singlskv @ Oct 26 2007, 00:44) *
Если внутренний RC то тогда PowerSave несомненно сэкономит вам кучу заряда батареи.

И какая разница для неиспользуемых пинов ?
Или помехи будут такие что на пине все время будет около 0,5*V ?
Не хотел бы я со своим батарейным девайсом оказаться в таком месте smile.gif

Ну имхо тиристорное защелкивание не отменено до сих пор, да и помеха лучше думаю открытым полевиком заблокировать а не пускать дальше по кристаллу. Но, признаюсь, в ЭМС не силен, так что послушаем более опытных товарищей
singlskv
Цитата(DASM @ Oct 26 2007, 01:04) *
Но, признаюсь, в ЭМС не силен, так что послушаем более опытных товарищей
Тоже признаюсь, в ЭМС не силен, ждем более опытных товарищей...
Цитата
Ну имхо тиристорное защелкивание не отменено до сих пор, да и помеха лучше думаю открытым полевиком заблокировать а не пускать дальше по кристаллу.
Не понимаю как у нас может что-то куда-то защелкнутся когда мы вход с пулапом.
DASM
Причем тут вход ? А диоды защитные ? Наверняка образует паразитные структуры с чем нить еще.

Fujitsu вообще пишет "Do not connect any input ports directly to VCC or VSS (GND)! Always use pull up or down
resistors (2k … 4k Ohms)." . Так что неправ я вплане прямого коннекта. Щас надо еще почитать почему так laughing.gif

Моторола вторит в такт, кстати неплохая апнота по EMC http://www.freescale.com/files/microcontro...note/AN1741.pdf
Мотроле в плане EMC склоне верить - надежная контора. Как и резидент она советует конфигурировать
Цитата
It is, therefore, recommended
that unused pins should be left unconnected and configured as outputs
which are driven by the software to the VSS supply.
NOTE: Avoid leaving unused or unconnected pins configured as inputs."
singlskv
Цитата(DASM @ Oct 26 2007, 01:52) *
Причем тут вход ? А диоды защитные ? Наверняка образует паразитные структуры с чем нить еще.

Fujitsu вообще пишет "Do not connect any input ports directly to VCC or VSS (GND)! Always use pull up or down
resistors (2k … 4k Ohms)." . Так что неправ я вплане прямого коннекта. Щас надо еще почитать почему так laughing.gif
Ну вот как раз fujitsu говорит о пулап/пулдаун
Цитата
Моторола вторит в такт, кстати неплохая апнота по EMC http://www.freescale.com/files/microcontro...note/AN1741.pdf
Мотроле в плане EMC склоне верить - надежная контора. Как и резидент она советует конфигурировать
А моторолла говорит о том что нельзя оставлять висеть вывод, и рекомендует
выход к "0", но почему непонятно.

ИМХО, самое надежное в любом варианте это внешний пулап/пулдаун
т.к. он начинает работать еще до конфигурирования портов проца.
DASM
Это уже паранойя smile.gif
rezident
Внешний pull-up/pull-down нужен в том случае, если к пину подключено какое-то внешнее устройство (микросхема там или транзистор не суть) и важен какой-то определенный логический уровень на данном пине, до того момента как ему назначена функция (прошла инициализация). Или в случае если инициализация вообще не прошла и работа МК заблокирована - понизилось питание и сработал супервизор, не запустился кварц, произошел программный сбой и МК завис/реинициализировался и т.п. Если по-умолчанию пины находятся в Z-состоянии или работают как входы, то pull-up/pull-down могут обеспечить требуемый для безопасной остальной части схемы логический уровень.
В случае же если пин не используется вообще, то лучше назначить ему функцию выхода и вывести логический ноль. Почему ноль? Для того, чтобы в случае чего отвести помеху на землю, а не в питание. Эта рекомендация не полностью согласуется с оптимальным энергосбережением в случае, если выход не пуш-пульный и выполнен по CMOS-технологии, а, например, с открытым стоком и встроенным pull-up, как в некоторых 51х. Или в функции пина вообще не предусмотрена его работа как логического выхода.
Так что совет мой не совсем универсальный и применять его нужно в совокупности с детальным рассмотрением архитектуры конкретного микроконтроллера и функциональности его выводов.

В дополнение см. рекомендации по применению в энергосберегающих режимах и подключению неиспользуемых выводов (Таблица 2.2) для MSP430 . http://www.gaw.ru/html.cgi/txt/doc/micros/msp430/arh/2.htm
alexander55
Цитата(DASM @ Oct 26 2007, 00:36) *
Пуалапы дохлые довольно, а помехи бывают сильные... лучше не надеяться на них

Мои 3 копейки касательно ЭМС.
Если у микросхемы от пинов не уходят проводники, то внешних резисторов не требуется. Производитель гарантирует.
А если проводники отходят (зависит от длины проводников с учетом возможных кабелей), слойности платы и т.), то рекомендую ставить резисторы следующего порядка или к + 10к или к земле 100к.
Это необходимо:
1. для стекания зарядов при выключенной плате и для снятии электростатики (кнопки, возможные места касания лицевых панелей и т.д.).
2. для уменьшения наводимой ЭДС от электромагнитного поля.
PS. А я предлагал открыть тему "Правила проектирования надежных плат", но никто не заинтересован. biggrin.gif
defunct
Цитата(singlskv @ Oct 26 2007, 01:12) *
А моторолла говорит о том что нельзя оставлять висеть вывод, и рекомендует
выход к "0", но почему непонятно.

Вы неверно перевели.
Motorola говорит - неиспользуемые пины рекомендуется настраивать на выход и программно устанавливать в 0.

А как по мне то фигня все это, один раз с плиской споткнулся об эти рекомендации когда соединял с PCI шиной. ПЛИСка была частично прошита, неиспользуемые ноги были выводами притянутыми к GND, дык чуть PCI Host не спалил. С тех пор я игнорирую веселые рекомендации. Неиспользуемый пин настраиваю входом и включаю pull-up - так безопаснее.
marcinio
Деее, почитал ваши ответы - мнения очень разные... Буду бросать монету... biggrin.gif
Кстати - так я не понял - выгодно/невыгодно в моём проекте использовать power-save mode? наверно надо будет сделать эксперимент и проверять мА мультиметром.

Цитата
Правила проектирования надежных плат

Создайте! Я с удовольствием почитаю! smile.gif
alexander55
Цитата(marcinio @ Oct 26 2007, 14:06) *
Создайте! Я с удовольствием почитаю! smile.gif

Хорошо. Теперь вопрос: где? Я предлагал в AVR (как наиболее посещаемый).
marcinio
Цитата(alexander55 @ Oct 26 2007, 13:56) *
Хорошо. Теперь вопрос: где? Я предлагал в AVR (как наиболее посещаемый).


Да - в разделе АВР людей конешно больше чем например в "В помощь начинающему". Да трудно сказать... Если разговоры будут о АВР - то тогда вперёд - в разделе АВР! wink.gif
alexander55
Цитата(marcinio @ Oct 26 2007, 15:05) *
Да - в разделе АВР людей конешно больше чем например в "В помощь начинающему". Да трудно сказать... Если разговоры будут о АВР - то тогда вперёд - в разделе АВР! wink.gif

Done.
DASM
Продублировать в ARM и переместить ! :-) Почти столь же посещаемый. А будущем и более. Я раньше в AVR не заходил, хотя 7 лет работал с ними, и не один такой думаю
defunct
Цитата(DASM @ Oct 26 2007, 19:41) *
Продублировать в ARM и переместить ! :-) Почти столь же посещаемый.

В ARM темы скучные sad.gif Почти 90% конфы сводится к глюкавости периферии SAM'ов и LPCшек и как с этим бороться.. У AVR глюков нет smile.gif - отсюда более общие темы "умный дом", "котроллеры светодиодов" и типа того smile.gif
oran-be
Вообще то по логике вещей неиспользуемые лапки надо было бы сконфигурить на выход и проинициализировать в 0. И вешать в воздухе. Тогда не будет лишних переключений гейтов. Но реально может быть всякое. Как то пытались добиться обещанного потребления от АТ89С51. У него на всех портах висят неотключаемые подтяжки, кроме одного. Так вот, почему то наименьшее потребление образовалось при шунтировании этого порта через резюки 47К на землю. При шунтировании на плюс ток потребления возрастал раза в полтора и еще больше, если в порт без шунтирования записать записать 0.
ivstech
В atmega48,88,168 и др. атмел решил проблему с высоким потреблением при переключении триггеров шмитта.

As shown in Fiqure 12-12, the digital input signal can be clamped to ground at the input of the Schmitt Trigger. The signal denoted SLEEP in the figure, is set by the MCU Sleep Controller in Power-down mode, Power-save mode, and Standby mode to avoid high power consumption if some input signals are left floating, or have an analog signal level close to Vcc/2
alexander55
Цитата(DASM @ Oct 26 2007, 19:41) *
Продублировать в ARM и переместить ! :-) Почти столь же посещаемый. А будущем и более.

Да, это более перспективно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.