Загрузка задачами, отличными от исполнения
asm volatile ("waiti 0;"); // Wait for Interrupt
вызывает повышенное потребление у CPU.
В системе NON_OS_SDK процессор находится в цикле ожидания прерываний на данной команде wait 0 в ets_run().
Эта команда снижает его потребление. В цикле встроен опрос таблиц флагов софт-таймера и тасков.
Т.е. чем больше у вас включено софт таймеров или вы не вернули управление в ets_run(), тем больше жрет CPU.
CPU ESP8266 жрет более 50 мА на средней загрузке и более при любом копировании или работе с RAM.
При исполнении только wait 0 - средний ток вроде 17 мА (зависит от включенных доп. клоков, к примеру на I2S и другие потроха, а так-же от частоты CPU/PLL).
Передача WiFi ограничена TDP. Максимальный уровень не установлен, т.к. в разных SDK он разный.
В первых выделение тепла доходило до 1.5Вт и чип умирал. В последующих отладили ограничение по кривому датчику температуры и напряжению питания... Для этого требуется калибровка WiFi в инициализации. Т.е. это где-то (на ощупь
) к 1 Вт... КПД то передатчика фиговое...
Система тактирования (без CPU -> CPU = off) - генератор кварца и прочий минимум (таймер, PLL CPU, ...) жрет вроде к 5 мА по минимуму. Точных замеров на ESP8266 не делал.
Низкочастотный генератор на RC цепочке (RTC) и ключи питания - это актив в deep_sleep = от 20 мкА + потребление Flash после передачи команды ей sleep. Без неё - см. PDF на Flash.
ESP8266 по умолчанию, когда работает станцией, включает программно-аппаратный режим понижения питания (DTIM(1) минимум). Отключает таймеры, CPU, PLL на паузу между beacon. Перед окном приема beacon он включает PLL, ждет её устаканивания, принимает beacon, отрабатывает накопленные прерывания (не все!). Любая активность таймера или тасков пользователя в данном режиме повышает его потребление - на отработку их уходит время включенных всех потрохов, вместо сна... Итоговое среднее долговременное потребление в DTIM() (режим LIGTH) в реальных условиях от 15..17 мА (с условием, что сам ESP ничего не передает в сеть и к нему никто не ломится, иначе будет чаще отключаться DTIM() режим и переходить на постоянную активность с жором за 80 мА в более пары секунд после каждой итерации приема-передачи данных - это у других называется LPS и IPS режимы и имеют настраиваемую конфигурацию, в отличии жестокой, заданной Espressif у ESP).