Вопрос по выбору железа с низким потреблением энергии

Доброго времени суток. Имеется идея в разработке некоего устройства для работы от батарейки. Из требований:

  1. Датчик и mcu общаются по i2c
  2. Срок работы от батареи минимум 3 месяца
  3. Периодически отправка накопившихся данных по wifi на сервер
    Из пожеланий:
  4. Наличие bluetooth
    Если с выбором датчиков для проекта я определился, но теперь не могу выбрать MCU. Отправлять микроконтроллер в сон и ждать прерывания или просыпаться через какое-то время не вариант, тк датчику нужно постоянно общаться по i2c. Собственно что есть такое, что может постоянно общаться по i2c и не кушать много энергии.

I2C и низкое энергопотребление, это разные понятия.

нет такого

Насколько “постоянно” датчику нужно общаться по И2с? 100 раз в секунду, 1 раз в секунду, раз в пять минут? Что за датчик(тип, модель) ?

Бред какой-то.

Цифры “много” нет в математике. Будь добр, оперируй точными значениями, иначе это пустой разговор.

менее 10мА

датчик STHS34PF80

У этого датчика помимо И2с есть пин, который дает сигнал при определении движения. Этот пин можно использовать для пробуждения контроллера через прерывание. А уже после пробуждения опрашивать датчик по И2с обычным образом.

10 мА это совсем не низкое потребление. Для примера попробуйте посчитать, какая должна быть батарея, чтобы питать нагрузку 10 мА в течении трех месяцев. - это вам автомобильная батарея понадобится.
Типичное потребление для мобильных устройств - примерно в 1000 раз ниже приведенной вами цифры.

Вы верно прочитали нужное мне условие? Я знаю о наличии этой функции, но использовать не могу ввиду некоторых особенностей логики работы устройства.

так же вы пропустили слово “менее”, что означает, что у меня есть возможность поддержать его работу при потреблении до 10мА. Но чем меньше тем лучше.

Собственно, со встроенным Вайфай сейчас на рынке только два МК - это ЕСП8266 и ЕСП32. У обоих ток потребления в активном режиме в разы более 10 мА (даже без использования сети) - у ЕСП32 30мА, у ЕСП8266 от 30 до 60. В момент передачи данных по Вайфай это значение вырастает до 150-250мА.

Вывод - похоже что весь комплекс исходных условий выполнить не удастся, придется от чего-то отказаться.

Esp32 вполне покроет.

А зачем его держать в активном режиме? Там есть замечательный ulp копроцессор, который кушает при 100% нагрузки 1.5мА. И я еще сомневаюсь, что его нужно нагружать на 100%. Есть light sleep режим, в котором основной процессор кушает меньше 1мА. Есть modem sleep, в котором процессор кушает 2.5мА и поддерживает связь с точкой доступа.

Хотя в принципе, можно собрать франкенштейна из двух МК. Датчик опрашивать каким-нибудь Атмега88, запущенным на низкой частоте ядра - например на 1 МГц он потребляет всего 0.5мА в активном режиме. А Вайфай слать отдельным 8266, включаемым только в момент отсылки данных.
Но тут надо четко просчитать затраты, чтобы средний ток не вылез за 10мА - память у АТмеги88 небольшая и данные придется отсылать часто. А вайфай дело затратное(смотри цифры выше)

а что на счет решения от realtek? конкретно про ameba. Или rp pico w? вроде как cortex m0 умеет в низкое энергопотребление, но я нигде не могу найти конкретных кейсов использования…

rp pico w это два МК на одной плате - один кортекс, а второй тот же есп32. И потреблять они в сумме будут больше, а не меньше.

ТС настаивает, что ему нужный постоянный обмен с датчиком по и2с

Да, но wifi в активном режиме всегда держать мне не надо

И? Ты понимаешь, что и2с работает независимо от проца? Проц может спокойной спать, пока идет передача. И это будет 99% времени.

Видимо не понимаю… Как без включенного процессора я буду работать с данными приходящими по i2c?

Когда придет тогда и включится. Обработал, запустил следующую передачу, нечего делать - выключился.