Страница 1 из 2
ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 09:29:00
Мikа
Доброго всем дня.
Как обычно, внезапно встала задача сделать устройство, применив то, что раньшге не применял, чтение даташита заставляет задать пару вопросов.
Общая суть устрйоства крайне проста:
При работе от батарейки (соответственно минимальное потребление энергии) после запуска контроллера нужно минуту мигать светодиодом с частотой 50 Гц. Задача на грани фантастики:)
Я хотел сделать так:
-Запуск МК, инициализация.
-Вкл диод
-Уйти в сон
-По WatchDog проснуться через 20 ms
-Переключить светодиод
-Посчитать эти 20 мс (чтобы выключиться через минуту)
-Проверить, прошла ли минута
-Уйти в сон ещё на 20 мс или же выключиться, если минуту отработали
Выяснил, что WDT в ATtiny13A может генерировать прерывания для пробуждения МК.
Начал читать про сам WDT.
В даташите сказано, что его генератор имеет частоту 128кГц.
Есть большое количество предделителей:
Но информации о разрядности WDT я не нашёл, соответственно как посчитано время переполнения в этой таблице мне не понятно.
Вопрос, собственно, в том, можно ли выполнить описанную задачу с помощью WDT?
P.S. Я ни разу ни одного МК в спячку не уводил, тема новая, к сожалению как всегда срочная

Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 10:16:51
akl
Почему 20мс?
Можно использовать таймер Т0 в режиме CTC. Загружаете в OCR0A число 10*Fo/1000/64-1, разрешаете прерывания по сравнению и уходите SLEEP IDLE.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 10:22:23
Мikа
1 секунда делить на 50 Гц = 20 мс.
Таймер не может выводить МК из сна, а если его завести в режим CTC, то он будет просто мигать диодом, но закинуть какой-то обработчик не получится.
Хотя если завести ногу INT туда же, чтобы она чувствовала изменения состояния но CTC и выводила МК из спячки при изменении лог уровня - это уже может получиться. Хм
For INT0, only level interrupt. - Это значит, что прерывание по любому изменению ЛОГ уровня?
И получается, что это можно делать только в режиме Idle, тк в ADC Noise Reduction тактирование портов отключено. Хотя нужно почитать, может при включении CTC, что-то там тактироваться будет.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 10:43:32
akl
Мikа писал(а):For INT0, only level interrupt. - Это значит, что прерывание по любому изменению ЛОГ уровня?
Нет, для INT0 только низкий уровень выводит из POWER DOWN. Разрешенное PCINT также выводит из него. Если использовать режим SLEEP IDLE, то таймером отсчитываете 10мс -> зажигаете светик -> отсчитываете еще 10мс -> гасите светик. Внутри прерывания наращиваете счетчик -> сравниваете с числом, соответствующим 1 минуте и, если оная прошла переходите в POWER DOWN
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 10:46:51
Мikа
Да в том и суть, что я хочу переходить в power down между переключениями, чтобы максимально сократить потребление в процессе работы.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 10:50:17
akl
Тогда смиритесь с тем, что частота мыграния светиком будет 31,25Гц.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 11:00:56
Мikа
Вы имеете ввиду предделитель ватчдога на 4К?
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 11:07:14
akl
Нет, 2K. Посмотрел графики потребления в в режимах IDLE и POWER DOWN. При напряжении питания 3V в первом - 14мкА; во втором - 4мкА.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 14:12:54
Demiurg
В разных режимах МК просыпается при определенных условиях. В глубокой спячке, если МК тактируется от кварца, внешнего генератора, генератор отключается. Работает только внутренний генератор. МК просыпается от внешнего прерывания и WDT. При этом, после события проходит определенное время, прежде чем МК начинает нормально работать.
WDT работает от собственного внутреннего генератора. Частота внутреннего генератора зависит от напряжения питания и температуры. Потому значения времени срабатывания WDT указаны приблизительно.
Точные времянки можно реализовать только на кварце. В этом случае о точных времянках во время спячки все равно можно забыть.
Потребления тока в IDLE мало отличается от рабочего режима МК. И по сути смысла в IDLE практически нет.
Поэтому, пересматривайте задачу.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Чт май 19, 2016 14:18:06
Мikа
Есть над чем подумать и с чем поэкспериментировать. Думаю еще поспрашиваю. Спасибо!
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Пт май 20, 2016 03:26:46
akl
Demiurg писал(а):...
Бред от незнания AVR вообще и
ATtiny13 в частности.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Пт май 20, 2016 04:17:45
Demiurg
akl писал(а):...
Прежде чем бросаться с голословными обвинениями, сначала укажите, попунктно, в чем, по вашему мнению, бред. Факты и цифры. После этого мы обсудим, кто насколько знает AVR.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Пт май 20, 2016 05:13:39
КРАМ
Вот я не знаю подробностей функционирования Атмелов, но тоже буду утверждать, что Вы написали ерунду.
Глубокий сон означает, что НИКАКОЙ тактирующий МК генератор НЕ РАБОТАЕТ. Генератор тактирующий WDT никакого отношения к генератору тактирующему МК не имеет. И не важно внутренний это генератор или внешний.
У WDT ВСЕГДА свой собственный генератор. Его можно отключить независимо от работы МК.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Пт май 20, 2016 11:30:14
Demiurg
У меня где-нибудь написано, что WDT работает от генератора, тактирующего МК? От внутреннего генератора, читай собственного, частота которого зависит от напряжения питания и температуры.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Пт май 20, 2016 12:26:45
КРАМ
Demiurg писал(а):В разных режимах МК просыпается при определенных условиях. В глубокой спячке, если МК тактируется от кварца, внешнего генератора, генератор отключается. Работает только внутренний генератор. МК просыпается от внешнего прерывания и WDT. При этом, после события проходит определенное время, прежде чем МК начинает нормально работать.
WDT работает от внутреннего генератора.
Двое человек, совершенно независимо, поняли написанное, как то, что во время сна МК и WDT работают от одного внутреннего генератора. На самом деле генераторов ДВА. Оба внутренних.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Пт май 20, 2016 12:51:29
Demiurg
Как бы само собой подразумевается, что wdt работает от собственного внутреннего генератора. И если кто то что то не так понял, то прежде чем бросаться с обвинениями, может просто спокойно спросить, уточнить?
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Сб май 21, 2016 17:22:38
КРАМ
Что подразумевается Вами - совершенно непонятно.
Я лично с Вами не знаком и что либо подразумевать возможности не имею.
Желательно просто выражаться ОДНОЗНАЧНО.
А тот, кто не знаком с проблемой об "однозначности" не догадывается ПО ОПРЕДЕЛЕНИЮ.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Сб май 21, 2016 17:33:13
Demiurg
КРАМ писал(а):...
Скажу по другому, вы посраться пришли на форум? Предыдущий участник вообще сказал, что я несу бред. Так вот, вы на форум сраться пришли? Кто насколько разбирается, компетентен, выявляется по сообщениям. Вам известно, мне известно, что WDT работает от собственного генератора. Именно это подразумевается само собой. Достаточно открыть даташит.
Указали? Я поправил сообщение. Есть что еще сказать?
Так как, дальше срач разводим, или как культурные люди будем себя вести?
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Сб май 21, 2016 17:39:33
КРАМ
Demiurg писал(а):Скажу по другому, вы посраться пришли на форум? Предыдущий участник вообще сказал, что я несу бред.
Свои мелкие обиды приберегите для МЯУ.
А с точки зрения читателя-новичка Вы действительно несли бред. Оценивали не Ваши знания, а Ваш текст.
И с этим ничего не поделать.
То, что Вы ЗНАЕТЕ как работает слип в МК это не исключает.
Просто нужно выражаться ПОНЯТНО.
Re: ATtiny13A WatchDog&SleepMode
Добавлено: Сб май 21, 2016 17:59:23
Demiurg
КРАМ писал(а):Свои мелкие обиды приберегите для МЯУ..
Причем здесь обиды? Тут работает простая логика. Если тактирование отключено, то от чего тогда сторожевому таймеру работать?
Вдобавок, вы сами написали, что с AVR не работаете, и влезли в тему.