• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Esp8266 deep sleep - глубокий сон

Vovka

Member

Надо: SD_sel != 3'b010, не надо: SD_sel == 3'b010
Следовательно GPIO_13, GPIO_14, GPIO_15 не должны давать 0,1,0 при старте.
Некоторые подтягивают GPIO_13 резистором типа 10кОм к "+"...
В некоторых модулях уже стоит резистор на GPIO_14 к GND (- так было 10 лет назад, а лет 8 я уже не общаюсь с ESP8266)...
И т.д.
Понял, буду пробовать
 

Vovka

Member
Думаю ладно, что-то не так напаял на макетке.
Взял эту плату и другую новую ESP12 из этой партии - тоже самое!
 

Вложения

  • 88.2 KB Просмотры: 3

CodeNameHawk

Moderator
Команда форума
Как вариант, снять модуль с платы, подключить резисторы навесным монтажем и проверить зажигая светодиод, после выхода из сна, задержка, выключение светодиода и снова сон.
 

Vovka

Member
Значит беда с программой.
Вот простенький пример:
Код:
#include <Arduino.h>

#define PIN_LED            2    // светодиод
#define PIN_LED_OFF    digitalWrite( PIN_LED,  HIGH );
#define PIN_LED_ON    digitalWrite( PIN_LED,  LOW );

void setup()
{
    char a;
    pinMode(PIN_LED,    OUTPUT );    PIN_LED_ON;

    Serial.begin(74880);
    while (!Serial) delay(10); Serial.println("\r\n*");        for( a=0; a<5; a++ ) { Serial.print("."); delay(1000); }    Serial.print("\r\n");

    for( a=0; a<3; a++ ) {
        PIN_LED_OFF;
        delay(500);
        PIN_LED_ON;
        delay(500);
    }

    PIN_LED_OFF;

    Serial.println("deepSleep:");
    ESP.deepSleep( 5 * 1000000 );

    Serial.println("deepSleep???");    // мало ли...

}

void loop()
{
    Serial.println("loop()");
    delay( 1000 );
}
После нажатия на кнопку сброса, выводит:

ets Jan 8 2013,rst cause:1, boot mode: (3,6)

load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld

*
.....
deepSleep:

ets Jan 8 2013,rst cause:2, boot mode: (3,6)

Все, завис, пока сброс не коротнешь на минус...
 

pvvx

Активный участник сообщества
После нажатия на кнопку сброса, выводит:

ets Jan 8 2013,rst cause:1, boot mode: (3,6)

load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld

*
.....
deepSleep:

ets Jan 8 2013,rst cause:2, boot mode: (3,6)

Все, завис, пока сброс не коротнешь на минус...
Что вы код то ломаете? Он у вас bootloader не грузит - где указана загрузка после "deepSleep:" ?:
Код:
load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
?
 

Vovka

Member
Что вы код то ломаете? Он у вас bootloader не грузит - где указана загрузка после "deepSleep:" ?:
Как это не грузит? Если я правильно понимаю, то после deepSleep() и выдержки времени, модуль должен уйти на перезагрузку?
Вот чтоб в этом убедиться я и вставил после deepSleep() вывод в сериал - она ж ведь не должна выполниться?
 

Vovka

Member
33.jpg
После заливки кода, программатор отключаю и модуль подключен только по двум проводам питания.
Модуль виснет.

Запускаю с программатором, в мониторе теперь добавилась еще одна строчка, но все равно виснет:

Код:
 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld

*
.....
deepSleep:

ets Jan  8 2013,rst cause:5, boot mode:(3,7)

ets_main.c
 

pvvx

Активный участник сообщества
Осталось ещё:
1. Неправильные настройки прошивки (типа Flash - DIO, QIO, ...)
2. Неправильный конфигурационный файл "esp_init_data_default.bin"
И подобное...
 

CodeNameHawk

Moderator
Команда форума
Важный вопрос упустили, насчёт питания.
И, для проверки, удалите весь код работы з сериал.
Вы хоть сами видите на фото детали?
 

Vovka

Member
Важный вопрос упустили, насчёт питания.
И, для проверки, удалите весь код работы з сериал.
Вы хоть сами видите на фото детали?
К питанию претензий нет: отлажена не одна плата
Удалил код с сериалом - ничего не поменялось
Там СМД-детали... попробую еще сфоткать....
 
Сверху Снизу