Всем привет. Есть достаточно большая схема под управление AT90USB1287. Большую часть времени процессор спит. Но вот стоит его пробудить и снова усыпить в то же состояние, как схема начинает потреблять на 3 mA больше.
Ситуация следующая:
После включения процессор подготавливает порт и регистры ко сну. Отключая переферию и переводя ноги в Z или 0 по обстановке.
После подготовки переходит в sleep_cpu(); с периодическим пробуждением.
При пробуждении проверяется условие и либо просыпаемся либо нет.
Так вот если проснуться сделать всякие и снова уснуть ТЕМ же способом что и вначале (та же функция), процессор снова засыпает но плата начинает потреблять больше.
все потребители на плате кроме процессора запитаны через полевой транзистор, который отключается процессором перед сном. Что он отключается проверено.
В эмуляторе я делал дампы памяти и регистров проца до и после стренного поведения, всё почти одинаково, кроме счётчиков таймеров и почему-то PIND2, нога к которой ничего не подключено кстати.
Так вот куда рыть? Что может быть?