Пульсоксиметры MAX30100 / MAX30102 недорого стоят и популярны у радиолюбителей. К сожалению, самые дешевые платы модуля, которые тысячами штук продаются на Aliexpress, содержат фатальную ошибку. Я расскажу, как ее исправить.

Все сказанное далее в равной мере относится к новым модулям MAX30102 и устаревшим модулям на снятой с производства микросхеме MAX30100, поскольку они собраны на одинаковых платах.

Рис. 1. Модуль MAX30100 / MAX30102 с Aliexpress

Если вы заказали плату, изображенную на рис. 1 – поздравляю, у вас проблемы с цепями питания. Микросхеме требуется два напряжения питания:

  • 1,8V для питания АЦП и цифровой части (допустимый диапазон 1,7V – 2,0V)
  • 3,3V для питания встроенных светодиодов подсветки (диапазон 3,1V – 5,25V)

Внимательно посмотрите на схему модуля (рис. 2). В ней задействованы два линейных регулятора напряжения с низкими сквозными потерями (LDO). Первый формирует напряжение +3,3V из +5V (или просто пропускает насквозь питание +3,3V). Второй регулятор подключен к выходу первого и формирует напряжение +1,8V. Казалось бы, все правильно?

Рис. 2. Электрическая схема модуля MAX30100 / MAX30102

Теперь присмотритесь, куда подключены подтягивающие резисторы 4,7K для линий SCL, SDA и INT (толстая красная линия). Они подключены к линии питания +1,8V. Если такой модуль подключить к пятивольтовой плате Arduino, он не будет виден на шине I2C, потому что логические уровни слишком низкие. Впрочем, и с трехвольтовой платой шина I2C с такой подтяжкой может работать неустойчиво.

Эту ошибку легко исправить, как показано на рис. 3. Достаточно перерезать дорожку в месте красного крестика и сделать перемычку, показанную желтой линией. Для перемычки не нужен изолированный провод. Можно взять луженую жилку из многожильного провода. Плата покрыта защитной маской и замыкания на общий провод не будет.

Рис. 3. Исправления на плате модуля

Но не все так просто!

Как вы думаете, что сделали китайцы, когда узнали, что изготовили 100500 миллионов штук плат с ошибкой? Дышите глубже: вместо регулятора на напряжение 1,8V они начали устанавливать на плату регулятор с выходным напряжением 2,8V. Это подлый удар в спину радиолюбителю – не могу назвать это иначе. При таком напряжении питания шина I2C нормально работает с пятивольтовыми платами Arduino. На первый взгляд с модулем все в порядке. Он вроде бы работает и даже что-то измеряет. Однако для самой микросхемы пульсомера это напряжение далеко выходит за пределы допустимого диапазона.

Нет, микросхема не выходит из строя. Просто она измеряет что попало и как попало. В даташите четко сказано, что соблюдение диапазона питания необходимо для устойчивой работы встроенного счетчика (имеется в виду встроенный блок тактирования для АЦП и таймеров логики). В итоге мы с удивлением обнаруживаем, что сенсор профессионального уровня работает крайне нестабильно и совсем не так, как описано в интернетных статьях. Я убил целый вечер, чтобы понять, что происходит не так. Только когда ткнул щупом осциллографа в вывод SDA и увидел там логический уровень 2,8V, у меня появились подозрения.

Окончательная доработка

Измерьте напряжение на выходе второго регулятора. Если там +1,8V, значит вам повезло. После перерезания дорожки и установки перемычки доработка завершена. В противном случае дополнительно придется заменить регулятор. На плате должен быть установлен регулятор XC6206P182MR. Этот регулятор надо где-то приобрести. К сожалению, в крупных сетевых магазинах радиодеталей его предлагают только под заказ со сроком поставки 2-4 недели. За это время его проще и дешевле заказать из Китая. На Aliexpress лот из 100 регуляторов предлагают за $1,70. Будьте внимательны при заказе! Две цифры после буквы P обозначают рабочее напряжение. В нашем случае 18 обозначает 1,8V.

Раздобыв регулятор на 1,8V, сдуваем с платы неправильный регулятор и устанавливаем новый.

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