Не могу не поделиться нежданной радостью! Написал программку для меги8, в которой при определённых условиях происходит переход в режим Power-down (с отключением кварца). Судя по потребляемому току, мега переходила в режим спячки, но почему-то вместо обещанных ‹100 мкА потребляла 6 мА (!!!). Вот я не понял! 8O
Чего только не делал: и АЦП с компаратором отключал, и выходы по разному ставил, и вочдоги убирал, и бодены и... ну вообщем всё убирал. Результата - 0. Всё те же 6 мА. На время забил на проблему.
Ответ нашёлся, как всегда бывает в таких случаях, случайно.
Коллега подошёл с вопросом: "Надо ли при работе с EEPROM отключать все прерывания?" Полез в ДШ...
И что ж я вижу там?
Оказывается, при переходе в режим Power-down надо дожидаться окончания записи в EEPROM! Иначе кварц не останавливается и нормального режима Power-down не получается! (Так и было на самом деле, я ещё удивлялся) А у меня как раз перед переходом в sleep происходит запись в EEPROMку текущих переменных. Поставил перед sleep цикл ожидания окончания записи и... О чудо! Потребление упало до 1,5 мА! Это для меня уже терпимо. Буду дальше копать, может получится ещё потребление снизить.
Может кто чего подскажет?
PS Читайте внимательней ДШ!