Понадобилось мне один свой проект по-быстрому дополнить возможностью доступа к прибору через 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 мА, можно запитать модуль прямо от порта МК, не используя дополнительных ключей.
nikkadim
nRF52832 (nRF52840)
infocenter.nordicsemi.com/pdf/nRF52832_PS_v1.1.pdf ~2мкА во сне.