Вот гадаю, как уменьшить потребление при опросе двух датчиков ME18B20.
В даташите к ME18B20 нет варианта работы по одному проводу и опрос в таком режиме включения выдает всегда фиксированное значение в регистрах температуры.
Второй бедой у данных датчиков (ME18B20/DS18B20) является то, что при адресном обращении они требуют слишком длинного кода команд. Значительно превышающего весь цикл измерения.
Плюс у ME18B20 - он успешно работает при падении напряжения до 1.8В, не изменяя показания.
Получается, что нет смысла городить адресное обращение к паре датчиков, а проще повесить на разные выводы SoC. И одновременно урезать блок данных при считывании, т.к. новый сброс-presence занимает меньше времени, чем чтение ненужных байт полного фрейма с CRC. Но теряется CRC. И ладно, если применить непрерывный скользящий опрос шины 1-wire на каждом бите, то любые бяки и так будут выловлены. Так и напишем код драйвера...
Т.к. синхронную обработку нескольких датчиков на разных пинах писать сложнее, то для тестового расчета пока подключил одни датчик.
При использовании модуля типа TB-03F (TLSR8250) дополнительных деталей не требуется… Это хорошо.
Измерил что вышло.
Сигнал 1-wire при инициализации датчика MY18B20 - запись регистра конфигурации: ~ 2.5 ms, однократный, происходит при старте питания или сбое на шине 1-wire:
Сигнал на шине 1-wire при запросе, ожидании измерения и чтении значений измерения с датчика MY18B20 (~4 мс):
Это основная используемая транзакция. Без адресного режима и без CRC.
Далее оцениваем затраты питания. Для это возьмем такой цикл – опрос датчика каждые 10 сек и четыре BLE передачи.
Смотрит на прибавку к каждому 4-ому активному циклу работы SoC:
Пробуждение SoC из сна (~1.5 мс), передача BLE advertise по 3-м каналам со сканированием запросов подключения или расширенного ответа (~2.2 мс), запрос и чтение измерения с датчика MY18B20 (~4 мс), хвост питания датчика MY18B20 (~31 мс):
Т.е. раз в 10 секунд имеем добавку в виде (3мА 4.5 мс):
А общее среднее потребление - 10.99 мкА.
Все замеры сделаны при питании 3.3В.