Chris Petrich
github.com
Пробная закупка 1000 датчиков DS18B20 у 70 различных продавцов и их проверка, показала, что большинство из них являются подделками или клонами с чрезвычайно разными техническими характеристиками
Инженер Крис Петрич предупреждает: «Ваш датчик температуры DS18B20, скорее всего, подделка, фальшивка, клон… Если вы не купили микросхемы непосредственно у производителя Maxim Integreted (Dallas Semiconductor в прошлом), у официального дистрибьютора (DigiKey, RS, Farnel, Mouser и т.д.), или у крупного розничного продавца, или же вы приобрели исключительно качественные готовые водонепроницаемые датчики на DS18B20». Мы приобрели более 1000 шт. готовых водонепроницаемых датчиков на DS18B20 или отдельных микросхем у более чем 70 различных поставщиков на широко известных торговых площадках, онлайн-магазинах в 2019 году. Все готовые датчики температуры, купленные на eBay и AliExpress, содержали поддельные микросхемы DS18B20, и почти все микросхемы, купленные на этих торговых площадках, были поддельными.
Как определить?
Если ПЗУ (ROM) микросхемы не соотвествует шаблону 28-xx-xx-xx-xx-00-00-xx, то микросхема DS18B20 является клоном [1].
Также автор предоставляет два скетча Arduino для тестирования датчиков (доступны для скачивания в разделе загрузок):
- discover_fake_DS18B20.ino – выполняет некоторые безопасные тесты и сообщает, есть ли какие-то отклонения от подлинного DS18B20. Данный скетч не предназначен для работы с датчиком в режиме паразитного питания.
- classify_fake_DS18B20.ino – это минимальная реализация классификации датчиков по определенным семействам (см. ниже), которая основана на ответах на недокументированные коды функций. Результат работы теста достаточно точный. Автор предупреждает, что работа данного скетча может вывести микросхему DS18B20 из строя, действуете на свой риск!
Почему стоит переживать?
Помимо неких эстетических соображений, некоторые из поддельных датчиков фактически не работают в режиме паразитного питания, имеют высокий уровень шума, погрешность измерения вне заявленной полосы ±0.5 °С, не содержат энергонезависимую память (EEPROM), имеют ошибки и несоответствующие нормы отказов, или отличаются по другими параметрам из спецификации производителя. Понятно, что проблемы не настолько велики, чтобы отговаривать людей покупать датчики на eBay, но может быть полезно знать реальные характеристики, когда получаемые данные важны или измерения выполняются в сложных условиях.
С чем мы имеем дело?
Определения понятия «подделка» разнятся, но согласно документу AIR6273 подделка представляет собой умышленное несанкционированное копирование, имитацию, замену или модификацию подлинного предмета от авторизованного производителя [3]. Начиная с 2019 года основной проблемой являются копии (клоны), имеющие определенную маркировку, чтобы ввести в заблуждение ничего не подозревающего покупателя. К счастью, клоны DS18B20 почти легко идентифицировать: маркировка на чипе напечатана, а не нанесена лазером? Нет отметки на заднем отступе? Вероятно, подделка. Содержимое памяти (регистра «блокнота», Scratchpad) не соответствует спецификации? Вероятно, подделка. Систематически ведет себя не так, как подлинный датчик? Вероятно, подделка.
На что они похожи?
На Рисунке 1 приведен пример подлинного датчика DS18B20 производства Maxim в корпусе TO-92.
Рисунок 1. | Пример маркировки оригинальных датчиков DS18B20 на корпусе TO-92. |
На момент написания статьи (2019) маркировка оригинальных микросхем Maxim наносилась лазером, а не печаталась.
- Первые две строки, DALLAS 18B20, указывают, что это датчик DS18B20 (Dallas Semiconductor является первоначальным производителем), датчики только с паразитным питанием маркируются DALLAS 18B20P.
- Знак «+» в четвертой строке означает, что компонент соответствует требованиям RoHS.
- 3-я строка указывает год выпуска и номер недели в году (в данном случае это 32 неделя 2019 года).
- Последние два символа в строке 3 указывают ревизию кристалла (на данный момент С4).
- В строке 4 трехзначное число, за которым следуют два символа, является формой кода партии, которая позволяет Maxim отследить историю производства.
- В микросхемах, выпущенных в 2016 году или позже, встречалась только комбинация символов AB и AC [1].
Маркировка внутри отступа на задней части:
- Маркировка P (Филиппины?). На всех последних микросхемах (2016 и моложе) и на большинстве микросхем, выпуск которых уходит, как минимум, в 2009 год.
- Маркировка THAI <буква> (Таиланд?), где <буква> - это одна из I, J, K, L, M, N, O, S, T, U, V, W, X, и, возможно, других, по крайней мере, на некоторых микросхемах произведенных в 2011 году [1]. Шрифт <буквы> отличается от шрифта символов, составляющих слово THAI.
Из того, что было автором замечено на корпусе TO-92, только для микросхем с маркировкой P в отступе на задней части один код партии соответствует коду даты производства. Это не относится к микросхемам с маркировкой THAI в отступе.
Как узнать, что попался поддельный датчик DS18B20?
Если датчик DS18B20 был приобретен у официального дилера через контролируемую цепочку поставок, то он является подлинным.
В противном случае автор приводит два варианта:
- Можно проверить соответствие паспорту (техническому описанию, даташиту). На самом деле, такая проверка должна быть в любом случае, поскольку даже подлинные приборы могут быть неправильно обработаны, наряду с неавторизованными цепочками распространения. Если датчик не проходит ни один из тестов, то это подделка (если только сама реализация производителя Maxim не содержит ошибок, как в случае кристаллом ревизии B7, в котором выявлено появление ошибок в EEPROM [1]).
- Можно сравнить поведение датчика с датчиком DS18B20 производства Maxim. Это основано на предположении, что все датчики DS18B20 производства Maxim ведут себя одинаково. Это справедливо, по крайней мере, для датчиков имеющих общий код ревизии кристалла (который был С4 с 2009 года).
Что касается первого варианта, то должно наблюдаться несоответствие между тем, что говорится в техническом описании, и тем, что реально содержит датчик [1]. Таким образом, автор вывел некоторую условную классификацию поддельных датчиков DS18B20 и разделил их по семействам:
- Семейство B: зарезервированные байты в регистрах памяти (Scratchpad) могут быть перезаписаны (в соответствии с инструкциями, указанными в техническом описании).
- Семейство C: датчик работает только в 12-битном режиме – байт 4 регистра памяти датчика (регистр конфигурации) всегда равен 0х7F.
- Семейство С: количество циклов записи EEPROM очень мало (порядка 10, а не > 50 тыс.)
- Семейство B1, D1: содержимое ROM может быть изменено программно – не фиксировано лазером в технологическом процессе.
- Семейство A2, B2, D: значительное количество датчиков с погрешностью измерения вне диапазона ±0.5 °С при 0 °С.
- Семейство D: датчик не работает в паразитном режиме питания (относится к большинству датчиков семейства D).
- Семейство D: значение температуры сразу после включения датчика составляет 25 °С, а не 85 °С.
- Семейство D: датчик не выполняет преобразование температуры с низким разрешением быстрее.
- Семейство D: зарезервированные байты 5 и 7 регистра памяти не равны 0хFF и 0х10, соответственно.
- Семейство D1: сохраняет значение температуры во время циклов включения/ выключения питания.
Таким образом, на момент написания статьи (2019) каждый доступный поддельный датчик DS18B20 не соответствует спецификации по крайней мере по одному параметру.
Для второго варианта есть один простой тест на различия с датчиками DS18B20 производства Maxim, который, по всей видимости, дает сбой у всех поддельных датчиков:
Это подделка, если его адрес ROM не соответствует шаблону 28-xx-xx-xx-xx-00-00-xx (ROM датчиков Maxim – это по сути 48-разрядный счетик со старшими битами по-прежнему равными 0). Кроме того, за редким исключением в семействе A2, ни один из поддельных датчиков не корректирует значение байта в регистре 6 или не отвечает корректно на коды недокументированных функций, касающихся значений Trim (калибровочные константы).
Помимо очевидных различий в реализации, таких как перечисленные выше в пунктах 1 и 2, существуют еще некоторые характеристики, которые можно использовать для классификации. Например, заявленное время для 12-разрядного преобразования (определяется путем опроса датчика о завершении преобразования после отправки кода функции 0х44 при комнатной температуре) является характеристикой отдельных микросхем и попадает в определенные диапазоны, определяемые внутренней схемой датчика:
- 11 мс: Семейство D1
- 28-30 мс: Семейство C
- 325-505 мс: Семейство A2
- 460-525 мс: Семейство D2
- 580-615 мс: Семейство A1
- 585-730 мс: Семейство B
Следовательно, между семействами A и B будут некоторые пограничные случаи, но простого измерения времени, затраченного на преобразование температуры, часто бывает достаточно, чтобы определить, является ли датчик поддельным.
Важным аспектом работы датчика является его способность подтягивать линию передачи данных к низкому уровню, преодолевая сопротивление фиксированного, подтягивающего к питанию (pull-up) резистора. Оказывается, эта характеристика сильно различается между указанными семействами. Спецификацией гарантируется, что датчик может обеспечить входной ток не менее 4 мА при напряжении 0.4 В в температурном диапазоне до +125 °С [2]. Отдавая ток 4 мА (подтягивающий резистор 1.2 кОм к питанию +5 В), датчики обеспечивали следующие значения низкого уровня напряжения при комнатной температуре (на каждое семейства было измерено от 5 до 10 датчиков):
- Семейство A1: 0.058 В - 0.062 В
- Семейство B2: 0.068 В - 0.112 В (все, за исключением одного датчика: 0.068 В - 0.075 В)
- Семейство C: 0.036 В - 0.040 В
- Семейство D2: 0.121 В - 0.124 В
Все датчики соответствуют спецификациям при комнатной температуре, но кластеризация данных по семействам очевидна. Это указывает на отличия в разработке аппаратной части. Было бы интересно повторить эти измерения при температуре 100 °С.
С другой стороны, датчик является фальшивкой, если напечатанная на корпусе комбинация дата-партия отсутствует в базе данных производителя Maxim (для выяснения потребуется обратиться в тех. Поддержку Maxim). Стоит знать, что существуют подделки, в которых используется «подлинная» комбинация даты и партии.
Обратите внимание, что ни один из вышеперечиленных пунктов не дает уверенности, что конкретный датчик DS18B20 является подлинным продуктом Maxim, но если какой-либо из приведенных выше тестов показывает «подделку», то это определенно подделка.
Извлечение кристалла DS18B20 из корпуса
В коллаже на Рисунке 2 показаны фотографии крситаллов микросхем DS18B20 всех семейств, с которыми автор столкнулся в 2019 г. Все фотографии имеют одинаковый масштаб, приблизительно 1.4 мм в ширину. Корпус датчика вскрывался с помощью кусачек (пассатижей), матрица извлекалась из пластикового корпуса путем кипячения в канифоли эпоксидной смолы и затем отмывалась ацетоном в ультразвуковой ванне.
Рисунок 2. | Кристаллы (матрицы) датчиков DS18B20 по указанным семействам, извлеченные из корпуса. |
Семейство A1 – это подлинный датчик DS18B20 производства Maxim Integrated (ревизия кристалла С4). Все остальные семейства – клоны. Обратите внимание на сходство между кристаллами семейств D1 и В1 (в соответствии с их сходством в программной части) и значительные различия между семействами B1 и B2 (в отличие от их сходства в программной части).
В своей статье [1] автор дополнительно приводит множество примеров соответствия приобретенных датчиков DS18B20 указанным семействам.
Дополнительные материалы
- Авторская статья и дополнительные материалы на сайте github.com
- DS18B20 Datasheet, Maxim Integrated
- AIR6273 "Terms, Definitions, and Acronyms Counterfeit Materiel or Electrical, Electronic, and Electromechanical Parts", SAE Aerospace Information Report, July 2019.