Сон на AVR

Дык сам первый раз в сон полез, “ничего не понимаю(с)”.
Это слоноестная задача. Сначала заставить глубоко спать и просыпаться не по внешнему прерыванию, потом увеличить это время до часа, потом добавить в основной режим возможность заснуть раньше чем основной цикл(та самая типа кнопка). Застрял на несанкционированном генераторе на самом первом шаге :neutral_face:
P.S. Ента сволочь отработала 27 минут прежде чем перейти в генерацию. Вот что ей надо?

Напиши иными словами что работают, а что нет. Я что-то не понимаю…

Пришла мысля о возможной кривости аддона(у нас же всехда китайские ардуины виноваты). Создал проект на CVAvrи спёр с шаблона настройку сторожевого. Н астроил только на прерывание(не на резет и не совместно). Чуда не произошло, всё такде при просыпании полностью резетится, но пока(10 мин) работает.

По идее выход из сна должен быть в самой программе(следуюим оператором), но происходит полный резет контроллера. Но главное, что в произвольный момент при выходе из сна контроллер зацикливается(не может выйти в основную программу и постоянно ребутится).

У тини2313 на это не способен Power-down, как я понимаю.

Да и вообще этот режим не подразумевает такое, так как полностью останавливается CPU. Выход из этого режима возможен только по ресет.

А то что ты описываешь, под него больше подходит IDLE. Но он в нём должен много «кушать» тока…
Попробуй ещё Standby ради интереса…

Вопрос из любопытства :slight_smile:
А вы это из спортивного интереса исследуете или реальную железку сделать?

ЗЫ. А так в stm32 есть low power timer, Там пару микроампер можно добиться во сне с пробуждением по времени.

А иде енто написано?

Пока 45 минут полёт нормальный. Пока ещё не заменил настройки MCUCR. С рекомендованного ноля на получившийся в шаблоне MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); Может уйдёт и полный перезапуск(тут вступают доны с правильным советом читать “дейташиты”( :t_rex:))

ЗЫзее: У меня тяму еле хватило готовый проект на STM повторить, а уж что -то сложнее блинкка …

Реальный девайс/хоть чуть потренировать моск/наличие жменьки тинь/жаба на готовое изделие/физическую сложность(лень) добраться до оригинала.

В даташите:

In this mode, the external Oscillator is stopped, while the external interrupts, the USI start condition detection, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external level interrupt on INT0, or a pin change interrupt can wake up the MCU. This sleep mode basi-cally halts all generated clocks, allowing operation of asynchronous modules only.

Либо я чего-то не понял…

Енто же есть и для меги. Асинхронные - в смысле основные таймеры(почему и ушёл от тини вначале), собака это другое(почему и вернулся после изучения Гайверовской библы).

P.S. 70 минут.

Ещё кстати мысля(и вроде вполне логичная) уменьшить время запуска контроллера. По привычке ставил(было) 65мс, а ведь енто же может повлиять на рестарт!?

Я когда-то на Тини85 собирал мобильный датчик температуры, с передачей данных раз в 5 минут. Уходил в сон, просыпался по собаке, не перегружался. Правда, я рекордов ставить не пытался,
периферию никакую не отключал, получил потребление порядка 5мка и был доволен.
Если надо могу найти тот проект на старом форуме, только позже, я сейчас в метро

5мкА и без рекордов выходит уже идеал.
Одиннадцатый номер - ремонт/командировка/экономия?
P.S. 99 мин.

А что ты за время замеряешь?

Енто. После замены настроек таймера с

  WDTCSR = bit (WDCE) | bit (WDE);   // allow changes, disable reset
  WDTCSR = bit (WDIE) | bit (WDP3) | bit (WDP0);

на

WDTCR=(0<<WDIF) | (0<<WDIE) | (1<<WDP3) | (1<<WDCE) | (0<<WDE) | (0<<WDP2) | (0<<WDP1) | (1<<WDP0);
WDTCR=(1<<WDIF) | (1<<WDIE) | (1<<WDP3) | (0<<WDCE) | (0<<WDE) | (0<<WDP2) | (0<<WDP1) | (1<<WDP0);

Какой смысл добиваться меньших токов, асли саморазряд батарейки будет более быстрым. У меня во сне схема ест 15 мкА(просыпается по СОМ порту примерно пару раз в сутки на 10-20 секунд), батарейку меняю примерно раз в 6 - 7 лет. Производители батарейки указывают в ТТД срок хранения 6-8 лет. То есть даже такими токами можно пренебречь.

Да я и не добиваюсь :dotted_line_face: Глючит оно и на работает как надо. Воть.

Чота ты, толстый, не то делаешь. Тиньке и без гайвера спится хорошо и глубоко. У мня даччики протечки на 85й, 6 шт, уже полтора года на одной 18650 работают(каждая), самое маленькое напряжение на одном из даччиков - 3.55В, при 2.9 я их заряжаю. Было 4.18-4.20 на всех при постановке на дежурство. Кумуляторы от старого бука, б\у все, ёмкость нинаписана.

Дык моя согласная шо руки,моск кривыя. Гайвера правда не использую, токмо Гаммоновский пример :slightly_smiling_face:
И кстати у него WDE установлен в 1, а при нуле(согласно картинке ) гораздо логичней


P.S. 126 минут, наверное пора пробовать новое или “передёрнуть питание.”

Не, я щас сам в павердаун уйду, седня 12 часов у станка, устал, завтра подумою.