Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Долгое пробуждение ESP8266 после deep sleep с настройкой deep sleep option(4)

Тема в разделе "Общие вопросы по esp8266", создана пользователем paladin, 18 ноя 2015.

  1. paladin

    paladin Новичок

    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, уважаемые форумчани. Исследую deep_sleep на ESP8266-12E с SDK1.3.0. Код простой в user_init, две строчки:
    system_deep_sleep_option(4);
    system_deep_sleep(6000000);
    С помощью малоомного резистора в разрыве цепи питания и осциллографа контролирую ток потребления.
    Картина выглядит как то так:
    1.3 сек - 12 мА (пробуждение после сна)
    6 сек - 80 мкА (сон)
    Вопрос, почему пробуждение идет так долго, аж целых 1.3 сек?
     
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.387
    Симпатии:
    1.270
    По тому, в китайском SDK ошибки связанные с выходом в режим deep_sleep. Это первое - необходимо патчить библиотеки SDK.
    А второе - прикрутите загрузчик rapid_loader.bin, путем копирования к 0x00000.bin
    copy /b rapid_loader.bin + 0x00000.bin new_0x00000.bin
     
  3. paladin

    paladin Новичок

    Сообщения:
    6
    Симпатии:
    0
    Спасибо, большое. Буду пробовать. А вообще, какое минимальное время можно получить?
     
  4. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.387
    Симпатии:
    1.270
    Со стандартным SDK не знаю.
    C моим - после старта через 0.45 сек уже соединено с внешней AP и передает данные, если deep_sleep был коротким. Иначе зависит от AP, когда договорятся почти от этих 0.45 сек, обычно с выдачей ip - плюс ещё до 0.7 сек и уже соединен к примеру TCP и данные передаются...
    Что делает RapidLoader - https://raw.githubusercontent.com/pvvx/Rapid_Loader/master/ESP-01-StartSignals.gif
     
  5. Cadil

    Cadil Новичок

    Сообщения:
    156
    Симпатии:
    2
    У меня нет особых проблем с режимом deep sleep: ESP8266 засыпает, затем через 5 мин просыпается, подключается к BLynk'y, отправляет данные с датчиков и снова в сон.
    Волнует другое, даже при таком относительно большом времени повторной записи/перезаписи в EEPROM ее срок службы составит около года в лучшем случае (см."Как избежать износа EEPROM").
    Подскажите, пожалуйста, есть ли какие-то решения для ESP8266, которые позволят не затереть память до дыр за очень короткое время кроме, как увеличения времени сна?
    Заранее благодарю за помощь.
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    3.979
    Симпатии:
    426
    зависит от того, какой объем вам надо сохранить и как часто.
     
  7. Cadil

    Cadil Новичок

    Сообщения:
    156
    Симпатии:
    2
    До сотни байт (температура, влажность, содержание СО2 - 2-4 знака) с обновлением в 1 раз в 5-10 мин.
    Вообще-то планировал узнать мнение тех, кто в в теме, про кольцевой буфер, прерывания по снижению питания, счетчик числа записей, другое. Возможно, какие-то решения найдены с момента выхода публикации. Понятно, производители микросхем не спешат решать эту проблему - чем быстрее вы угробите микросхему, тем быстрее купите новую.
     
  8. nikolz

    nikolz Гуру

    Сообщения:
    3.979
    Симпатии:
    426
    для записи до 256 байт используют память RTC внутри ESP. ЕЕ никогда не затрете и она сохраняется при deep-sleep.
    Если используете флеш то не надо использовать файловую систему а надо писать прямо во флеш.
    Расчет простой
    на ESP12 не менее 2 Мбайта свободной памяти. Если пишем 256 байт то это 8192 блока.
    При 100 000 ресурса и записи 1 раз в минуту получаем 1550 лет. Вам этого хватит?
     
    Cadil нравится это.
  9. Cadil

    Cadil Новичок

    Сообщения:
    156
    Симпатии:
    2
    Спасибо! Буду работать в этом направлении. Еще бы примерчик или хотя бы ключевые слова ...
     
  10. nikolz

    nikolz Гуру

    Сообщения:
    3.979
    Симпатии:
    426
  11. Cadil

    Cadil Новичок

    Сообщения:
    156
    Симпатии:
    2
    В одном из предыдущих постов я указал неправильный объем информации, который надо сохранять - до сотни байт. Я упустил из виду, что еще надо сохранять логин и пароль точки доступа Wi-Fi, а также ключ BLynk (20 знаков). Прошу прощения.
    Вывод простой: мне явно не уложиться в 256 байт, о которых идет речь в примере. Еще раз - извините.
     
  12. nikolz

    nikolz Гуру

    Сообщения:
    3.979
    Симпатии:
    426
    логин и пароль хранится во флеш автоматом
    объем памяти для записи данных пользователя в RTC 512 байт.
    system_rtc_mem_write
    Function:
    During deep sleep, only RTC still working, so maybe we need to save some
    user data in RTC memory. Only user data area can be used by user.
    |<--------system data--------->|<-----------------user data--------------->|
    | 256 bytes | 512 bytes |
    Note:
    RTC memory is 4 bytes aligned for read and write operations. Parameter
    des_addr means block number(4 bytes per block). So, if we want to save some
    data at the beginning of user data area, des_addr will be 256/4 = 64,
    save_size will be data length.
    Теперь хватит?
     
  13. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.127
    Симпатии:
    226
    а зачем их каждый раз перезаписывать? Они меняются каждую сессию? Вроде не должны. Так и храните их во флеш. От чтения он не портится, а если вы запишите его раз 20 - так это не страшно.
     
  14. Cadil

    Cadil Новичок

    Сообщения:
    156
    Симпатии:
    2
    @nikolz, @Сергей_Ф - вы правы! Логин и пароль хранятся во флеш и перезаписывать каждый раз их не нужно.
    Но это не мой случай. У меня логин, пароль и остальное заводятся с формы в браузере (см. картинку). Программно форма вызывается только тогда, когда невозможно подключиться сети с ранее сохраненными параметрами.
    Проблема все та же - форма хранится в файловой системе (SPIFFS), ресурс которой тоже сильно ограничен. Теперь понимаю, что надо как-то перезаписывать данные с файловой системы во флеш.
    Практически это можно реализовать?
     

    Вложения:

  15. nikolz

    nikolz Гуру

    Сообщения:
    3.979
    Симпатии:
    426
    Вы немного заблуждаетесь.
    пароль и логин вы вводите в браузере
    но когда подключаетесь то они записываются во флеш.
    SPIFFS - это тоже флеш.
    Но в отличии от прямой записи во флеш в SPIFFS реализован алгоритм экономии стирания и записи в одну и туже ячейку
    для работы именно с флеш и именно в страиваемых системах
    Это удобно когда вы действительно сохраняете и удаляете различные файлы
    Но в Вашем случае эти функции избыточны и приводят к избыточным стираниям.
    ------------------------
    Вы можете использовать SPIFFS а хранение своих данных организовать в циклическом буфере , либо в RTC, либо во флеш.
     
  16. Cadil

    Cadil Новичок

    Сообщения:
    156
    Симпатии:
    2
    Вы, похоже, забыли о своей дискуссии двухлетней давности.
    Цитирую оттуда:
    1. Наблюдал еще худшую ситуацию, сделал файл для сохранения текущих данных (закрывал по окончании записи), обновлял его раз в час.
    через ~ месяц система рухнула. Форматировал, повторил проект, через месяц опять рухнула.
    Теперь использую RTC MEM c батарейкой.

    2. Да. Когда начал тестировать на объеме - 2 записи в секунду, оно стало портить фс. Придется писать логи в сеть

    У меня тоже рухнула ФС. Так, что SPIFFS - это флеш, но не совсем та флеш ...
     
  17. nikolz

    nikolz Гуру

    Сообщения:
    3.979
    Симпатии:
    426
    Это не дискуссия а результаты работы.
    Как говорят в Одессе Почувствуйте разницу.
    -------------
    Это у Вас в этой теме дискуссия.
    -----------------
    Если вас интересует конкретика, то я не использую SPIFFS уже давно (ищите на форуме об этом)
    Я работаю с флеш напрямую, как вам и советовал.
    SPIFFS имела проблемы с максимальным объемом и длиной файла.
    Сейчас не знаю так как не использую.
    ---------------------------
    Кроме того, за прошедшее время и разработчики исправили глюки в SDK
    и я кое- что написал на уровне железа для работы с ESP
    В результате никаких проблем.
    -----------------
    Если у Вас нет конкретных вопросов, то желаю Вам успехов и прекращаю дискуссию.
    Мне не интересно.
     
    Cadil нравится это.
  18. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.127
    Симпатии:
    226
    вы их каждое включение/просыпания вводить будете? Тогда точно долго не проживёт. Ещё раз повторю: логин и пароль esp хранит сама во флеш. Вам это хранить где либо не нужно. Но можете, если сильно хотите продублировать. Остаётся неизменяемый токен/ключ. Запишите его во флеш один раз и только читайте. Записать можете "гвоздями" в коде, а можете из формы в браузере. А вот Изменяемые данные храните в RTC-памяти.
     
    Cadil нравится это.

Поделиться этой страницей