Спящий режим в tiny2313v

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Спящий режим в tiny2313v

Сообщение ximik » 04 окт 2009, 20:59

Вот вычитал в даташите , что есть регистр MCUCR отвечающий за спящие режимы.
бит se - разрешение входа в сон
биты sm1,sm0 - тип сна.

Остальные биты как я понял ко сну не относятся.

Чтобы вогнать МК в спящий режим мне просто надо в программе в MCUCR записать нужное значение и все?
при прерывании МК проснется сам?
а если в прошивке нет прерываний?
Вобщем объясните мне как усыпит, а потом разбудить.

Спасибо.
ximik
 
Сообщения: 28
Зарегистрирован: 13 июл 2009, 14:18
Откуда: Барнаул
прог. языки: C/C++

Re: Спящий режим в tiny2313v

Сообщение avr123.nm.ru » 04 окт 2009, 21:31

А в даташите нет примеров усыплвния на Си и АСМ-е ? Есть еще и книга Ефстифеева по ATtiny2313 которая по сути есть перевод даташита. Советую скачать. Если не найдете где, то она есть в библиотеке указаной на http://avr123.nm.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Спящий режим в tiny2313v

Сообщение ALHIMIK » 04 окт 2009, 21:34

в дс должна быть таблица в которой указывается что отключается при переводе в спящий режим
общие положения такие - если отключается CK_io то прерывания которые могут разбудить мк только асинхронные
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

Re: Спящий режим в tiny2313v

Сообщение ximik » 04 окт 2009, 22:53

Нет. В даташите нет нет примера как усыпить МК.
А вот книжку щас посмотрим.
ximik
 
Сообщения: 28
Зарегистрирован: 13 июл 2009, 14:18
Откуда: Барнаул
прог. языки: C/C++

Re: Спящий режим в tiny2313v

Сообщение avr123.nm.ru » 05 окт 2009, 00:21

> В даташите нет нет примера как усыпить МК.

Т.е. в вашем даташите ( doc2543.pdf ) стр. 15 пустая чтоль ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Спящий режим в tiny2313v

Сообщение ximik » 05 окт 2009, 13:53

Т.е. в вашем даташите ( doc2543.pdf ) стр. 15 пустая чтоль ?

:oops: есть пример входа в сп. режим.
Просто я дуал что это должно находиться в разделе Power Management and Sleep Modes.
Книгу посмотрел.
Теперь кое-что прояснилось:
подключаем <sleep.h>
пишем sleep_enable();
а потом например powerdown();

Но вот не понятно, если МК спит и просыпается от прерывания, то надо в программе отключать сон или МК будет бодрствовать до следующего sleep_enable(); powerdown();?
ximik
 
Сообщения: 28
Зарегистрирован: 13 июл 2009, 14:18
Откуда: Барнаул
прог. языки: C/C++

Re: Спящий режим в tiny2313v

Сообщение avr123.nm.ru » 05 окт 2009, 15:03

До следующего.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Спящий режим в tiny2313v

Сообщение ximik » 05 окт 2009, 18:26

Спасибо... пошел строчить код.
ximik
 
Сообщения: 28
Зарегистрирован: 13 июл 2009, 14:18
Откуда: Барнаул
прог. языки: C/C++

Re: Спящий режим в tiny2313v

Сообщение ximik » 13 окт 2009, 11:02

прерывание от системы захвата (pin ICP) происходит при изменении логического уровня - это значит ,что по нему не выйти из глубокого сна?
ximik
 
Сообщения: 28
Зарегистрирован: 13 июл 2009, 14:18
Откуда: Барнаул
прог. языки: C/C++

Re: Спящий режим в tiny2313v

Сообщение executer » 20 ноя 2009, 12:10

аналогичная проблема. АтТини 2313 засыпает и не просыпается. Хочу чтобы просыпался по внешнему прерыванию №1 или №0.
Пробовал при настроенных срабатываниях по спаду - не просыпается (.
Катит только по какомуто конкретному типу срабатывания (по верхнему или по нижнему уровню)?
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Спящий режим в tiny2313v

Сообщение SERGEY_M » 20 ноя 2009, 13:00

читаем доки на МК
Выйдет из спячги (Power-down)только по низкому уровню на ноге
Низкий уровень нужно удерживать не менее времени запуска МК (время выставляется фузами)
Ну и прерывание предварительно нужно настроить на срабатывание по низкому уровню...
Во время спячки (Power-down) работает только собачий таймер, все остальные такты спят))
а собачий таймер медленный (128 кГц) и на выход из спячки нужно время :pardon:
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей

Re: Спящий режим в tiny2313v

Сообщение executer » 20 ноя 2009, 14:40

Ну вот чтото такое было в ДЩ написано, только на английском ) - не разобрал.
А если у меня обычная кнопка на прерывании - это каждый раз надо переконфигурировать тип срабатываний - чтобы при зажатой кнопке контроллер не залипал в этом прерывании?? (про дребезг пока забудем...)
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Спящий режим в tiny2313v

Сообщение SERGEY_M » 20 ноя 2009, 15:36

ну, наверное да
перед спячкой и после выхода из спячки меняешь тип прерывания...
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей

Re: Спящий режим в tiny2313v

Сообщение executer » 20 ноя 2009, 15:56

Сережа молодец! (С)
Буду пробовать.
ПС: А протеус просыпался, собака, и при прерывнии по спаду на INT0. :oops:
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

Re: Спящий режим в tiny2313v

Сообщение SERGEY_M » 20 ноя 2009, 16:14

:D это-же "ПРОТЕУС"
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16