реклама на сайте
подробности

 
 
> Потребление схемы до и после sleep, Почему-то увеличивается
Spider
сообщение Nov 18 2010, 18:30
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



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

все потребители на плате кроме процессора запитаны через полевой транзистор, который отключается процессором перед сном. Что он отключается проверено.
В эмуляторе я делал дампы памяти и регистров проца до и после стренного поведения, всё почти одинаково, кроме счётчиков таймеров и почему-то PIND2, нога к которой ничего не подключено кстати.

Так вот куда рыть? Что может быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
kovigor
сообщение Nov 18 2010, 18:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Alexey Belyaev @ Nov 18 2010, 21:30) *
Так вот куда рыть? Что может быть?


Измерьте напряжение питания на отключенной во время сна части схемы когда ток потребления в норме и когда ток ненормально завышен, и полученные напряжения сравните. Почти наверняка идет запитка отключенных полевым транзистором блоков от вашего МК, например, через невыключенный PULLUP. Если же этого нет, то, возможно, вы забываете выключать какую-то ненужную вам во сне периферию МК. Короче, амперметр и вольтметр должны помочь ...

P.S. А если это происходит, когда ваша плата подключена к машине по USB, то надо смотреть, корректно ли она засыпает вообще, с точки зрения шины ...

Сообщение отредактировал kovigor - Nov 18 2010, 18:59
Go to the top of the page
 
+Quote Post
Spider
сообщение Nov 18 2010, 19:00
Сообщение #3


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Ради интереса делал power_all_disable(); и говорю же сравнивал все I/O регистры, а менно они отвечают за PULLUP и периферию.
т.е. ноги процессора вроде как до и после в одном состоянии. Ну а потребление и напряжение я ещё померю.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Nov 18 2010, 19:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Alexey Belyaev @ Nov 18 2010, 22:00) *
Ради интереса делал power_all_disable(); и говорю же сравнивал все I/O регистры, а менно они отвечают за PULLUP и периферию.
т.е. ноги процессора вроде как до и после в одном состоянии. Ну а потребление и напряжение я ещё померю.


Что бы вы ни делали, а амперметр и вольтметр еще никто не отменял. И на программном уровне можно сравнивать все, что угодно. Но толку от этого обычно мало. Нужно мерить, и начинать именно с измерений.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Nov 18 2010, 19:11
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



АЦП часом не запускаешь SLEEP-ом? Кстати, SLEEP это часом не IDLE? PUD отключен(в 1)?
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2010, 20:38
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Alexey Belyaev @ Nov 18 2010, 23:30) *
переводя ноги в Z или 0 по обстановке.
Неиспользуемые пины нужно держать в режиме выдачи лог.0. Z-состояние использовать рекомендуется только, если имеется внешний pull-up или pull-down резистор. В остальных случаях висячий в Z-состоянии вход вызывает повышенное потребление.
Go to the top of the page
 
+Quote Post
Spider
сообщение Nov 19 2010, 04:20
Сообщение #7


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(kovigor @ Nov 18 2010, 23:07) *
Что бы вы ни делали, а амперметр и вольтметр еще никто не отменял. И на программном уровне можно сравнивать все, что угодно. Но толку от этого обычно мало. Нужно мерить, и начинать именно с измерений.
Дык измерял же потребление, не измерял бы вопрос бы не возник.
А как кроме как программным способом я должен управлять процессором? smile.gif Кривым стартером?
Цитата(ArtemKAD @ Nov 18 2010, 23:11) *
АЦП часом не запускаешь SLEEP-ом? Кстати, SLEEP это часом не IDLE? PUD отключен(в 1)?
нет. вот что то, а АЦП и Компоратор я принудительно выключаю. А засыпаю я в Power-Save, чтобы иметь возможность просыпаться по таймеру 5 раз в секунду.
Хм, а вот про PUD я и забыл. Щас поколупаем...
Цитата(rezident @ Nov 19 2010, 00:38) *
Неиспользуемые пины нужно держать в режиме выдачи лог.0. Z-состояние использовать рекомендуется только, если имеется внешний pull-up или pull-down резистор. В остальных случаях висячий в Z-состоянии вход вызывает повышенное потребление.
Спасибо, щас переделаемс...
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 19 2010, 09:43
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(rezident @ Nov 18 2010, 23:38) *
Неиспользуемые пины нужно держать в режиме выдачи лог.0. Z-состояние использовать рекомендуется только, если имеется внешний pull-up или pull-down резистор. В остальных случаях висячий в Z-состоянии вход вызывает повышенное потребление.

Почему именно внешний? Внутреннюю подтяжку никто не отменял, к тому же это безопаснне ИМХО - если вывод случайно коротнешь, то ничего не случится.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 19 2010, 16:45
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(777777 @ Nov 19 2010, 14:43) *
Почему именно внешний? Внутреннюю подтяжку никто не отменял, к тому же это безопаснне ИМХО - если вывод случайно коротнешь, то ничего не случится.
Когда вы включите внутренний pull-up, то для всего, что будет подключено снаружи пин уже не будет в Z-состоянии, не так ли? К тому же мой совет был общего характера, а не конкретно про МК AVR. Внутренний (отключаемый) pull-up далеко не у всех МК имеется.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 19 2010, 19:37
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(rezident @ Nov 19 2010, 19:45) *
Когда вы включите внутренний pull-up, то для всего, что будет подключено снаружи пин уже не будет в Z-состоянии, не так ли?

Речь шла о неиспользуемых пинах.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016