Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Режимы сна Атмега-8

Непрочитано 22.02.2013, 09:46  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Должно быть меньше 0,5 мкА
Образцовый сам отключается, если не используется в АЦП или компараторе
Похоже он не входит в Слип или неправильно настроен mcucr

Утечек у современных контроллеров нет, могут быть только сквозные токи, если входы висят в воздухе. Настраивай как выходы или включай подтяжку, или подавай на входы определенный уровень
Реклама:
niXto вне форума  
Непрочитано 23.02.2013, 03:16  
mvn77
Частый гость
 
Регистрация: 29.04.2008
Сообщений: 37
Сказал спасибо: 6
Сказали Спасибо 13 раз(а) в 7 сообщении(ях)
mvn77 на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

В общем добился я снижения питания до 1 ma. только вот проблема - немогу разобратся почему INT1 не выводит микрасхему из повер давна, я так понял проблема в типе сигнала при пробуждении... Пробовал и с синхронизацией по TOSK1 в даташите написано что он оптимизирован под кварц. перепробовал уже все... видно придется проект закинуть, больше не хватает нервов. Всем спасибо за помощь.

Последний раз редактировалось mvn77; 23.02.2013 в 08:54.
mvn77 вне форума  
Непрочитано 23.02.2013, 08:05  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Читаем даташит, там даже картинки есть. Неиспользуемые ножки перевел на выход?

niXto вне форума  
Непрочитано 23.02.2013, 09:57  
mvn77
Частый гость
 
Регистрация: 29.04.2008
Сообщений: 37
Сказал спасибо: 6
Сказали Спасибо 13 раз(а) в 7 сообщении(ях)
mvn77 на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Вчера просидел весь день и всю ночь - Проблема в том что не просыпается от прерывания по INT1 (INT0). Из даташита не вылазию - для меня просто непонятно " перепад по низкому уровню - все что я могу подать сигнал с частотой 1ГЦ на INT1 - но от него микруха не просыпается, а больше мне будить нечем.

Цитата:
Неиспользуемые ножки перевел на выход?
- я их наоборот перевожу в режим на вход, для снижения энергопотребления
вот выдержка из кода:

// INT1 Mode: Low level
GICR|=0x80;
MCUCR=0x00;
GIFR=0x80;

...........................................
MCUCR |= ((1‹‹SE)|(1‹SM1)); // для PowerDown mode ( пробовал и MCUCR |= ((1‹‹SE)|(1‹SM1)|(0‹SM0));

SFIOR = (1‹‹PUD); //включаем на всех шинах Z
ACSR |= (1‹‹ACD); //выключаем компаратор
ADCSRA = (0‹‹ADEN);// выключаем АЦП

WDTCR = 0x00; //Выключить WDT

DDRB = 0x00; // все выводы порта B сконфигурировать как входы.
DDRC = 0x00; // все выводы порта C сконфигурировать как входы.
DDRD = 0x00; // все выводы порта D сконфигурировать как входы.


#asm("sei"); //Глобальное разрешение прерываний.
#asm("sleep"); //Отправляем контроллер в спящий режим
#asm("nop"); // 1 холостой такт
delay_ms(1);
#asm("cli"); //Глобальное запрещение прерываний.

..... и засыпаем глубоким мертвым сном....
mvn77 вне форума  
Непрочитано 23.02.2013, 12:40  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Сообщение от mvn77 Посмотреть сообщение
Вчера просидел весь день и всю ночь - Проблема в том что не просыпается от прерывания по INT1 (INT0). Из даташита не вылазию - для меня просто непонятно " перепад по низкому уровню - все что я могу подать сигнал с частотой 1ГЦ на INT1 - но от него микруха не просыпается, а больше мне будить нечем.
// INT1 Mode: Low level
GICR|=0x80;
MCUCR=0x00;
GIFR=0x80;
...........................................
MCUCR |= ((1‹‹SE)|(1‹SM1)); // для PowerDown mode ( пробовал и MCUCR |= ((1‹‹SE)|(1‹SM1)|(0‹SM0));
...........................................
#asm("sei"); //Глобальное разрешение прерываний.
#asm("sleep"); //Отправляем контроллер в спящий режим
#asm("nop"); // 1 холостой такт
delay_ms(1);
#asm("cli"); //Глобальное запрещение прерываний.

..... и засыпаем глубоким мертвым сном....
Для выхода из Power Down низкий уровень (ISC1x = 00) на INT1 должен удерживаться на время не меньшее чем 1 мкс (см. раздел 13. External Interrupts, второй абзац). А если это время при этом будет меньше, чем задержка старта, установленная битами конфигурации CKSEL и SUT, то прерывание не будет распознано и МК только проснётся, но его не выполнит.

