Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
putmom
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 35
1

Помогите крепко уснуть.

09.01.2013, 09:12. Просмотров 3235. Ответов 7
Метки нет (Все метки)

Здравствуйте !
Контроллер мега-8.
Проблема такая ... не могу добиться маленького энергопотребления в режиме сна.
Обнаружил вот что, если засыпаю сразу на старте контроллера на метке risit только включившись, то всё хорошо, потребление 130 мкА (это всё устройство целиком), но если засыпаю из работающей программы, то потребление 230-250 мкА, код для сна выполняется одинаковый в обоих случаях, но потребление во втором на 100 мкА больше.
Подскажите, что нужно ещё отключать кроме того, что у меня уже выключается. Или я не правильно отключаю что то.

Код
      clr   temp ;stop timer
out  tccr1b,temp
out  tccr1a,temp
out  tccr0,temp

ldi    temp,    0b00000000
out    ADCSR,    temp
out    ADMUX,      temp

ldi    temp,    0b11111111
out    DDRB,    temp
ldi    temp,    0b00000000
out    PORTB,    temp

ldi    temp,    0b11111011
out    DDRD,    temp
ldi    temp,    0b00000000
out    PORTD,    temp

ldi    temp,    0b11111110
out    DDRC,    temp
ldi    temp,    0b00000000
out    PORTC,    temp

ldi   temp,    0b00000000
out   TIMSK,   temp

SEI

LDI    TEMP,    0b10100000
OUT   MCUCR,   TEMP

LDI    TEMP,    0b01000000
OUT   GICR,   TEMP

sleep
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 09:12
Ответы с готовыми решениями:

Вирус крепко засел в браузере хром
При вбивании запроса в поисковой системе гугл автоматически перекидывает на поисковик...

Не получается заставить уснуть поток на нужное время
procedure TMy.Execute; var lT: Cardinal; Pause: integer; begin lT := GetTickCount; ...

Как заставить компьютер уснуть к примеру в 12 ночи
Добрый вечер, подскажите пожалуйста, как заставить компьютер уснуть к примеру в 12 ночи.. и...

Считать овец, что бы уснуть... и что вы посоветуете?
Заметил в юморе картинку и задумался... часто во всяких карикатурах и мультиках (чаще американских)...

ЛЮДИ ДОБРЫЕ КОЛЛЕГИ!!! ПОМОГИТЕ, ГОРЮ С КУРСОВЫМ((( ПОМОГИТЕ
ТЕМА: КОНВЕРТОР С ПАРАЛЛЕЛЬНЫМ КЛЮЧЕВЫМ ЭЛЕМЕНТОМ! СЧИТАЮ ПО ТОПОЛОГИИ SEPIC, по схеме Кука!...

7
YTYOUT
09.01.2013, 10:19
  #2
0
putmom
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 35
09.01.2013, 10:47 3
Цитата Сообщение от YTYOUT
http://forum.iosyitistromyss.ru/viewtopys.php?f=4&t=4505
По Вашей ссылке даже меньше чем у меня информации по засыпанию.
Помогайте, люди добрые =)
0
modmozy
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
09.01.2013, 11:18 4
ничего себе, вы бы хоть схему привели, кто ж его знает, что у вас на портах B,C и D висит?
плюс, если мне не изменяет память, аналоговый компаратор по умолчанию включён. При 5В питании он может жрать около 80мкА - не оно?
0
09.01.2013, 11:18
putmom
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 35
09.01.2013, 11:41 5
Цитата Сообщение от modmozy
ничего себе, вы бы хоть схему привели, кто ж его знает, что у вас на портах B,C и D висит?
В первом посте написано, что эта процедура "засыпания" если её запустить сразу на старте "усыпляет" контроллер правильно (130 мкА), за время работы программы на портах ничего не меняется.
Цитата Сообщение от modmozy
плюс, если мне не изменяет память, аналоговый компаратор по умолчанию включён. При 5В питании он может жрать около 80мкА - не оно?
Возможно оно, не знаете как его отключить ?
0
modmozy
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
09.01.2013, 11:53 6
за время работы программы на портах ничего не меняется
ну как же не меняется, если изначально после ресета во всех регистрах портов нули, а вы там кое-куда единицы пишете?:)

Код
LDI    TEMP,    0b10000000
OUT   ACSR,   TEMP
там нехарактерная для всей остальной периферии штука - бит ACD (Analog Comparator Dysable) в единицу надо поставить

хотя по идее это только на Active mode, Idle и ADC Noise Riduction mode влияет, но попробуйте, может поможет...
0
putmom
0 / 0 / 0
Регистрация: 05.02.2012
Сообщений: 35
09.01.2013, 12:02 7
Цитата Сообщение от modmozy
ну как же не меняется, если изначально после ресета во всех регистрах портов нули, а вы там кое-куда единицы пишете?:)
В первом посте я привёл процедуру, после ресета я ставлю эту процедуру, в ней конфигурируются порты, посмотрите.
И уже из программы я вызываю эту же процедуру, так что состояние "ножек" одинаковое.

Цитата Сообщение от modmozy
Код:
LDI TEMP, 0b10000000
OUT ACSR, TEMP

там нехарактерная для всей остальной периферии штука - бит ACD (Analog Comparator Dysable) в единицу надо поставить
хотя по идее это только на Active mode, Idle и ADC Noise Riduction mode влияет, но попробуйте, может поможет...
Спасибо, я попробую.
0
modmozy
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 125
09.01.2013, 12:11 8
ну я так понял, что

если засыпаю сразу на старте контроллера на метке risit только включившись
имелось в виду включились - и сразу уснули, не конфигурируя порты.

если не поможет - давайте схему:) так вроде все нормально, если вы больше ничего из периферии не используете.
0
09.01.2013, 12:11
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 12:11

Холодильник Samsung помогите опознать модель, помогите опознать модель, все шильдики ободраны
Собственно имеем холодильник без опознавательных знаков, ничего не могу про него прочитать...

Холодильник ARDO COF2510SAC помогите опознать бабах, Ребята помогите опознать БАБАХ
Привет уважаемуму сообществу! Ребята помогите опознать БАБАХ, выгорел в прах варистор и R25,у зака...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.