Seu sensor de temperatura DS18B20 é provavelmente um clone falso, falsificado...
... a menos que você tenha comprado os chips diretamente da Analog Devices (ou da Maxim Integrated antes da Analog Devices adquiri-los, ou da Dallas Semiconductor antigamente), de um distribuidor autorizado (DigiKey, RS, Farnell, Mouser, etc.) ou de um grande revendedor, ou você tomou muito cuidado ao adquirir sondas DS18B20 à prova d'água. Compramos mais de 1.000 sondas "à prova d'água" ou chips simples de mais de 70 fornecedores diferentes no eBay, AliExpress e lojas online - grandes e pequenas - em 2019. Todas as sondas compradas no eBay e AliExpress continham sensores DS18B20 falsificados e quase todos sensores comprados nesses dois sites eram falsificados.
Autor: Chris Petrich, 11 de novembro de 2024. Licença: CC BY. Fonte: https://github.com/cpetrich/counterfeit_DS18B20/
(As informações do sensor baseadas em sensores ou sondas encomendadas bem depois de 2019 são indicadas como tal ou marcadas com o ano de adição, por exemplo, " (2020) ".)
TLDR; Como posso saber?
Se a ROM não seguir o padrão 28-xx-xx-xx-xx-00-00-xx então o sensor DS18B20 é um clone [5].
No entanto, o padrão ROM não é um teste suficiente de autenticidade. Caso em questão, se o padrão for 28-xx-xx-xx-00-00-00-xx e a marca superior especificar a matriz C4
, então o sensor é um clone porque esse padrão de ROM é anterior à matriz C4
, cf. Discussão 42. (2024)
Há um esboço do Arduino fornecido para testar os sensores DS18B20:
-
discover-classify_fake_DS18B20.ino
é um esboço baseado em menu que executa testes inofensivos que indicam se um sensor mostra desvios do Dallas/Maxim/Analog DS18B20. Opcionalmente, ele pode tentar combinar um sensor com uma família específica (veja abaixo), em grande parte com base na resposta a códigos de função não documentados (use esta função por sua conta e risco). O esboço não foi projetado para funcionar com poder parasita. (A partir de 10 de novembro de 2024, os dois esboços discover_fake_DS18B20.ino
e classify_fake_DS18B20.ino
de 2019 foram removidos porque estão desatualizados.)
Nomenclatura: A ROM 28-AA-BB-CC-DD-EE-FF-0C seria escrita 28-FFEEDDCCBBAA no subsistema Linux de 1 fio.
Visão geral em 2024
Existe o DS18B20 original/autêntico (Família A1) que resistiu ao teste do tempo, e também existem clones que são projetados principalmente para parecerem autênticos ou projetados com recursos inovadores ou pelo menos úteis.
Dentro do primeiro grupo temos as Famílias A2 (obsoletas) e A3 (uma adição recente) que parecem ter sido concebidas para entrar no mercado como falsificações com a intenção de enganar o cliente. A família A3 copia todos os aspectos dos originais que foram testados nos esboços do Arduino 2019 deste repositório, além de combinar os dados no gráfico "Dados de temperatura", ou seja, o deslocamento de temperatura em 0 °C e o tempo de conversão (que, aliás, está entre os clones mais lentos). No entanto, ao contrário da Família A2 (que é anterior a este repositório), eles pararam por aí com seus esforços para replicar o original (a marca registrada de um projeto de estudante...). Embora eu esteja lisonjeado ao ver que alguém realmente projetou e fabrica microchips de acordo com minhas especificações, considero isso um desperdício de habilidade de desenvolvedor e avanço em tecnologia. Também no primeiro grupo está a Família B1v2, que é uma variante recente da Família B1 com a memória do usuário de 2 bytes removida para fazê-la funcionar mais como um DS18B20 autêntico: um curso de desenvolvimento um tanto triste; Família G que, até onde eu sei, não acrescenta nada significativo, mas introduz peculiaridades que são engraçadas (cf. byte 6) ou levarão à falha do sistema no modo de energia do parasita (como puxar a linha de dados para baixo (! )); e Família H, que se parece um pouco com a Família G sem peculiaridades. É verdade que as famílias G e H realizam conversões de temperatura de 12 bits duas vezes mais rápido que o DS18B20 autêntico, então talvez elas mereçam crédito por isso.
O segundo grupo de clones é o lado positivo. Nós vemos isso
- GXCAS (Família B1 excluindo B1v2), 7Q-Tek (Família B2), Mysentech (Família D) e Novosense (Família E) adicionaram 2 ou 3 bytes de memória de usuário aos seus clones (Família E tem códigos de função dedicados para leitura, escrever e armazená-los na EEPROM),
- Família C, Mysentech (Família D1) e Xinbole (Família F) introduziram clones que realizam conversão de temperatura de 12 bits em menos de 30 ms, ou seja, 5% do tempo de conversão garantido do DS18B20 autêntico (concedido, a Família D1 tem baixo desempenho de temperatura ),
- Xinbole (Família F) possui um modo de temperatura estendido que permite medir temperaturas de até 150 °C, e
- Mysentech (Família D2) pode entrar no modo de 14 bits com resolução de 0,016 °C.
Eu realmente aprecio as joias escondidas em alguns dos chips e os esforços dos engenheiros por trás deles. No entanto, nada disso deve ser entendido como um endosso, pois não testei se os sensores atendem às especificações em suas respectivas folhas de dados , muito menos às especificações na folha de dados Maxim/Analog.
Por que eu deveria me importar?
Além das preocupações éticas, alguns dos sensores falsificados na verdade não funcionam no modo de energia parasita, têm um alto nível de ruído, desvio de temperatura fora da faixa anunciada de ±0,5 °C, não contêm uma EEPROM, apresentam bugs e taxas de falha não especificadas, ou diferem de outra maneira desconhecida a partir das especificações da ficha técnica da Maxim. Claramente, os problemas não são grandes o suficiente para desencorajar as pessoas de comprar sondas no eBay, mas pode ser bom conhecer as especificações reais quando os dados são importantes ou as condições de medição são difíceis.
Com o que estamos lidando?
As definições diferem, mas de acordo com o AIR6273, uma falsificação é uma cópia não autorizada, imitação, substituição ou modificação deturpada como um item genuíno específico de um fabricante autorizado [13]. A partir de 2019, o principal problema são as imitações ( clones ) que são rotuladas para enganar o comprador desavisado. Felizmente, os clones DS18B20 são quase trivialmente fáceis de identificar: marcação no chip impressa em vez de laser? Nenhuma marca no recuo traseiro? Provavelmente uma falsificação. O conteúdo do "registro do bloco de rascunho" não está de acordo com a ficha técnica? Provavelmente uma falsificação. Comporta-se sistematicamente diferente dos chips autênticos conhecidos? Provavelmente uma falsificação.
Como eles são?
Acima está um exemplo de um sensor DS18B20 autêntico produzido pela Maxim em caixa TO-92.
- No momento da escrita (2019), a marca superior dos chips Maxim originais é gravada a laser em vez de impressa.
- As duas primeiras linhas,
DALLAS 18B20
, especificam que esta parte é um DS18B20 (Dallas Semiconductor sendo o produtor original), chips parasitas somente de energia carregam a maring DALLAS 18B20P
. - O
+
na 4ª linha indica que a peça é compatível com RoHS ([1]). - A terceira linha especifica o ano de produção e o número da semana do ano (neste caso, semana 32 de 2019), e
- os dois últimos caracteres da linha 3 especificam a revisão do dado (atualmente
C4
). - Na linha 4, o número de três dígitos seguido por dois caracteres é uma forma de código de lote que permite à Maxim rastrear o histórico de produção.
- Em chips produzidos em 2016 ou posteriormente, só encontrei combinações de caracteres
AB
e AC
[5].
- A marcação dentro do recuo na parte traseira da caixa é
-
P
(Filipinas?) em todos os chips de 2016 a 2019, na maioria dos chips em 2020 (2020) e na maioria dos chips (?) desde pelo menos 2009 [5]. -
THAI <letter>
(Tailândia?) onde <letter>
é um de I
, J
, K
, L
, M
, N
, O
, S
, T
, U
, V
, W
, X
e possivelmente outros, pelo menos em alguns chips produzidos em 2011 [5]. A <letter>
usa uma fonte diferente das letras que compõem THAI
. - possivelmente marcações adicionais ou nenhuma marcação em alguns chips desde 2020 (cf. Edição 21, Edição 22) (2020)
- Pelo que vi na embalagem TO-92, há exatamente um código de lote associado a um código de data para chips marcados com
P
no travessão [5]. Isto não se aplica aos chips marcados como THAI
no travessão [5].
Para evitar confusão: o número de peça Maxim relevante dos chips investigados aqui é DS18B20+
, ou seja, pacote TO-92 e compatível com RoHS. Nem tudo o que foi dito nesta página pode se aplicar à variante parasita DS18B20+PAR
somente de energia (não sei dizer, pois só olhei alguns deles). Por uma questão de brevidade, os chips são referidos como DS18B20
conforme escrito na folha de dados [1].
Como posso saber se fui afetado?
Se o DS18B20 foi comprado de revendedores autorizados por meio de uma cadeia de suprimentos controlada e está marcado como produzido pela Maxim ou Analog Devices, então os chips são legítimos.
Caso contrário, (I) pode-se testar a conformidade com a ficha técnica. (Na verdade, deveria, pois até mesmo peças autênticas podem ter sido mal manuseadas ao longo de uma cadeia de distribuição não autorizada. Mas isso é outro problema.) Se um sensor falhar em qualquer um desses testes, ele é falso (a menos que a implementação de Maxim tenha erros [4]). (II) pode-se comparar o comportamento do sensor com o comportamento do DS18B20 produzido pela Maxim. Esses testes são baseados na conjectura de que todos os DS18B20 produzidos pela Maxim se comportam da mesma forma. Este deveria ser o caso pelo menos para sensores que compartilham um código de matriz (que é C4
desde pelo menos 2009 [5]) [5].
Em relação a (I), discrepância entre o que a ficha técnica atual diz que deveria acontecer e o que os sensores incluem [1,5]
- Família B: os bytes reservados no registro do scratchpad podem ser sobrescritos (seguindo as instruções na folha de dados)
- Família C: o sensor é fixado no modo de 12 bits (ou seja, o byte 4 do registrador do scratchpad é sempre
0x7f
) - Família C: o número de ciclos de gravação da EEPROM é muito pequeno (da ordem de 10 em vez de >50k)
- Família B1, D1: ROM pode ser alterada em software, ou seja, não é laserada
- Família A2, B2, D1: número significativo de sensores com desvios fora da faixa de ±0,5 C a 0 °C
- Família D: o sensor não responde no modo parasita (aplica-se à maioria dos sensores da Família D)
- Família D: a leitura da temperatura logo após a inicialização é de 25 em vez de 85 °C
- Família D: sensor não realiza conversões de temperatura em baixa resolução mais rapidamente
- Família D: os bytes reservados 5 e 7 do registro do scratchpad não são
0xff
e 0x10
, respectivamente - Família D1: retém medições de temperatura durante ciclos de energia
- Família E: possui registro de rascunho personalizado
- Família F: a conclusão da conversão de temperatura não pode ser pesquisada
- Família F: pode medir temperaturas de até 150 °C (em vez de 125 °C)
- Família A3: a sondagem para conclusão da conversão de temperatura funciona somente após algum atraso
Conseqüentemente, a partir de 2019, todos os sensores falsos disponíveis não estavam em conformidade com a ficha técnica em pelo menos um aspecto. (Em 2024, isso não pode ser dito das Famílias G ou H.)
Em relação a (II), há um teste pateticamente simples para diferenças com os sensores DS18B20 produzidos pela Maxim, no qual a maioria dos sensores falsificados falha [5]:
- É falso se seu endereço ROM não seguir o padrão 28-xx-xx-xx-xx-00-00-xx [5]. (A ROM é essencialmente um contador de 48 bits com os bits mais significativos ainda em 0 [5].) Somente a Família A3 faz um esforço para frustrar essa regra, mas a partir de 2024, eles estão exagerando. Além disso, com exceção da rara Família A2 e Famílias A3, B1v2 e H, nenhum dos clones definiu o byte 6 reservado no registro do scratchpad corretamente. Somente os clones da Família A2 e A3 respondem corretamente aos códigos de função não documentados referentes aos valores Trim.
Além das diferenças óbvias de implementação, como as listadas acima em (I) e (II), também existem dados de canal lateral que podem ser usados para separar implementações. Por exemplo, o tempo relatado para uma conversão de temperatura de 12 bits (conforme determinado pela pesquisa para conclusão após o código de função 0x44 em temperatura ambiente) é característico de chips individuais (reproduzível muito melhor que 1% em temperatura constante) e cai dentro de intervalos distintos determinado pelos internos do circuito [5]:
- 11m: Família D1
- 21-23 ms: Família E (2024)
- 28-30 ms: Família C
- 226-320 ms: Família G (2024)
- 325-505 ms: Família A2
- 460-525 ms: Família D2
- 580-615 ms: Família A1
- 577-626 ms: Família A3 (2024)
- 585-730 ms: Família B
Conseqüentemente, haverá alguns casos extremos entre as famílias A1, A3 e B, mas a simples medição do tempo usado para conversão de temperatura geralmente será suficiente para determinar se um sensor é falsificado.
Um aspecto importante para a operação é a capacidade do sensor de puxar a linha de dados para baixo contra o resistor pull-up fixo. Acontece que isso difere habilmente entre as famílias. A folha de dados garante que um sensor é capaz de dissipar pelo menos 4 mA a 0,4 V em qualquer temperatura de até 125 °C [1]. Fornecendo uma corrente de 4 mA (resistor pull-up de 1,2 kOhm contra 5 V), as seguintes tensões low
foram alcançadas pelos sensores em temperatura ambiente (observe que apenas 5 a 10 sensores foram medidos por família):
- Família A1: 0,058 - 0,062 V
- Família B2: 0,068 - 0,112 V (todos menos um sensor: 0,068 - 0,075 V)
- Família C: 0,036 - 0,040 V
- Família D2: 0,121 - 0,124 V
Todos os sensores estão dentro das especificações em temperatura ambiente, mas o agrupamento de dados por família é aparente, indicando que o hardware foi projetado de forma independente. Poderia ser interessante repetir estas medições acima de 100 °C.
Alternativamente,
- É falso se a combinação data-lote impressa na caixa do sensor não estiver no banco de dados Maxim (é necessário pedir ao suporte técnico da Maxim para descobrir). (Observe que existem falsificações que usam a combinação data-lote "autêntica", então talvez esqueça esta opção.)
Observe que nenhum dos pontos acima dá certeza de que um DS18B20 específico é um produto Maxim autêntico, mas se algum dos testes acima indicar “falso”, então é definitivamente um clone [5].
Que famílias de chips do tipo DS18B20 posso esperar encontrar?
Além do DS18B20 originalmente produzido pela Dallas Semiconductor e continuado pela Maxim Integrated após a compra da Dallas (Família A1, abaixo), existem clones TO-92 produzidos independentemente por pelo menos 5 outras empresas em 2019 (Famílias B1, B2, C, D, E) [5]. A separação em famílias é baseada em padrões em códigos de função não documentados aos quais os chips respondem, já que é improvável que as semelhanças nesse nível sejam coincidência [5]. Os chips da família B1 parecem ser produzidos pela GXCAS e calibrados e vendidos independentemente pela GXCAS e UMW. Os chips da família B2 são produzidos pela Beijing 7Q Technology (7Q-Tek). Tanto UMW quanto 7Q-Tek possuem folhas de dados correspondentes em suas respectivas páginas da web. A Família D1 parece estar desaparecendo de vista, tendo sido substituída pela Família D2. Os chips da família A2 foram um achado raro, comportam-se surpreendentemente semelhantes aos chips autênticos, mas têm baixa precisão de temperatura. Os chips da família E são uma nova adição a esta página a partir de 2022, e as famílias F, G, H, A3 e B1v2 foram adicionadas em 2024.
Em nossas compras no eBay em 2018/19 de sondas DS18B20 à prova d'água da China, Alemanha e Reino Unido, a maioria dos lotes tinha sensores da Família B1, enquanto uma em cada três compras tinha sensores da Família D. Nenhum tinha sensores da Família A1 ou C. Nenhum dos dois tinha sensores da Família A1 ou C. origem nem preço foram indicadores da família de sensores. Na compra de chips DS18B20 no pacote TO-92, a Família D2 era claramente dominante, com a Família B2 em segundo lugar, e uma pequena probabilidade de obter chips das Famílias A1 ou C.
Nos padrões ROM abaixo, tt e ss representam valores de mudança rápida e lenta dentro de uma execução de produção [5], e crc é a soma de verificação CRC8 definida na folha de dados [1].
Decapagem DS18B20
Esta colagem mostra fotos das matrizes de todas as famílias DS18B20 que encontramos em 2019. Todas as fotos estão na mesma escala, aprox. 1,4 mm de largura. Quebramos a caixa do TO-92 com um alicate, destacamos a matriz da caixa de plástico fervendo em colofônia e removemos a colofônia com acetona em banho ultrassônico. As fotos foram tiradas com uma câmera USB bastante antiga.
A família A1 é o autêntico DS18B20 produzido pela Maxim (matriz C4
). Todas as outras famílias são clones. Observe as semelhanças entre as matrizes das Famílias D1 e D2 (consistentes com sua similaridade em software) e as diferenças significativas entre as Famílias B1 e B2 (em oposição à sua similaridade em software).
Família A1: DS18B20 autêntico
Não obtive sondas contendo esses chips no eBay ou AliExpress em 2019, mas obtive chips de alguns fornecedores em 2019
- Padrão ROM [5]: 28-tt-tt-ss-ss-00-00-crc
- Registro do Scratchpad:
(<byte 0> + <byte 6>) & 0x0f == 0
após todas as conversões de temperatura bem-sucedidas e 0x00 < <byte 6> <= 0x10
[2,3,5]. Ou seja, <byte 6> = 0x10 – (<byte 0> & 0x0f)
. - De acordo com o comportamento atual [5] e as primeiras folhas de dados [9], o estado de inicialização do
<byte 6>
reservado no registro do Scratchpad é 0x0c
. - Retorna os valores "Trim1" e "Trim2" se consultado com os códigos de função 0x93 e 0x68, respectivamente [4]. Os padrões de bits são muito semelhantes entre si em uma execução de produção [4]. Atualmente, Trim2 tem menos probabilidade de ser igual a 0xff do que Trim1 [5]. Trim2 era 0xDB ou 0xDC desde pelo menos 2009, e tem sido 0x73/0x74 desde o outono de 2016 (todos com matriz
C4
) [5]. (Em chips parasitas somente de energia, Trim2 é 0xDB ou 0xDC em 2020.)- Trim1 e Trim2 codificam dois parâmetros [5]. Deixe o padrão de bits de Trim1 ser
[t17, t16, t15, t14, t13, t12, t11, t10]
(MSB para LSB) e Trim2 ser [t27, t26, t25, t24, t23, t22, t21, t20]
. Então,- parâmetro de deslocamento =
[t22, t21, t20, t10, t11, t12, t13, t14, t15, t16, t17]
(valor de 11 bits sem sinal) [5], e - parâmetro de curva =
[t27, t26, t25, t24, t23]
(valor de 5 bits sem sinal) [5].
- Dentro de um lote, o parâmetro de deslocamento parece se espalhar por 20 a 30 unidades, enquanto todos os sensores dentro do lote compartilham o mesmo parâmetro de curva [5].
- O parâmetro offset altera a saída de temperatura em uma faixa de aprox. 100 °C (0,053 °C por unidade), enquanto o parâmetro da curva desloca a temperatura em uma faixa de 3,88 °C (0,12 °C por unidade), pelo menos nas versões atuais do chip [5]. Valores de exemplo de 2019 são
offset = 0x420
e curve = 0x0E
, ou seja, eles ficam bem centrais dentro de seus respectivos intervalos.
- A compensação de temperatura dos lotes atuais (2019) é mostrada na página Maxim FAQ, ou seja, aprox. +0,1 °C a 0 °C [6] ( ou seja, não conforme mostrado na folha de dados [1,9]. O gráfico na folha de dados deriva de medições no momento da introdução do sensor há mais de 10 anos [5,10 ]. Muito pouco ou nenhum ruído de discretização de temperatura [5].
- A pesquisa após o código de função 0x44 indica um spread de 584-615 ms entre os sensores para uma conversão de temperatura de 12 bits em temperatura ambiente [5]. O tempo de conversão é facilmente repetível para chips individuais. Resoluções mais baixas reduzem o tempo proporcionalmente, ou seja, conversões de 11 bits levam metade do tempo. Os parâmetros de corte afetam o tempo de conversão.
- Retorna uma temperatura de inicialização de 85 °C se o registro do scratchpad for lido antes da conversão de temperatura ser concluída (nos modos de energia normal e parasita). [5].
- Parece que o chip retorna uma temperatura de 127,94 °C (=0x07FF / 16,0) se uma conversão de temperatura não tiver êxito [5] (por exemplo, devido a problemas de estabilidade de energia que surgem de forma reprodutível no modo "energia parasita" com vários DS18B20 se Vcc for deixado flutuando em vez de vinculado ao solo. Observe que a folha de dados afirma claramente que o Vcc deve ser vinculado ao GND no modo parasita.).
- Exemplo de ROM: 28-13-9B-BB-0B -00-00- 1F
- ROM de exemplo: 28-CA-D6-10-10 -00-00- FE (2024)
- Bloco de notas inicial: 50 / 05 /4B/46/ 7F / FF /0C/ 10 /1C
- Exemplo de topmark: DALLAS 18B20 1932C4 +786AB
- Marca superior de exemplo: DALLAS 18B20 2411C4 +852AD (2024)
- Marca de recuo:
P
(códigos de data 1150 a 2019) - Marca de travessão: possivelmente opções além de
P
desde 2020 (cf. Edição 21) (2020)
Família A1-Fishy: Autêntica, mas roubada?
Não obtive sondas contendo esses chips no eBay ou AliExpress em 2019, mas obtive chips de um fornecedor em 2019
Se eu fizesse um palpite, diria que esses chips foram desviados para algum lugar no final do pipeline de produção da Maxim (roubados?) [5]. Curiosidade: o fornecedor anunciou esses chips como QT18B20, então, quando vendidos, eram na verdade falsificações de clones DS18B20. Esses chips são marcados como produzidos na Tailândia e não nas Filipinas.
- Padrão ROM [5]: 28-tt-tt-Cs-03-00-00-crc
Os chips seguem a descrição da Família A1 acima com as seguintes exceções [5]:
- Ambos os registros de alarme são configurados para 0x00 (bytes 2 e 3 do bloco de rascunho).
- A resolução de conversão é definida para 9 bits (ou seja, ambos os bits de configuração são 0).
- Ambos os valores de ajuste são 0x00, resultando em temperaturas erradas (ou seja, muito baixas) e tempos de conversão na faixa de 400 a 500 ms.
- Uma vez que os valores de ajuste sejam definidos para algo razoável, o tempo para conversão de temperatura estará dentro da faixa especificada para a Família A1 acima.
- Exemplo de ROM: 28-9B-9E-CB-03 -00-00- 1F
- Bloco de notas inicial: 50 / 05 /00/00/ 1F / FF / 0C / 10/74
- Exemplo de topmark: DALLAS 18B20 1136C4 +957AE
- Exemplo de topmark: DALLAS 18B20 1136C4 +957AF
- Exemplo de topmark: DALLAS 18B20 1136C4 +152AE
- Exemplo de topmark: DALLAS 18B20 1136C4 +152AF
- Exemplo de topmark: DALLAS 18B20 1136C4 +152AG
- Exemplo de topmark: DALLAS 18B20 1136C4 +152AI
- Marca de recuo:
THAI <letter>
Família A2: Boa cópia com baixo desempenho em temperatura
Não obtive sondas contendo esses chips no eBay ou AliExpress em 2019, mas obtive chips de um fornecedor em 2019
Esses chips não são produzidos pela Maxim.
- Padrão ROM [5]: 28-00-ss-00-tt-tt-tt-crc, 28-ss-00-ss-tt-tt-tt-crc, 28-ss-00-00-tt-tt- 00-crc
Os chips seguem a descrição da Família A1 acima com as seguintes exceções [5]:
- O padrão ROM é incompatível com o que Maxim produz.
- O valor Trim2 é
0xFB
ou 0xFC
, ou seja, incompatível com uma produção máxima conhecida [5] sugerida pelo código de data. (Observe que isso significa que o parâmetro da curva é 0x1f, ou seja, o valor mais alto (sem sinal) possível [5]. Além disso, o parâmetro de deslocamento se espalha por 200 unidades em vez de um intervalo típico da Família A1 [5].)- O parâmetro da curva é um valor assinado de 5 bits que muda a temperatura em uma faixa de 31 °C (1 °C por unidade) [5]. Ou seja, um parâmetro de curva 0x1f (-1 em decimal) está no centro do intervalo.
- O tempo para conversão de temperatura abrange uma faixa notavelmente ampla, de 325 a 502 ms entre chips [5]. Esta faixa permanece ampla e fora dos limites da Família A1, mesmo ao aplicar configurações de corte mais recentes [5]. O tempo de conversão aumenta notavelmente com a temperatura (aproximadamente 10% acima de 100 °C) [5]. Um tempo de conversão de <500 ms é compatível com as afirmações da folha de dados 7Q-Tek QT18B20 [12].
- Não retorna a temperatura de inicialização de 85 °C se o registro do scratchpad for lido antes da conversão de temperatura ser concluída no modo de energia parasita [5].
- A compensação de temperatura típica a 0 °C é de -3,5 a -1,8 °C [5]. (Curiosamente: o erro parece ser menor em temperaturas mais altas [5].) Muito pouco ou nenhum ruído de discretização de temperatura [5].
- As configurações de alarme (isto é, os bytes 2 e 3 do scratchpad) parecem ter conteúdo aleatório [5].
- Alguns chips retêm o conteúdo do scratchpad após um ciclo de energia de 100 ms [5].
- Uma amostra testada não funcionou adequadamente no modo parasita.
- Alguns chips apresentam erros de bits na ROM que levam a erros de CRC [5]. (2020)
- A marca superior é impressa em vez de laser e não há marca no recuo.
- Exemplo de ROM: 28-19-00-00-B7-5B-00-41
- Bloco de notas inicial: 50/05 / xx/xx/ 7F / FF /0C/ 10 /xx
- Exemplo de topmark: DALLAS 18B20 1808C4 +233AA
- Marca superior de exemplo: DALLAS 18B20 1838C4 +233AA (2020)
- Marca de recuo: nenhuma
Família A3: Projetada para Enganar
Não obtive chips nem sondas em 2019. Comprei chips em 2024, também observados na natureza (cf. Discussão 42)
Esta família foi adicionada à lista em 2024. Parece ter sido projetada para passar em todos os testes dos esboços do Arduino 2019 neste site.
- Padrões de ROM [5]: 28-tt-tt-tt-00-00-00-crc
- Observe que os chips genuínos com esse padrão de ROM foram produzidos há mais de 15 anos.
- Observe que uma ROM desse padrão é anterior à matriz
C4
. Ou seja, um chip com a marca DALLAS 18B20 e matriz C4
junto com esta ROM não é genuíno.
- Registro do scratchpad
<byte 6> = 0x0C
na inicialização e <byte 6> = 0x10 – (<byte 0> & 0x0f)
após a conversão de temperatura, [5]. - Retorna dados sobre o código de função não documentado 0x68 ("Trim2"), [5]. Retorna dados sobre o código de função não documentado 0x93, mas o padrão é
0xFF
("Trim1"), [5].- O parâmetro da curva não tem sinal e afeta a leitura da temperatura em uma magnitude semelhante à da Família A1. [5]
- "Trim2" não corresponde aos valores conhecidos da Família A1. [5]
- O parâmetro Offset é implementado de forma diferente da Família A1. [5]
- As configurações padrão do registro de alarme diferem da Família A1 (
0x7F
e 0x80
) [5]. - Uma amostra de 20 sensores teve um deslocamento médio de temperatura de +0,11 °C a 0 °C com uma propagação comparável a outras famílias [5]. O ruído dos sensores individuais foi comparável ao dos sensores de outras famílias [5].
- A pesquisa para conclusão da conversão de temperatura produz leituras válidas somente após um pequeno atraso (≤ 1 ms) após o início da conversão de temperatura, [5]. Isto contrasta com todos os outros sensores das Famílias AE e G que implementam este recurso.
- A pesquisa atrasada após o código de função 0x44 indica aprox. 589-621 ms para uma conversão de temperatura de 12 bits e proporcionalmente menos em resolução mais baixa [5].
- O sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasita está funcionando (com base em teste superficial) [5].
- Retorna uma temperatura de inicialização de 85 °C se o registro do scratchpad for lido antes da conversão de temperatura ser concluída no modo de energia parasita. [5].
- Exemplo de ROM: 28-3E-43-87 -00-00-00- 18 (cf. Discussão 42)
- Exemplo de ROM: 28-CA-BA-61 -00-00-00- A3
- Exemplo de ROM: 28-06-64-2B -00-00-00- 46
- Bloco de notas inicial: 50/05/7F/80/7F/FF/0C/10/93
- Marca superior de exemplo: DALLAS 18B20 2402C4 +817AB (cf. Discussão 42)
- Marca superior de exemplo: HXY 18B20 2340
- Marca superior de exemplo: MSKSEMI 18B20 2420
Família B1: GXCAS 18B20, curva de deslocamento de temperatura da folha de dados correspondente
Obteve sondas de vários fornecedores em 2019, obteve chips de dois fornecedores em 2019. Um fornecedor enviou chips marcados como UMW em vez de DALLAS
- Padrões de ROM [5]:
- 28-AA-tt-ss-ss-ss-ss-crc (marca GXCAS)
- 28-tt-tt-ss-ss-ss-ss-crc (marca UMW)
- O registro do scratchpad
<byte 6>
não muda com a temperatura medida (padrão 0x0c
) [5]. - DS18B20 escrever scratchpad-bug (0x4E) / UMW scratchpad [5,12,14]:
- Se 3 bytes de dados forem enviados (conforme folha de dados DS18B20, TH, TL, Config), então
<byte 6>
muda para o terceiro byte enviado, - se 5 bytes de dados forem enviados (conforme folha de dados UMW, TH, TL, Config, User Byte 3, User Byte 4), os dois últimos bytes sobrescreverão
<byte 6>
e <byte 7>
, respectivamente.
- Não retorna dados no código de função não documentado 0x68 [5]. Retorna dados dos códigos 0x90, 0x91, 0x92, 0x93, 0x95 e 0x97 [5]. O valor de retorno em resposta a 0x97 é
0x22
[5]. - O código ROM pode ser alterado no software com a sequência de comando "96-Cx-Dx-94" [5]. (A folha de dados UMW afirma que o código ROM pode ser alterado, mas não especifica como [14].) O código da família (
0x28
) não pode ser alterado [5]. - Substitui
0x0c
pelo valor real de <byte 6>
se o registro do scratchpad for lido antes que a conversão de temperatura termine no modo de energia parasita. - Deslocamento de temperatura conforme mostrado na folha de dados da Maxim (-0,15 °C a 0 °C) [6]. Muito pouco ou nenhum ruído de discretização de temperatura [5].
- A pesquisa após o código de função 0x44 indica aprox. 589-728 ms para uma conversão de temperatura de 12 bits e proporcionalmente menos em resolução mais baixa [5].
- O sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasita está funcionando (com base em teste superficial) [5].
- Retorna uma temperatura de inicialização de 85 °C se o registro do scratchpad for lido antes da conversão de temperatura ser concluída no modo de energia parasita. [5].
- O dado tem "GXCAS" escrito nele.
- Exemplo de ROM: 28 -AA- 3C-61-55-14-01-F0
- Exemplo de ROM: 28-AB-9C-B1 -33-14-01- 81
- Bloco de notas inicial: 50/05/4B/46/7F/FF/0C/10/1C
- Exemplo de topmark: DALLAS 18B20 1626C4 +233AA
- Exemplo de topmark: DALLAS 18B20 1804C4 +051AG
- Exemplo de topmark: DALLAS 18B20 1810C4 +051AG
- Marca superior de exemplo: DALLAS 18B20 1921C4 +921AC (2020)
- Marca superior de exemplo: DALLAS 18B20 1926C4 +926AC (2020)
- Marca superior de exemplo: GXCAS 18B20E 1847D02
- Marca superior de exemplo: UMW 18B20 1935C4
- Marca de recuo: nenhuma
Família B1v2: Por que esta atualização?
Não obtive chips nem sondas em 2019. Chips obtidos em 2024, consulte também a edição 40
Esses chips parecem ter aparecido no mercado ca. 2024 conforme relatado na Edição 40. Embora os recursos não documentados pareçam corresponder aos da Família B1, o comportamento do registro do scratchpad mudou para melhor corresponder à Família A1.
- Padrões de ROM [5]: 28-tt-tt-ss-ss-ss-ss-crc
- Diferenças da Família B1:
- O registro do Scratchpad
<byte 6>
atua como a Família A1. Ou seja, <byte 6> = 0x10 – (<byte 0> & 0x0f)
, [5] e Edição 40. - A escrita dos registros de alarme e do registro de configuração não polui outros valores no registro do scratchpad, [5] e Edição 40.
- O registro do Scratchpad não armazena User Bytes se 5 bytes de dados forem enviados, ou seja,
<byte 7>
é fixado em 0x10
. [5].
- Não retorna dados no código de função não documentado 0x68 [5]. Retorna dados dos códigos 0x90, 0x91, 0x92, 0x93, 0x95 e 0x97 [5]. O valor de retorno em resposta a 0x97 é
0x22
[5]. - O código ROM pode ser alterado no software com a sequência de comando "96-Cx-Dx-94" [5]. O código de família (
0x28
) não pode ser alterado [5]. - Deslocamento de temperatura conforme mostrado na folha de dados da Maxim (-0,15 °C a 0 °C) [6]. Muito pouco ou nenhum ruído de discretização de temperatura [5].
- A pesquisa após o código de função 0x44 indica cerca de 650 ms para uma conversão de temperatura de 12 bits e proporcionalmente menos em resolução mais baixa [5].
- O sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasita está funcionando (com base em teste superficial) [5].
- Retorna uma temperatura de inicialização de 85 °C se o registro do scratchpad for lido antes da conversão de temperatura ser concluída no modo de energia parasita. [5].
- Exemplo de ROM: 28-E4-FA-2F -57-23-0B- AF (cf. Edição 40)
- Exemplo de ROM: 28-0D-72-9A -20-23-07- C3
- Exemplo de ROM: 28-94-77-5F -33-23-09- 37
- Bloco de notas inicial: 50/05/4B/46/7F/FF/0C/10/1C
- Exemplo de topmark: GXCAS 18B20T 2310006
- Marca superior de exemplo: XINBOLE DS18B20 2310C4 +3E1AC
- Marca de recuo: nenhuma
Família B2: 7Q-Tek QT18B20 com compensação de temperatura de -0,5 °C a 0 °C
Obteve sondas e chips desta série de vários fornecedores em 2019. Três fornecedores enviaram chips marcados como 7Q-Tek em vez de DALLAS
- Padrões de ROM [5]: 28-FF-tt-ss-ss-ss-ss-crc
- O registro do scratchpad
<byte 6>
não muda com a temperatura medida (padrão 0x0c
) [5]. - DS18B20 escrever scratchpad-bug (0x4E) / scratchpad QT18B20 [5,12]:
- Se 3 bytes de dados forem enviados (conforme folha de dados DS18B20, TH, TL, Config), então
<byte 6>
muda para o terceiro byte enviado, - se 5 bytes de dados forem enviados (conforme folha de dados QT18B20, TH, TL, Config, User Byte 3, User Byte 4), os dois últimos bytes sobrescreverão
<byte 6>
e <byte 7>
, respectivamente.
- Não retorna dados no código de função não documentado 0x68 [5]. Retorna dados dos códigos 0x90, 0x91, 0x92, 0x93, 0x95 e 0x97 [5]. O valor de retorno em resposta a 0x97 é
0x31
[5]. - O código ROM não pode ser alterado no software com a sequência de comando "96-Cx-Dx-94" [5].
- Pelo menos em algumas amostras mais recentes, as configurações padrão do registro de alarme diferem da Família A1 (
0x55
e 0x00
) [5]. (2024) - Substitui
0x0c
pelo valor real de <byte 6>
se o registro do scratchpad for lido antes que a conversão de temperatura termine no modo de energia parasita. - O desvio de temperatura típico a 0 °C é -0,5 °C [6]. Muito pouco ou nenhum ruído de discretização de temperatura [5].
- Em 2024, uma amostra de 10 sensores teve um deslocamento médio de temperatura de -0,24 °C a 0 °C [5]. (2024)
- A pesquisa após o código de função 0x44 indica aprox. 587-697 ms para uma conversão de temperatura de 12 bits e proporcionalmente menos em resolução mais baixa [5].
- O sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasita está funcionando (com base em teste superficial) [5].
- Retorna uma temperatura de inicialização de 85 °C se o registro do scratchpad for lido antes da conversão de temperatura ser concluída no modo de energia parasita. [5].
- O dado tem "7q-tek" escrito (usando o caractere chinês para o dígito 7).
- Exemplo ROM: 28 -FF- 7C-5A-61-16-04-EE
- Exemplo Rom: 28 -FF- E8-E8-54-E2-1F-24 (2024)
- ScratchPad inicial: 50/05/4b/46/7f/ff/0c/10/1c
- ScratchPad inicial: 50/05/55/00/7f/ff/0c/10/11 (2024)
- Exemplo TopMark: Dallas 18B20 1626C4 +233AA
- Exemplo TopMark: Dallas 18B20 1702C4 +233AA
- Exemplo Topmark: Dallas 18B20 1810C4 +138AB
- Exemplo TopMark: Dallas 18B20 1829C4 +887AB
- Exemplo TopMark: Dallas 18B20 1832C4 +827AH
- Exemplo TopMark: Dallas 18B20 1833C4 +058AA
- Exemplo TopMark: Dallas 18B20 1908C4 +887AB
- Exemplo TopMark: Dallas 18B20 1912C4 +001AC ( NB: Esta combinação de data/lote também é usada em chips genuínos [5] )
- Exemplo TopMark: Dallas 18B20 2012c4 +887AB (2020)
- Exemplo TopMark: 7q-tek 18b20 1861c02
- Exemplo TopMark: 18b20 2214 (2024)
- Marca de recuperação: Nenhum
Família C: Pequeno deslocamento a 0 ° C
Não obteve sondas, mas obteve chips de alguns fornecedores em 2019
- Padrões de ROM [5]: 28-FF-64-SS-SS-TT-TT-CRC
- Registro de ScratchPad
<byte 6> == 0x0c
[5]. - Não retorna dados sobre o código de função não documentado 0x68 ou qualquer outro código de função não documentado [5].
- O deslocamento típico da temperatura a 0 ° C é +0,05 ° C [6]. Muito pouco ou qualquer ruído de discretização de temperatura [5].
- A EEPROM suporta apenas cerca de oito (8) ciclos de gravação (código de função 0x48) [5].
- Modo de potência relatado (parasitário/normal) em resposta ao código de função 0xb4 pode estar errado, dependendo do pino de potência e da linha de dados da ordem (por exemplo , o chip continuará relatando o modo de energia parasita) [5].
- A pesquisa após o código de função 0x44 indica 28-30 ms (trinta) para uma conversão de temperatura de 12 bits [5]. A conversão de temperatura também funciona no modo de energia parasita [5].
- Opera no modo de conversão de 12 bits, apenas (byte de configuração lê sempre
0x7f
) [5]. - As configurações de registro de alarme padrão diferem da família A1 (
0x55
e 0x00
) [5].
- Exemplo ROM: 28 -FF-64- 1D-CD-96-F2-01
- ScratchPad inicial: 50/05/55/00/7f/ff/0c/10/11
- Exemplo TopMark: Dallas 18B20 1331C4 +826AC
- Exemplo TopMark: Dallas 18B20 1810C4 +158AC
- Exemplo TopMark: Dallas 18B20 1924C4 +158AC
- Marca de recuperação: Nenhum
FAMÍLIA D1: lixo barulhento com Big Cap
Sondas obatinadas de dois fornecedores no início de 2019, obteve chips de um fornecedor em 2019
- Padrões de ROM [5]: 28-TT-TT-77-91-SS-SS-CRC e 28-TT-TT-46-92-SS-SS-CRC
- Registro de ScratchPad
<byte 7> == 0x66
, <byte 6> != 0x0c
e <byte 5> != 0xff
[5]. - Não retorna dados sobre o código de função não documentado 0x68 [5]. Responde de volta com dados ou informações de status após códigos
- 0x4d, 0x8b (8 bytes), 0xba, 0xbb, 0xdd (5 bytes), 0xee (5 bytes) [5] ou
- 0x4d, 0x8b (8 bytes), 0xba, 0xbb [5].
- O primeiro byte após o código de função sem documentos 0x8b é [5]
-
0x06
: Os sensores não funcionam com poder parasitário . Os sensores deixam flutuando a linha de dados quando alimentados parasiticamente [5]. -
0x02
: Os sensores funcionam no modo de energia parasita (e relatam corretamente se são alimentados parasiticamente).
- É possível enviar conteúdo arbitrário como código da ROM e para os bytes 5, 6 e 7 do registro de scratchpad após códigos de função sem documentos 0XA3 e 0x66, respectivamente [5]. O código da família do dispositivo pode ser alterado [5].
- Erros de temperatura de até 3 ° C a 0 ° C [6]. Dados muito barulhentos [5].
- A pesquisa após o código de função 0x44 indica aprox. 11 ms (onze) para conversão, independentemente da resolução de medição [5].
- Os chips contêm um capacitor de alto valor em vez de uma EEPROM para manter as configurações de alarme e configuração [5]. Ou seja, a última medição de temperatura e atualizações para os registros de alarme são retidas entre os ciclos de energia que não são muito longos [5].
- O capacitor retém a memória por vários minutos, a menos que o pino VCC esteja conectado ao pino GND; nesse caso, a retenção de memória é de 5 a 30 segundos [5].
- Os chips são sensíveis à maneira como a energia é aplicada [5]. Por exemplo, para ligar de todos os pinos conectados ao GND, parece ser uma boa ideia deixar um pino de dados e energia flutuando por um pouco (por exemplo, 100 ms) antes de aplicar uma tensão ao pino de potência e dados [5].
- A leitura inicial da temperatura é de 25 ° C ou a última leitura antes da desativação [5]. As configurações de registro de alarme padrão diferem da família A1 (
0x55
e 0x05
) [5].
- Exemplo ROM: 28-48-1B-77 -91- 17-02-55 (Modo de energia parasita de trabalho)
- Exemplo Rom: 28-24-1D-77 -91- 04-02-CE (responde a 0xdd e 0Xee)
- Exemplo ROM: 28-B8-0E-77 -91- 0E-02-D7
- Exemplo ROM: 28-21-6D-46 -92- 0A-02-B7
- ScratchPad inicial: 90/01/55/05/7f/7e/81/66/77
- Exemplo TopMark: Dallas 18B20 1807C4 +051AG
- Exemplo TopMark: Dallas 18B20 1813C4 +827AH (2020)
- Exemplo TopMark: Dallas 18B20 1827C4 +051AG
- Marca de recuperação: Nenhum
Família D2: Interessante, sem poder parasitário
Obteve sondas e chips de um grande número de fornecedores em 2019
- Padrões de ROM [5]: 28-TT-TT-79-97-SS-SS-CRC, 28-TT-TT-94-97-SS-SS-CRC, 28-TT-TT-79-A2-SS- SS-CRC, 28-TT-TT-16-A8-SS-SS-CRC, 28-TT-TT-56-B5-SS-SS-CRC (2020) , 28-TT-TT-07-D6-SS-SS-CRC (2020)
- Registro de ScratchPad
<byte 7> == 0x66
, <byte 6> != 0x0c
e <byte 5> != 0xff
[5].-
<byte 7>
pode ter outros valores, incluindo 0XAA ou 0x00, [5] e Discussão 36. (2024) - Os registros de scratchpad
<byte 5>
, <byte 6>
e <byte 7>
podem ser escritos com o código de função 0x66 [15]. (2024)
- Não retorna dados sobre o código de função não documentado 0x68 [5]. Responde de volta com dados ou informações de status após códigos
- 0x4d, 0x8b (9 bytes), 0xba, 0xbb, 0xdd (3 bytes), 0xee (3 bytes) [5] ou
- 0x4d, 0x8b (9 bytes), 0xba, 0xbb [5].
- O primeiro byte a seguir o código de função não documentado 0x8b é
0x00
[5]. - O código de função não documentado 0x8b consulta um registro de configuração de 9 bytes sem documentos, com muitos desses bytes que afetam a leitura de temperatura [5]. O código de função não documentado 0xab é usado para atualizar os 9 bytes deste registro de configuração [5]. (2024)
- Um modo de temperatura de 14 bits [15] pode ser ativado definindo
<bit 0>
de <byte 0>
no registro de configuração sem documentos [5]. (2024) - Os sensores não funcionam com poder parasitário . Os sensores desenham a linha de dados baixa enquanto alimentado parasiticamente [5].
- 2019: erros de temperatura de até 3 ° C a 0 ° C [6]. Dados mais barulhentos que chips genuínos [5].
- Em 2024, uma amostra de 10 sensores teve um deslocamento médio de temperatura de -0,09 ° C a 0 ° C com uma propagação intersesensor de -0,25 a +0,44 ° C, o que é uma grande disseminação em comparação com outras famílias [5]. No entanto, os sensores individuais não eram mais barulhentos que os sensores de outras famílias. (2024)
- A pesquisa após o código de função 0x44 indica aprox. 462-523 ms para conversão, independentemente da resolução de medição [5]. A série com
97
e A2
/ A8
na ROM converte em 494-523 ms e 462-486 ms, respectivamente [5]. Chips com A2
ou A8
no byte 4 da ROM parecem ter aparecido primeiro em 2019. - A leitura inicial da temperatura é de 25 ° C [5]. As configurações de registro de alarme padrão diferem da família A1 (
0x55
e 0x05
) [5].- As configurações de registro de alarme padrão diferem da família A1 (
0x00
e 0x00
), [5] e discussão 36. (2024)
- Exemplo Rom: 28-90-FE-79 -97- 00-03-20
- Exemplo Rom: 28-FD-58-94 -97- 14-03-05
- Exemplo ROM: 28-FB-10-79 -A2- 00-03-88
- Exemplo ROM: 28-29-7D-16 -A8- 01-3C-84
- Exemplo ROM: 28-DF-54-56 -B5- 01-3C-F5 (2020)
- Exemplo Rom: 28-AF-EC-07 -D6- 01-3C-0A (2020)
- Exemplo ROM: 28-75-02-80 -33- 8B-06-DC (2024)
- ScratchPad inicial: 90/01/55/05/7f/xx/xx/66/xx
- Scratchpad inicial: 90/01/00/00/7f/xx/xx/xx/xx (2024)
- Exemplo TopMark: Dallas 18B20 1812C4 +051AG
- Exemplo TopMark: Dallas 18B20 1827C4 +051AG
- Exemplo TopMark: Dallas 18B20 1916C4 +051AG
- Exemplo TopMark: Dallas 18B20 1923C4 +051AG
- Exemplo TopMark: Dallas 18B20 1943C4 +051AG
- Exemplo TopMark: Dallas 18B20 1828C4 +233AA
- Exemplo TopMark: Dallas 18B20 2008C4 +817AB (2020)
- Exemplo TopMark: SE18B20 2130 (2022)
- Exemplo TopMark: My18B20 S380 (2024)
- Marca de recuperação: Nenhum
Família E: Novosense NS18B20
Não obteve chips nem sondas em 2019. Comprou chips claramente marcados com NS18b20 em 2022 e 2024
Essa família foi adicionada à lista a partir de 2022. A folha de dados parece sugerir que os chips iniciaram a produção em 2019.
- Padrões de ROM [5]: 28-00-TT-TT-SSS-SS-SS-CRC
- O registro do scratchpad
<byte 6>
é sempre <byte 6> = 0x10 – (<byte 0> & 0x0f)
, ou seja, ao contrário da família A1 <byte 6> = 0x10
é o valor na energia [5]. - Retorna o código de função Custom ScratchPad de dois bytes no código de função 0xde e os sinais ocupados durante a gravação na EEPROM no código de função 0x28 [5], conforme especificado na folha de dados NS18B20 [17].
- Não retorna dados sobre códigos de função sem documentos 0x68 e 0x93, [5].
- Uma amostra de 10 sensores teve um deslocamento médio de temperatura de +0,02 ° C a 0 ° C com uma propagação comparável a outras famílias [5]. O ruído de sensores individuais foi comparável aos sensores de outras famílias [5]. (2024)
- A conversão de temperatura é de 20 a 25 ms, independente da resolução selecionada [5]. (A folha de dados NS18B20 especifica no máximo 50 ms, independentemente da resolução.)
- O sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasitária está funcionando (com base no teste superficial) [5].
- Retorna uma temperatura de potência de 85 ° C se o registro de scratchpad for lido antes que a conversão de temperatura seja concluída no modo de energia parasita. [5].
- Exemplo Rom: 28 -00- 74-28 -59-43- 0f-7a
- Exemplo Rom: 28 -00- 2a-50 -0c-41- 02-db
- ScratchPad inicial: 50/05/4b/46/7f/ff/10/10/bd
- Exemplo TopMark: NS18B20 203B00
- Exemplo TopMark: NS18B20 412D01
- Marca de recuperação: Nenhum
Família F: a variante
Não obteve chips nem sondas em 2019. Comprei chips em 2024
Esta família foi adicionada à lista em 2024.
- Padrões de ROM [5]: 28-TT-TT-SSS-SS-SS-SS-CRC
- Registro de ScratchPad
<byte 6> = 0x0C
corrigido, [5]. - Retorna três bytes no código de função não documentado 0x19, [5].
- Não retorna dados sobre códigos de função sem documentos 0x68 e 0x93, [5].
- O modo de temperatura estendido (até 150 ° C) pode ser ativado definindo
<bit 7>
de <byte 4>
no registro do ScratchPad, [5], [18]. - EEPROM não implementado, [18].
- As configurações de registro de alarme padrão diferem da família A1 (
0x55
e 0x00
) [5]. - Uma amostra de 10 sensores teve um deslocamento médio de temperatura de -0,11 ° C a 0 ° C com uma propagação comparável a outras famílias [5]. O ruído de sensores individuais foi comparável aos sensores de outras famílias [5]. (2024)
- Resolução de conversão sempre relatada como 12 bits, [5].
- A conclusão da conversão de temperatura não pode ser pesquisada (funcionalidade não implementada), [5], [18].
- Tempo de conversão típico 27 ms conforme a folha de dados, [18].
- O modo de energia parasita não funciona com o VCC puxado para GND, [5]. Em vez disso, o modo de energia parasita funciona com o VCC deixado flutuando [5], [18].
- Retorna uma temperatura de potência de 85 ° C se o registro de scratchpad for lido antes que a conversão de temperatura seja concluída no modo de energia parasita. [5].
- Alguns sensores deixam a linha de dados flutuando se o registro de scratchpad for lido antes que a conversão de temperatura seja concluída no modo de energia parasita e, eventualmente, redefinirá para uma temperatura de potência de 85 ° C. [5].
- Exemplo ROM: 28-03-60 -00-00-01- 24-D0
- ScratchPad inicial: 50/05/55/00/7f/ff/0c/10/11
- Exemplo TopMark: Xinbole DS18B20T 2430C4 +4F3AC
- Marca de recuperação: Nenhum
Família G: O Coringa
Não obteve chips nem sondas em 2019. Comprei chips em 2024
Esta família foi adicionada à lista em 2024.
- Padrões de ROM [5]: 28-TT-TT-TT-TT-TT-TT-CRC (aparentemente aleatório)
- Registro de ScratchPad
<byte 6> = 0x0C
AT Power -Up e <byte 6> = 0x20 – (<byte 0> & 0x0f)
após a conversão de temperatura, [5]. Sim, eles realmente estão 0x10
acima da família A1. - Retorna um byte no código de função não documentado 0x8e, [5].
- Não retorna dados sobre códigos de função sem documentos 0x68 e 0x93, [5].
- As configurações de registro de alarme padrão diferem da família A1 (
0x55
e 0xAA
) [5]. - Contém um grande capacitor de buffer, de modo que um ciclo de potência de 100 ms seja muito curto para redefinir o registro do ScratchPad, [5].
- Uma amostra de 27 sensores teve um deslocamento médio de temperatura de -0,22 ° C a 0 ° C com uma propagação comparável a outras famílias [5]. O ruído de sensores individuais foi comparável aos sensores de outras famílias [5].
- A pesquisa após o código de função 0x44 indica aprox. 227-293 ms para uma conversão de temperatura de 12 bits e proporcionalmente menor em menor resolução [5].
- O sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasitária está funcionando (com base no teste superficial) [5].
- Puxa a linha de dados baixa (!) Se a conversão for interrompida pela leitura do registro do ScratchPad no modo de energia do parasita e acabará se recuperando para concluir a conversão posteriormente (até> 1000 ms depois). [5].
- Exemplo ROM: 28-C7-9E-A3-59-83-D9-74
- Exemplo ROM: 28-95-77-37-3F-4A-FB-1F
- Exemplo ROM: 28-CE-71-E6-6F-8C-E5-3C
- ScratchPad inicial: 50/05/55/aa/7f/ff/0c/10/af
- Exemplo TopMark: ZHHXDZ HX18B20 24+6
- Exemplo TopMark: JSMSemi 18B20 3x31
- Exemplo TopMark: HT18B20 ARTZ #465142
- Marca de recuperação: Nenhum
Família H: Diferente ADC
Não obteve chips nem sondas em 2019. Obteve um único chip em 2024
Essa família foi adicionada à lista em 2024. A única amostra que recebi fazia parte de um "lote" de sensores rotulados HT18B20: eles eram embalados de fita e bobina, e esse sensores era diferente dos outros. Então, se você não quiser saber o que está recebendo, peça um HT18B20.
- Padrões de ROM [5]: 28-TT-TT-TT-TT-TT-TT-CRC (difícil de dizer com base em uma amostra)
- Registro de ScratchPad
<byte 6> = 0x0C
AT Power Up e <byte 6> = 0x10 – (<byte 0> & 0x0f)
após a conversão de temperatura, [5]. - Não retorna dados sobre códigos de função não documentados 0x68 e 0x93 ou quaisquer outros códigos de função [5].
- As configurações de registro de alarme padrão diferem da família A1 (
0x55
e 0xAA
) [5]. - Contém um grande capacitor de buffer, de modo que um ciclo de potência de 100 ms seja muito curto para redefinir o registro do ScratchPad, [5].
- A única amostra investigada teve um deslocamento de temperatura de -0,12 ° C a 0 ° C [5]. O ruído do sensor era comparável aos sensores de outras famílias [5].
- A pesquisa após o código de função 0x44 indica 101 ms, 141 ms, 198 ms e 279 ms com uma resolução de 9, 10, 11 e 12 bits, respectivamente, ou seja, um fator de 1,4 em vez de um fator de 2 entre as configurações de resolução [ 5].
- Em princípio, o sensor indica quando no modo de energia parasita, a conversão de temperatura no modo de energia parasitária está funcionando (com base no teste superficial) [5].
- Mudar de costas entre potência parasitária e potência normal não é indicada de maneira confiável pelo sensor [5].
- Deixa flutuação da linha de dados se a conversão for interrompida pela leitura do registro do ScratchPad no modo de energia do parasita e relatará o resultado da conversão se consultado posteriormente. [5].
- Exemplo ROM: 28-0C-80-53-5C-AA-8E-A2
- ScratchPad inicial: 50/05/55/aa/7f/ff/0c/10/af
- Exemplo TopMark: HT18B20 ARTZ #465142
- Marca de recuperação: Nenhum
Obsoleto a partir de 2019
Não obteve sondas nem chips em 2019
Padrões de ROM [5,7]: 28-TT-TT-SS-00-00-80-CRC
- Exemplo ROM: 28-9E-9C-1F -00-00-80- 04
(aparentemente ainda vendido a outros em 2019 (cf. Edição 17)))
Padrões de ROM [5,11]: 28-61-64-SS-SS-TT-TT-CRC
- Exemplo Rom: 28 -61-64- 11-8d-F1-15-DE
(parece ser a família C.) (2022)
Padrões de ROM [5]: 28-EE-TT-TT-SSS-SS-SS-CRC
- Exemplo Rom: 28 -ee- 58-49-25-16-01-45 (2020)
- Exemplo TopMark: Dallas 18B20 1619C4 +827AH (2020)
- Exemplo TopMark: Dallas 18B20 1709C4 +827AH (2020)
(Recebeu algumas fichas em 2020: elas agem como a família B2 à primeira vista.)
Família A1 com versões de Die antes do C4
- Exemplo Código do Dado:
B7
(Alguns chips mais antigos (antes de 2009) tinham circuitos de hardware de buggy (matrizes), mais infame o B7
Die [4], cf. Edição 19).
Solução para o problema de 85 ° C
Existe uma maneira simples, indocumentada e discriminada entre a leitura de 85 ° C e uma leitura de temperatura genuína de 85 ° C em DS18b20 da família A e alguns outros [5]: <byte 6>
do registro de arranhões. Se for 0x0c
, a leitura de 85 ° C é uma leitura de energia, caso contrário, é uma verdadeira medição de temperatura.
GXCAS 18B20
O clone DS18B20 da Pequim Zhongke Galaxy Core Technology Co., Ltd., negociando como GXCAS, parece estar distribuído de forma independente por GXCAS e UMW (Família B1). De acordo com a página da web, o GXCAS existe apenas desde janeiro de 2018. Embora o GXCAS não tenha uma folha de dados on-line, a folha de dados na página da Web da UMW enfatiza a adição de dois bytes definidos pelo usuário no registro do scratchpad e a possibilidade de mudar O endereço ROM [14]. Vários desses chips têm manchas de Topmarks DS18B20 falsas. A GXCAS está claramente orgulhosa de seu produto, enquanto escrevem o nome da empresa com destaque no dado.
7q-tek qt18b20
O QT18B20 é um clone DS18B20 desenvolvido e vendido pela Pequim 7Q Technology Inc, negociando como 7q-tek (Família B2). A folha de dados do QT18B20 enfatiza a adição de dois bytes definidos pelo usuário no registro do ScratchPad [12]. Ao contrário da folha de dados do DS18B20, não afirma que o código da ROM é laserado. Um grande número desses chips possui altos principais DS18B20. O 7Q-Tek está claramente orgulhoso de seu produto enquanto eles escrevem o nome da empresa com destaque no dado.
Embora não esteja claro quem projetou ou produziu chips da família A2, a família A2 parece ter sido uma inspiração para a família B2 7Q-TEK QT18B20, com base nas seguintes observações:
- A folha de dados QT18B20 afirma que uma conversão de temperatura leva <500 ms [12]. Isso é consistente com o comportamento real da família A2. (Enquanto a folha de dados da UMW afirma o mesmo [14], uma das folhas de dados parece ter sido usada como um modelo para o outro.)
- De acordo com o histórico da versão da folha de dados, a versão mais antiga da folha de dados QT18B20 não mencionou bytes definidos pelo usuário [12]. A família A2 não possui bytes definidos pelo usuário no registro do ScratchPad.
- O Ciruit da família A2 se assemelha ao estilo da matriz da família A1 (produzida por Maxim) e do dado da família B2 (produzido por 7q-tek). O tamanho da matriz é significativamente diferente da família A1, por isso não é um DS18B20 produzido máximo.
Mysentech my18e20
O clone My18E20 da tecnologia de detecção de minyuan, negociando como mysentech, parece ser o sensor da família D2. A família D1 é provavelmente uma variante também produzida por MySentech. A MySentech possui uma folha de dados que parece ser amplamente consistente com o comportamento desse chip [15] e eles têm páginas técnicas de perguntas frequentes relacionadas a esse sensor (datado de dezembro de 2022) [16]. Aparentemente, a MySentech foi fundada em 2017. (2024)
Novosense ns18b20
O NS18B20 é um clone DS18B20 da Suzhou Novosense Microelectronics Co., Ltd. (Família E). (2022)
Xinbole ds18b20t
Shenzhen Xinbole Electronics Co. (XBLW) possui uma folha de dados que descreve com precisão o comportamento um tanto incomum do sensor da família F. (2024)
Max31820
O máximo integrado também produz o sensor de temperatura Max31820. O MAX31820 é um DS18B20 com faixa de tensão de alimentação limitada (ou seja, até 3,7 V) e menor faixa de temperatura de alta precisão [1,8]. Como o DS18B20, ele usa o código da família de um fio 0x28 [1,8]. Investigações preliminares ainda não revelaram um teste para distinguir entre o DS18b20 da família A1 e o máximo de máximo produzido no software [5].
Métodos
Por solicitação popular (Edição 11), esta seção deve fornecer histórico (alguns dos) dos resultados e conclusões acima. Vou adicionar a ele muito lentamente conforme o tempo permitir.
As investigações estavam no DS18b20 em vez da variante DS18B20-Par ou DS18S20. Temos apenas uma mão cheia de sensores DS18B20-Par e DS18S20 enquanto temos centenas de DS18b20. Além disso, todos os sensores estavam no caso de 92.
Base de amostra para análise da família A1
A Figura acima mostra a faixa de datas de produção e códigos ROM (números de série) dos sensores da família A1 investigados que foram comprados como chips. Também está incluído um número de dígitos de um dígito contido em sondas que abrimos para ler o TopMark. A data de produção de acordo com o código da data está no eixo x, o número de série de acordo com a ROM está no eixo y, os pontos são os chips individuais (n> 200, mas lotes individuais parecem manchas de manchas), Os destaques da área cinza 2019. Temos chips produzidos de 2009 a 2020 e todos os chips têm um dado C4
, nenhum chips tem códigos de data de 2010, 2014, ou 2015. (O número de série de um chip com ROM 28-13-9B-BB- 0B -00-00-1F é 0x0BBB9B13 e, portanto, cairia entre 0x0b e 0x0c no eixo y.) Vemos que existe um longo RELACIONAL DE TERNO ENTRE o número de série e o código de data (linha tracejada): o número de série aumenta em aproximadamente 16.500.000 (ou seja, aprox. 2^24) por ano. No entanto, esse relacionamento é apenas um guia geral, como pode ser visto pelo grau de dispersão ao redor da linha e no aumento da inserção: dos sensores produzidos em 2019 que compramos, houve três instâncias em que os sensores com um código de data posterior continham um número de série anterior.
Parecemos ter comprado um dos últimos lotes produzidos em 2016 com constantes de calibração Trim2 0xdb ou 0xdc e um dos primeiros lotes com constantes de calibração Trim2 0x73 ou 0x74. Portanto, a mudança provavelmente ocorreu entre as semanas 32 e 47 de 2016. ( Esta é uma declaração sobre o DS18b20 em vez do DS18B20-par. )
Dados de temperatura
A Figura acima mostra (a) a leitura de temperatura que obtivemos de cada sensores em um banho de água gelo a 0 ° C, (b) a quantidade de ruído em leituras sucessivas no banho de água no gelo e (c) tempo de conversão para temperatura Medições à temperatura ambiente nominalmente (as medições foram realmente realizadas entre 0 e 30 ° C). Uma versão de alta resolução da figura está disponível em imagens/sensor_measurements_by_family.png. Os dados para (a) e (b) geralmente são baseados em 20 medidas sucessivas realizadas uma vez a cada 10 s depois que o sensor se equilibrou em um banho de água no gelo. Os dados em (c) são baseados em apenas uma medida de medição por sensor, como em nossa experiência, o tempo de conversão não se dispersa, ou seja, uma única medição é suficiente para avaliar o tempo de conversão de um sensor na temperatura atual.
Os dados foram medidos em +5 V. (2024)
Os dados são agrupados ao longo do eixo x da seguinte forma:
- A1: Família A1 obtida do distribuidor oficial, ou seja, tanto a autodetidade quanto o manuseio adequado é garantido
- A1 (distribuidor de terceiros): Família A1 obtida de outros varejistas grandes ou pequenos, incluindo aqueles que vendem no eBay e Aliexpress, e incluindo quaisquer sensores contidos em sondas
- A2: Família A2
- B1 (GXCAS): Família B1, com base em sua ROM aparentemente distribuída por GXCAS
- B1 (UMW): Família B1, com base em sua ROM aparentemente distribuída por umw
- B2: Família B2
- C: Família c
- D1: Família D1
- D2 ( XY ): Família D2, onde o número XY entre parênteses é o 5º byte da ROM (ou seja, byte 4). Os sensores de cada grupo são mostrados no que presumo ser a ordem de fabricação, com base principalmente na ROM e corroborados um pouco pela ordem que os compramos. Os dados dos sensores da família A1 com valores de acabamento
0x00
não são mostrados.
O erro de temperatura especificado com máxima é de ± 0,5 ° C a 0 ° C, e esse intervalo é marcado no gráfico (a) por linhas tracejadas finas. Vemos que os sensores da família A1 têm leituras normalmente na faixa de -0,1 a +0,2 ° C, a família A2 possui -2 ° C, a família B1 entre 0 e -0,5 ° C, a família B2 em torno de -0,5 ° C, família C em torno de 0 ° C (Não há pontos de dados suficientes para dizer com certeza), a família D1 entre -1 e +1 ° C ou pior e a família D2 -bem, é difícil dizer a partir dos dados: eles começaram muito mal com desempenho semelhante para a família D1 e pode ou não ter melhorado, pois (precisaria medir mais sensores para dizer com certeza. Medições limitadas em 2024 indicaram que são muito melhores que a família D1). As medições foram realizadas uma vez a cada 10 segundos para evitar artefatos do auto -aquecimento dos sensores contidos nas sondas (ou seja, descobrimos que a leitura depois que um segundo aumenta a temperatura retornada).
Um sensor ideal mostraria apenas ruído de discretização, ou seja, as leituras flutuam entre os dois valores que envolvem a temperatura real. Esse ruído é mostrado no gráfico (b) como o desvio padrão ( std(T)
) de 20 medidas de temperatura nominalmente. Se todas as medidas forem iguais, std(T)
for zero. Se exatamente uma medição difere em uma etapa de discretização (isto é, por 0,0625 ° C) do outro 19, então std(T)
é de 0,014 ° C, mostrado como a linha tracejada inferior. Se os dados forem divididos uniformemente entre dois valores adjacentes, std(T)
é de 0,031 ° C, mostrada como a linha tracejada superior. Os pontos de dados entre 0 e a linha tracejada inferior indicam que mais de 20 amostras foram usadas para esse sensor, e os dados acima da linha superior indicam que as leituras flutuaram em um intervalo de pelo menos 2 etapas de discretização. Vemos que os sensores das famílias A, B e C têm essencialmente apenas ruído de discretização. Por outro lado, a família D1 produz lixo chocantemente barulhento (ou seja, a resolução real de medição é inferior a 12 bits), e os sensores da família D2 também são barulhentos a um nível acima do ruído de discretização.
O tempo necessário para a conversão de dados de temperatura é especificado como máximo de 750 ms na folha de dados (conversão de 12 bits). O tempo real necessário tem (a uma determinada temperatura) um valor característico bem reproduzível para cada sensor. Este tempo é mostrado no gráfico (C). A família A1 leva cerca de 600 ms para uma conversão, enquanto as famílias A2 e B mostram uma variabilidade entre sensores comparativamente grande. As famílias C e D1 são de maneira mais rápida a 30 e 11 ms, respectivamente, enquanto a família D2 leva cerca de 500 ms ou um pouco menos. Embora todos os sensores que medimos fossem mais rápidos que 750 ms à temperatura ambiente, alguns sensores da família B se aproximaram do limite.
Aviso
O envio de códigos de função sem documentos para um sensor DS18B20 pode torná -lo permanentemente inútil, por exemplo, se os coeficientes de calibração de temperatura forem substituídos [5]. A maneira recomendada de identificar sensores falsificados é verificar se a ROM não segue o padrão 28-xx-xx-xx-xx-00-00-xx [5]. (Embora a ROM possa ser substituída nas famílias B1 e D1 para imitar sensores genuínos, não encontramos sensores com ROM falsificada [5].)
( Informações sobre chips das famílias A, B, C, D, E, F, G e H são provenientes de minhas próprias investigações de sensores em conjunto com as referências abaixo, conforme indicado pelo número de referência [1-6,8-10,12 -18]. O'Sadnick.
Fontes
Sensores ou sondas com DS18B20 autêntico ou clonado foram adquiridos das fontes de folga. Observe que apenas os sensores comprados a partir de distribuidores de Maxim offical são chips autênticos que garantem que foram tratados corretamente. Amostras gratuitas fornecidas pela Maxim integradas por meio de seu sistema de pedidos on -line são reconhecidas com gratidão.
Distribuidores oficiais: Maxim Integrated, Digikey, Farnell, Mouser, RS Componentes ebay: 5HK1584, Alice1101983, AlphaGo-IT, e NOV73, AreyourShop-003, B2CPowershop2010, BOURARD_NETELETROSHOP, BingGoGo, CAREFORMOMEIRO, B2CPOP2010 1960, d-9845, deepenmind, diy-arduino, diybox, eckstein-komponente, enigma-component-shop, e*shine, efectronics, ele-parts, fr_aurora, fzeroinestore, geekapparels, good-module, happybuddhatrading, hermann_shopp, icmarket2009, jk_parts, JustPro, KingElectronics15, london_shoppings_1, lovesell2013, lucas89-8, makershop, mecklenburg8, modul_technik, moore_estates, nouteclab, *orchid, polida2008, puretek-innovations, rammie_74, scuary1, sensesmart, sensus, sevenshop888, shenglongsi, sparco888, survy2014, tancredielettronica, umtmedia, worldchips, xiaolin4, xuan33_store, yantzlf AliExpress: All goods are free shipping Store, AOKIN DiyMaker, Cuiisw Module Store, Eiechip, Fantasy Electronic, FSXSEMI, Great-IT, Great Wall Electronics, HWA YEH, Liyuan Electronic, Mega Semiconductor , Loja amarela vermelha, loja Roarkit, Sensor World, Sensor Shengsun, produtos Shenzhen de alta qualidade, shop912692, TENSTAR, WAVGAT, Win win., YLGA, YX Electronic Other: Adafruit, AZ-Delivery, Banggood, Taizhou Best Electric Equipment, Conrad Electronic, DFRobot, DROK, Elektroimportøren, Elfa Distrelec, Shanghai Jiutian Automation Equipment, Kjell & Company, LCSC, Dongguan Nangudi Electronics, Componentes de Quest, Shenzhen RBD Sensor Technology, Reichelt Elektronik, Shenzhen Senstech Electronic Technology, Sparkfun, Tayda Electronics, Telmal, Dongguan Tianrui Electronics, Yourduino
Referências
- DS18B20 "DS18B20 Resolução programável Termômetro digital de 1 fio", folha de dados 19-7487 Rev 6 7/19, Maxim integrado.
- DS18S20 "DS18S20 Termômetro digital de alta precisão de alta precisão", folha de dados, Maxim integrado.
- AN4377 "Comparação dos termômetros digitais DS18B20 e DS18S20 de 1 fio", Maxim Integrated
- AN247 "DS18X20 EEPROM COLURPTION Issue", Maxim Integrated
- Investigações próprias 2019-2024, não publicadas.
- Petrich, C., M. O'Sadnick, Ø. Kleven, I. Sæther (2019). Uma bóia costeira de baixo custo para medições de gelo e metoceano. Em Anais da 25ª Conferência Internacional sobre Engenharia de Portos e Oceanos, sob condições do Ártico (POAC), Delft, Holanda, 9-13 de junho de 2019, 6 pp. (Link)
- Contribuição do usuário M_ELIAS em https://forum.arduino.cc/index.php?topic=544145.15
- Max31820 "Sensor de temperatura ambiente de 1 fio", folha de dados, Maxim integrado.
- DS18B20 "DS18B20 Resolução programável Termômetro digital de 1 fio", folha de dados 043001, Dallas Semiconductor, 20pp.
- DS18B20 "DS18B20 Resolução programável Termômetro digital de 1 fio", folha de dados preliminares 050400, Dallas Semiconductor, 27pp. (Wayback Machine)
- Fragmentados de vários blogs e postagens.
- QT18B20 "QT18B20 RESOLUÇÃO PROGRAMÁVEL Termômetro digital de 1 fio", folha de dados Rev 061713, tecnologia 7Q.
- Air6273 "Termos, definições e acrônimos Material falsificou ou peças elétricas, eletrônicas e eletromecânicas", Relatório de Informações aeroespaciais da SAE, julho de 2019.
- UMW DS18B20 UMW DS18B20 DATHEET DE
- My18E20 MySentech Home Page (inglês) com link para folhas de dados.
- MY18E20 FAQ MYSENTECH FAQ (Chinês).
- NS18B20 "Sensor de temperatura digital de bastão único de alta precisão", NS18B20 Dat folha de dados Rev. 1.0, Novosense.
- Folha de dados ds18b20t, xinbole.