Понадобилось мне один свой проект по-быстрому дополнить возможностью доступа к прибору через Bluetooth. Взгляд мой упал на давно валявшийся в столе модуль MLT-BT05 (такой, как на КДПВ), с которым когда-то поигрался, убедился в том, что байтики туда-сюда бегают и AT-команды отрабатываются, да и отложил за ненадобностью. На плате прибора был разведен и выведен на разъем свободный UART и оставалось только припаять модуль к его ответной части и дописать соответствующий код в прошивку. Возникал только один вопрос: питание у прибора батарейное, так что лишнее потребление нам ни к чему. Особенно когда модуль не используется. Bluetooth в нем, конечно, Low Energy, но возник вопрос, насколько low эта energy. Поиск не дал результатов -- единственная найденная цифра была "до 50 мА". Значит, придется измерять самостоятельно.

Пробуем мультиметром

Мультиметр разочаровал. Нет, он показал примерно 8,5-8,7 мА, когда модуль в активном состоянии, независимо от того, бегают данные или нет, и независимо от настройки мощности (такое впечатление, что ничего она не настраивает), режима работы и т.п. Но когда я отдал команду AT+SLEEP, мультиметр стал показывать лишь пляшущие циферки -- ток то падал до нуля, то подскакивал до 2-3 мА. Собственно, это и ожидалось -- ведь в спящем режиме модуль должен время от времени просыпаться и что-то делать, чтобы к нему можно было подключиться. Но как узнать, сколько на самом деле потребляет наш "синий зуб". И самое главное -- можно ли "задавить" это потребление в нерабочем состоянии до близкого к нулевому, избежав необходимости вводить в схему дополнительное управление питанием?

Включаем осциллограф

Предварительно впаяв в разрыв питания резистор на 10 Ом. Соответственно, 1 мА тока будет соответствовать падению напряжения 10 мВ.

В активном режиме наблюдаем примерно то, что показывал мультиметр. То есть постоянное потребление около 8,5 мА, перемежаемое то ли короткими импульсами, то ли помехами. А в режиме сна уже интереснее. Вот осциллограмма на скорости развертки 20 мс/дел.

Тут много помех, но на их фоне отчетливо видны две последовательности импульсов потребляемого тока. Между маленькими импульсами четко 100 мс, между большими чуть больше -- 106 мс, при этом большие импульсы с маленькими никак не связаны, то попадая друг между другом, то накладываясь друг на друга. Но интервалы между двумя маленькими или двумя большими импульсами все время одинаковые.

А тут осциллограммы маленького и большого импульсов укрупненно.

Так выглядит потребляемый ток в режиме Peripherial (AT+ROLE0), когда модуль готов к подключению извне и сигналит в эфир, передавая свой "позывной", для того, чтобы его можно было найти и подключиться к нему. Если мы переключим модуль в режим Central (AT+ROLE1), то в спящем режиме он замолкает. Потребление явно снижается, но не до нуля. На осциллограмме потребляемого тока исчезают большие импульсы -- вероятно, это ток передатчика. Маленькие же остаются, интервал между ними не изменяется. В обоих режимах ни на интервалы между этими импульсами потребления, ни на их амплитуду не влияют никакие настройки, осуществляемые AT-командами.

Меня интересовали именно эти два режима, в которых данный модуль эмулирует обычный последовательный порт через классический Bluetooth, правда, с присущим Bluetooth LE ограничением длины сообщения в 20 байт. У данного модуля есть ряд других режимов, специфических для LE-версии интерфейса, но они не представляли для меня интереса.

А теперь посчитаем

Знаете, как интегрировать с помощью ножниц? Для этого график вырезают из бумаги и кладут на весы. Когда у нас в аналитическом практикуме была задача по хроматографии, мы перерисовывали пики на рентгеновскую пленку -- она тяжелая, точность выходит лучше. Здесь я воспользовался прозрачной пленкой из-под ламинатора, наложенной на экран осциллографа, на которой маркером обвел кривые. Поделив отрезанную площадь на длину отрезка и пересчитав все обратно в миллиамперы, я получил следующие значения среднего тока:

  • у маленького импульса 7,8 мА за 2 мс;

  • у большого -- 12,9 мА за 4,2 мс.

Отсюда получаем:

  • для маленьких импульсов средний ток Iср = 7,8 мА * 2 мс / 100 мс = 0,156 мА;

  • для больших -- Iср = 12,9 мА * 4,2 мс / 106 мс = 0,511 мА.

В режиме AT+ROLE0 потребляемый ток включает обе серии импульсов, так что потребляемый ток в этом режиме равен сумме этих токов и составляет 0,667 мА.

Заключение

Итак, мы имеем следующие значения потребляемых токов в различных режимах работы модуля:
В активном режиме: 8,5..8,7 мА

В режиме сна:

  • в центральной роли: 156 мкА

  • в периферийной роли: 667 мкА.

Потребляемый ток не удается опустить ниже 156 мкА никакими настройками и этот ток явно слишком велик для потребления от батареи "выключенного" устройства, так что если выключение питания в вашей конструкции сделано переводом МК в режим STANDBY, придется озаботиться для модуля персональным ключом для его обесточивания. Впрочем, при потребляемом токе не более 10 мА, можно запитать модуль прямо от порта МК, не используя дополнительных ключей.