Сообщение от mvn77 Посмотреть сообщение
- я их наоборот перевожу в режим на вход, для снижения энергопотребления вот выдержка из кода:
SFIOR = (1‹‹PUD); //включаем на всех шинах Z
DDRB = 0x00; // все выводы порта B сконфигурировать как входы.
DDRC = 0x00; // все выводы порта C сконфигурировать как входы.
DDRD = 0x00; // все выводы порта D сконфигурировать как входы.
Уж сколько раз твердили свету... Потому не буду вдаваться в подробности (тем более - не имея схемы). Если есть возможность отключить от контроллера всё остальное, то попробуйте вот так:
Код:
//SFIOR = (1‹‹PUD);  //включаем на всех шинах Z
DDRB = 0x00; // все выводы порта B сконфигурировать как входы.
DDRC = 0x00; // все выводы порта C сконфигурировать как входы.
DDRD = 0x00; // все выводы порта D сконфигурировать как входы.
PORTB = 0xFF;
PORTC = 0xFF;
PORTD = 0xFF; 
и доложите результат по току потребления. Если такой возможности нет - приведите схему и мы Вам нарисуем правильную настройку портов для sleep'а.
ForcePoint вне форума  
Непрочитано 23.02.2013, 12:42  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Ну молодец... От этого и повышенный ток - входы висят в воздухе и на входных каскадах сквозные токи... Переводи на выходы все ноги, кроме тех на которых внешние цепи формируют нормальный логический уровень

Когда на ноге 0 - она непрерывно генерит прерывание до тех пор пока 0 не исчезнет. По идее в прерывании контроллер должен перевести внешнюю схему так, чтобы она перешла в уровень 1.

Ставь мега48/88 - у них есть пинчейндж, который будит по перепаду из повердовна
niXto вне форума  
Непрочитано 23.02.2013, 14:06  
mvn77
Частый гость
 
Регистрация: 29.04.2008
Сообщений: 37
Сказал спасибо: 6
Сказали Спасибо 13 раз(а) в 7 сообщении(ях)
mvn77 на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

На атмегу 88 Перейти не могу, хотя и хотел - у меня програматор Pony PROG он не зашаривает новые 88е, хотя 2шт. лежат.
По коду - если честно, я за эти дни постоянного перебора и разбора кода настолько отупел, что даже женщин с 23 поздравляй... Обидно, что проблему со сном я не считал важной, и на ней же застрял.
При переводе в повер давн атмега 8L потребляет 0.01 ма, ( в рабочем режиме 8-10 ма) что отлично. Но как я писал выше DS1307 отказывается ее будить. При попытке будить ток скачет от 0.01 до 0.5 - разобраться не могу из за нехватки опыта и плохого знания английского. Остальной код проекта работает хорошо. Самое интересное, что в инете невозможно найти рабочий пример с питание атмеги8 от батарейки. В общем я в ступоре, проблема походу не решаема...

Схема такова
Миниатюры:
Нажмите на изображение для увеличения
Название: shema.jpg
Просмотров: 71
Размер:	80.7 Кб
ID:	43938  
mvn77 вне форума  
Непрочитано 23.02.2013, 15:34  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Поставь между DS и мегой RC-цепочку, и диод с любой свободной ножки для ускорения заряда конденсатора после срабатывания прерывания "по низкому уровню". Или RS-триггер, запускает DS, сбрасывает мега после срабатывания прерывания. Или, что ещё лучше, собери часы на меге, без DS
niXto вне форума  
Непрочитано 23.02.2013, 16:04  
mvn77
Частый гость
 
Регистрация: 29.04.2008
Сообщений: 37
Сказал спасибо: 6
Сказали Спасибо 13 раз(а) в 7 сообщении(ях)
mvn77 на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Вроде нашол причину глюков - проблема была в сильно длинном сигнале пробуждения - все это время (1сек) генерирится прерывание. Щас буду думать как уменьшить длину сигнала.... походу RS цепочкой....
mvn77 вне форума  
Непрочитано 23.02.2013, 18:25  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,459
Сказал спасибо: 3,227
Сказали Спасибо 3,513 раз(а) в 2,394 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Режимы сна Атмега-8

Сообщение от mvn77 Посмотреть сообщение
Вроде нашол причину глюков - проблема была в сильно длинном сигнале пробуждения - все это время (1сек) генерирится прерывание. Щас буду думать как уменьшить длину сигнала.... походу RS цепочкой....
Сразу после пробуждения контроллера, прямо в обработчике прерывания, запретите INT1, сбросьте флаг и снова разрешайте только перед очередным засыпанием.

Для Вашей схемы настройка портов перед засыпанием будет примерно такой:
Код:
DDRB = 0x00; // все выводы порта B сконфигурировать как входы.
PORTB = 0xFF; // с подтяжками
DDRC = 0x00; // все выводы порта C сконфигурировать как входы.
PORTC = 0xFF; // с подтяжками
DDRD |= 0x02; // все выводы порта D сконфигурировать как входы (кроме PD2).
PORTD = 0xFF; // с подтяжками
ForcePoint вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Атмега 8 PWM и сервы mg995Tower Pro deeman30rus Микроконтроллеры, АЦП, память и т.д 6 26.05.2011 12:37
Помогите с часами (атмега 16) SvZhuk Proteus 1 19.11.2010 02:29
Атмега 32а, не известно под какую частоту прошита. sae74 Микроконтроллеры, АЦП, память и т.д 1 10.04.2010 19:33
Ballast Designer, режимы включения ламп netigors Источники питания и свет 3 17.04.2009 06:42
Методика поиска неисправностей телевизоров.Сервисные режимы halizev2 Измерительное оборудование 0 13.12.2008 03:34


Часовой пояс GMT +4, время: 00:59.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.