.除非您直接从Maxim Integrated(或过去的达拉斯半导体)、授权分销商(DigiKey、RS、Farnell、Mouser等)或大型零售商购买芯片,或者您在购买防水DS18B20探头时格外小心。2019年,我们在eBay、全球速卖通和大大小小的网店上从70多家不同的供应商那里购买了1000多个防水探头或裸芯片。在eBay和全球速卖通上购买的所有探头都含有假冒的DS18B20传感器,这两个网站上购买的几乎所有传感器都是假冒的。
(根据传感器或探头订购的传感器或探头的信息标记为";(2020)";,而不是在2019年或2019年左右订购。)。
如果ROM不遵循模式28-xx-00-00-xx,则DS18B20传感器是克隆的[5]。
DISCOVER_FAKE_DS18B20.ino执行一些无害的测试,并指示它们是否与真实的DS18B20有偏差。不能与寄生电源一起工作。
CLASTIFY_FAKE_DS18B20.ino是根据对未记录功能代码的响应将传感器与特定系列(见下文)匹配的最小实现。产出是具体的,但相当乏味。自费使用。
除了伦理问题外,一些假冒传感器实际上无法以寄生电源模式工作、具有高噪声水平、温度偏移超出所宣传的±0.5°C频段、不含EEPROM、存在错误和未指明的故障率,或者与Maxim数据手册中的规格以另一种未知方式不同。显然,这些问题还不足以阻止人们在eBay上购买探头,但当数据重要或测量条件困难时,了解实际规格可能是件好事。
定义不同,但根据AIR6273,假冒产品是未经授权的复制、模仿、替代或修改,错误地表示为来自授权制造商的特定正品[13]。截至2019年,主要问题是贴上标签误导毫无戒心的买家的仿制品(克隆)。幸运的是,DS18B20的克隆几乎很容易识别:芯片上的标记是打印的,而不是激光的?后面的凹痕上没有记号吗?可能是假的。便签簿的内容是否与数据表不符?可能是假货。系统地表现出与已知的正品芯片不同?可能是假货。
截至撰稿(2019年),MAXIM原创芯片的顶标是激光而不是打印。
前两行,Dallas 18B20,指定此部件是DS18B20(Dallas Semiconductor是原始生产商),
第3行指定一年的生产年份和周数(在本例中为2019年第32周),以及。
第3行的最后两个字符指定骰子的版本(当前为C4)。
在第4行中,后面跟两个字符的三位数字是一种批次代码形式,允许Maxim追溯生产历史。在2016年或以后生产的芯片中,我只遇到过AB和AC的字符组合[5]。
表壳背面缩进内的标记为P(菲律宾?)。在所有最新的芯片上(2016及更年轻),以及大多数(?)。芯片至少可以追溯到2009年[5]。
泰语<;字母>;(泰国?)。其中<;Letter>;至少在2011年生产的一些芯片上是I、J、K、L、M、N、O、S、T、U、V、W、X和可能的其他字符之一[5]。<;字母>;使用的字体与组成泰语的字母不同。
从我所看到的情况来看,在缩进[5]中,恰好有一个批次代码与标记为P的芯片的日期代码相关联。这并不适用于缩进中标有泰式的芯片[5]。
如果DS18B20是通过受控供应链从授权经销商那里购买的,那么这些芯片就是合法的。
否则,(I)可以测试数据手册的符合性。(实际上应该这样做,因为即使是正品部件也可能在未经授权的分销链上处理不当。但这是另一个问题。)。如果传感器没有通过这些测试中的任何一个,那么它就是假的(除非Maxim的实现有缺陷[4])。(Ii)可以将传感器的行为与Maxim生产的DS18B20的行为进行比较。这些测试基于这样的假设,即所有Maxim生产的DS18B20的行为都是一样的。至少对于共享芯片代码(至少从2009[5]以来一直是C4)[5]的传感器来说,情况应该是这样的。
关于(I),当前数据手册所说的应该发生的情况与传感器所做的情况之间存在差异[1,5]。
系列B:可以覆盖便签簿寄存器中的保留字节(按照数据表中的说明操作)。
系列C:传感器固定在12位模式(即,便签簿寄存器的字节4始终为0x7f)。
系列C:EEPROM写入周期数非常少(数量级为10,而不是>;50k)。
A2、B2、D族:在0°C时偏移量超出±0.5C范围的大量传感器。
D系列:传感器在寄生模式下不响应(适用于D系列的大多数传感器)。
系列D:暂存寄存器的保留字节5和7分别不是0xff和0x10
因此,截至撰写本文时(2019年),每一个可用的假传感器至少在一个方面与数据手册不符。
关于(Ii),有一个可悲的简单测试来检验Maxim生产的DS18B20传感器的不同之处,显然所有的仿冒传感器都不合格[5]:
如果其ROM地址不遵循模式28-xx-00-00-xx[5],则它是假的。(Maxim的ROM本质上是一个最高有效位仍为0[5]的48位计数器。)此外,除了稀有系列A2之外,没有一个伪传感器正确调整便签簿寄存器中的保留字节6,或正确响应有关修整值的未记录功能代码。
除了上面(I)和(Ii)项下列出的那些明显的实现差异之外,还存在可用于分离实现的旁路数据。例如,报告的12位温度转换时间(通过在室温下功能代码0x44之后轮询完成来确定)是单个芯片的特征(恒温下可重现到远好于1%),并且落在电路内部元件确定的不同范围内[5]:
因此,A和B家族之间会有一些边缘情况,但简单地测量用于温度转换的时间通常就足以确定传感器是否为假冒的。
操作的一个重要方面是传感器能够将数据线拉低到固定的上拉电阻。事实证明,这一点在不同的家庭中是不同的。该数据手册保证传感器在任何温度高达125°C[1]的情况下,在0.4 V电压下至少能下沉4 mA。在提供4 mA电流(1.2科姆上拉电阻对5 V)的情况下,传感器在室温下实现了以下低电压(请注意,每个系列仅测量5至10个传感器):
在室温下,所有传感器都在规格范围内,但按系列划分的数据群集很明显,这表明硬件是独立设计的。在100°C以上重复这些测量可能很有趣。
如果传感器外壳上打印的日期-批次组合不在Maxim数据库中(需要咨询Maxim技术支持以查明),则为假货。(请注意,有些假货使用正品日期--批次组合。)
请注意,以上各点都不能确定某个特定的DS18B20是正品Maxim产品,但如果上面的任何一项测试表明是假货,那么它就是最明显的假货[5]。
除了最初由达拉斯半导体生产并在收购达拉斯后由Maxim Integrated继续生产的DS18B20(A1家族,下文),截至2019年,还有至少4家其他公司独立生产的克隆(B1、B2、C、D家族)[5]。对家族的划分是基于芯片响应的未记录功能代码中的模式,因为该级别的相似性不太可能是一致的[5]。B1家族的芯片似乎是由GXCAS生产,由GXCAS和UMW独立校准和销售。B2系列芯片由北京7Q科技(7Q-Tek)生产。UMW和7Q-Tek在各自的网页上都有相应的数据表。D1家族似乎正在淡出人们的视线,取而代之的是D2家族。A2家族的芯片是一种罕见的发现,其性能与正品芯片惊人地相似,但温度准确性很差。
在我们2018/19年从中国、德国和英国购买的防水DS18B20探头的eBay中,大多数批次都有B1家族的传感器,而三分之一的购买都有D家族的传感器,没有一个是A1或C家族的传感器,产地和价格都不是传感器家族的指标。在购买DS18B20芯片时,D2家族明显占优势,B2家族次之,获得A1或C家族芯片的可能性很小。
在下面的ROM模式中,tt和ss代表生产运行中的快变值和慢变值[5],CRC是数据表[1]中定义的CRC8校验和。
这张拼贴画展示了我们在2019年遇到的所有DS18B20家庭的死亡照片。所有照片的比例都差不多。宽1.4毫米。我们用钳子将TO-92外壳打开,在树脂中煮沸将模具从塑料外壳上分离出来,并在超声浴中用丙酮取出树脂。照片是用一台相当古老的USB相机拍摄的。
A1系列是MAXIM生产的正宗DS18B20(C4管芯)。所有其他家庭都是克隆人。注意D1和D2族的模具之间的相似性(与它们在软件上的相似性一致),以及B1和B2族之间的显著差异(与它们在软件上的相似性相反)。
2019年在eBay或全球速卖通上没有获得含有这些芯片的探针,但在2019年从几家供应商那里获得了芯片。
ScratchPad寄存器:(<;字节0>;+<;字节6>;)&;0x0f==0,且0x00<;<;字节6>;<;=0x10[2,3,5]。即<;字节6>;=0x10-(<;字节0>;&;0x0f)。
根据当前行为[5]和早期数据手册[9],ScratchPad寄存器中保留<;字节6>;的上电状态为0x0c。
如果使用函数代码0x93和0x68分别查询,则返回";Trim1";和";Trim2";值[4]。在一次生产运行中,位模式彼此非常相似[4]。与Trim1相比,Trim2当前不太可能等于0xff[5]。Trim2至少从2009年开始就是0xDB或0xDC,自2016年秋季以来一直是0x74(都是C4 DIE)[5]。Trim1和Trim2编码两个参数[5]。设Trim1的位模式为[t17,t16,t15,t14,t13,t12,t11,t10](MSB至LSB),Trim2为[t27,t26,t25,t24,t23,t22,t21,t20]。然后,偏移参数=[t22,t21,t20,t10,t11,t12,t13,t14,t15,t16,t17](无符号11位值)[5],以及。
在一个批次内,偏移参数似乎分布在20到30个单位上,而批次内的所有传感器共享相同的曲线参数[5]。
OFFSET参数在大约范围内移动温度输出。曲线参数使温度在3.88°C(0.053°C/单位)的范围内移动,至少在当前版本的芯片[5]中是这样。2019年的示例值为偏移=0x420和曲线=0x0E,即它们位于各自范围的中心位置。
当前批次(2019年)的温度偏移量如Maxim常见问题页面所示,即大约。0°C时+0.1°C[6](即与数据手册[1,9]中所示不同。数据手册上的图表来源于10多年前引入传感器时的测量结果[5,10]。即使有温度离散化噪声,也非常少[5]。
功能代码0x44之后的轮询显示室温下12位温度转换的传感器之间的扩展为584-615 ms[5]。单个芯片的转换时间很容易重复。较低的分辨率会按比例减少时间,即11次位转换需要一半的时间。修剪参数会影响转换时间。
如果在温度转换完成之前读取便签簿寄存器(在正常和寄生电源模式下),则返回85°C的上电温度。[5]。
如果温度转换不成功[5](例如,由于电源稳定性问题,如果Vcc保持浮动而不是接地,则在具有多个DS18B20的寄生电源模式下会重复出现这些问题),芯片似乎会返回127.94°C(=0x07FF/16.0)的温度。请注意,数据手册清楚地说明VCC将以寄生模式绑定到GND。)
2019年在eBay或全球速卖通上没有获得含有这些芯片的探针,但在2019年从一家供应商那里获得了芯片。
如果让我胡乱猜测,我会说这些芯片被转移到Maxim生产管道的尽头(被盗?)[5]。有趣的事实:卖家宣传这些芯片是QT18B20,所以卖出的这些芯片实际上是DS18B20克隆的假冒产品。这些芯片标明是泰国生产的,而不是菲律宾生产的。
两个修剪值均为0x00,导致错误的温度(即非常低)和400至500毫秒范围内的转换时间。将修剪值设置为合理值后,温度转换时间将在上面为族A1指定的范围内。
2019年在eBay或全球速卖通上没有获得含有这些芯片的探针,但在2019年从一家供应商那里获得了芯片。
Trim2值是0xFB或0xFC,即与日期代码建议的已知[5]Maxim产品不兼容。(请注意,这意味着曲线参数是0x1f,即可能的最高(无符号)值[5]。此外,偏移参数的分布范围超过200个单位,而不是族A1[5]的典型范围。)。曲线参数是一个带符号的5位值,它在31°C(每单元1°C)的范围内移动温度[5]。即,曲线参数0x1f(十进制为-1)位于范围的中心。
芯片之间的温度转换时间跨度非常宽,从325毫秒到502毫秒[5]。即使在应用较新的修剪设置[5]时,此范围仍保持较宽且超出A1族的边界。转换时间随温度的升高而显著增加(约。100°C以上10%)[5]。<;500 ms的转换时间与7Q-Tek QT18B20数据表[12]中的声明兼容。
如果在寄生电源模式下完成温度转换之前读取便签寄存器,则不会返回85°C的上电温度[5]。
0°C时的典型温度偏移为-3.5°C至-1.8°C[5]。(坊间传闻:温度越高,误差似乎越小[5]。)。即使有温度离散化噪声,也非常少[5]。
顶部标记是打印的,而不是激光,并且缩进中没有标记。
2019年从多家供应商获得探头,2019年从两家供应商获得芯片。一家供应商寄出了标有UMW而不是达拉斯的芯片。
DS18B20写入便签本错误(0x4E)/UMW便签本[5,12,14]:如果发送了3个数据字节(根据DS18B20数据表,TH,TL,Config),则字节6将更改为发送的第三个字节,
如果发送了5个数据字节(根据UMW数据表,TH,TL,Config,User Byte 3,User Byte 4),则最后两个字节将分别覆盖第6字节和第7字节。
不返回关于未记录的功能代码0x68[5]的数据。返回代码0x90、0x91、0x92、0x93、0x95和0x97[5]的数据。响应0x97的返回值为0x22[5]。
ROM代码可以用命令序列";96-cx-Dx-94";[5]在软件中更改。(UMW数据手册规定ROM代码可以更改,但没有具体说明如何更改[14]。)。不能更改系列代码(0x28)[5]。
如果在寄生电源模式下完成温度转换之前读取便签寄存器,则用0x0c替换<;字节6>;的实际值。
温度偏差如MAXIM数据手册所示(-0.15°C,0°C)[6]。即使有温度离散化噪声,也非常少[5]。
功能代码0x44之后的轮询指示近似。12位温度转换时为589-728 ms,较低分辨率时按比例更短[5]。
2019年从多家供应商获得了该系列的探针和芯片。三个供应商寄来了标有7Q-Tek的芯片,而不是达拉斯。
DS18B20写入便签簿错误(0x4E)/QT18B20便签簿[5,12]:如果发送了3个数据字节(根据DS18B20数据表,TH,TL,Config),则字节6将更改为发送的第三个字节,
如果发送了5个数据字节(根据QT18B20数据表,TH,TL,Config,User Byte 3,User Byte 4),则最后两个字节将分别覆盖第6字节和第7字节。
不返回关于未记录的功能代码0x68[5]的数据。返回代码0x90、0x91、0x92、0x93、0x95和0x97[5]的数据。响应0x97的返回值为0x31[5]。
如果在寄生电源模式下完成温度转换之前读取便签寄存器,则用0x0c替换<;字节6>;的实际值。
0°C时的典型温度偏移为-0.5°C[6]。即使有温度离散化噪声,也非常少[5]。
功能代码0x44之后的轮询指示近似。12位温度转换时为587-697ms,较低分辨率时按比例更短[5]。
TOPMARK示例:Dallas 18B20 1912C4+001AC(注意:此日期/批次组合也用于真正的芯片[5])。
不返回关于未记录的功能代码0x68或任何其他未记录的功能代码[5]的数据。
0°C时的典型温度偏移为+0.05°C[6]。即使有温度离散化噪声,也非常少[5]。
响应功能代码0xB4的报告电源模式(寄生/正常)可能错误,具体取决于电源引脚和数据线的通电顺序(例如,如果在数据通电时电源引脚处于GND,然后将电源引脚连接到VCC,则芯片将继续报告寄生电源模式)[5]。
功能代码0x44之后的轮询指示12位温度转换[5]的28-30毫秒(30)。温度转换也在寄生电源模式下工作[5]。
2019年初从两家供应商获得探针,2019年从一家供应商获得芯片。
高速暂存寄存器<;字节7>;==0x66,<;字节6>;!=0x0c和<;字节5>;!=0xff[5]。
不返回关于未记录的功能代码0x68[5]的数据。在代码后返回数据或状态信息
未记录的功能代码0x8B后面的第一个字节是[5]0x06:传感器不能与寄生电源一起工作。传感器在寄生供电时使数据线浮动[5]。
0x02:传感器在寄生电源模式下工作(并正确报告它们是否为寄生电源)。
在未记录的功能代码0xA3和0x66之后,可以将任意内容分别作为ROM代码和便签寄存器的字节5、6和7发送[5]。该设备的系列代码可以更改[5]。
功能代码0x44之后的轮询指示近似。转换为11毫秒(11),而不考虑测量分辨率[5]。
芯片包含超级电容而不是EEPROM来保存警报和配置设置[5]。也就是说,最后一次温度测量和报警寄存器更新保留在不太长的电源周期之间[5]。除非VCC引脚连接到GND引脚,否则超级电容可保留内存数分钟,在这种情况下,内存保留时间为5至30秒[5]。
芯片对供电方式很敏感[5]。例如,要从连接到GND的所有引脚上电,在向电源引脚和DATA[5]实际施加电压之前,让DATA和POWER引脚浮动一位(例如,100 ms)似乎是个好主意。
初始温度读数为25°C或掉电前的最后一个读数[5]。默认报警寄存器设置与系列A1不同(0x55和0x05)[5]。
高速暂存寄存器<;字节7>;==0x66,<;字节6>;!=0x0c和<;字节5>;!=0xff[5]。
不返回数据o。
.