Quão viável é usar apenas 1% de resistores e calibrar o erro?


9

No momento, uso resistores de 0,1% para obter uma medição precisa da tensão através de um divisor de tensão. No entanto, o custo é alto, então eu estava pensando em usar resistores de 0,5% ou 1% e calibrar o erro no software usando uma referência de tensão de precisão durante a produção. Alguém fez isso com êxito? Que armadilhas posso encontrar?


A que tipo de ferramentas de produção você tem acesso? Você pode obter / construir algo como um programador / testador de cama de unhas?
Kevin Vermeer

@reemrevnivek - Atualmente não. O fabricante do meu PCB testa E cada placa, mas não é garantido que a solda funcione.
Thomas O

Há 40 anos, em placas perfuradas, isso era bastante comum onde eu trabalhava (eletrônica industrial). O resistor a ser selecionado estaria nos terminais da torre, para que pudesse ser facilmente adicionado posteriormente. Em uma placa SMT, é difícil imaginar que seria rentável.
Mattman944 ​​8/04

Respostas:


6

Então você tem:

          R_x         R_fixed
Vcc -----^v^v^----+----^v^v^------- Gnd
                  |
                  |
                  +--- V_sensed --- ADC input

Rx é alguma resistência desconhecida (provavelmente algum tipo de sensor). E você está usando R_fixed em 0,1% agora para calcular efetivamente R_x, mas deseja usar um resistor fixo mais barato com uma tolerância menor de talvez 1%. Ao fazer isso, você deseja executar algum tipo de calibração durante a produção para corrigir o aumento do erro, certo?

A maneira como você acaba fazendo isso é colocar um byte na EEPROM (ou alguma outra memória não volátil) que atua como um "deslocamento" em seu cálculo, e é uma coisa perfeitamente viável de se fazer. O problema é que vai custar algum tempo durante a produção para realizar a atividade de calibração. Para fazer a calibração, você precisará de um desses resistores de 0,1% (chamado R_cal) de valor nominal comparável ao seu resistor de 1% para substituir R_x no circuito. Medindo V_sensed, é possível inferir com mais precisão o valor de R_fixed (ou seja, algo como 0,2%).

Se R_cal e R_fixed forem nominalmente o mesmo valor, você esperaria que V_sensed fosse igual a Vcc / 2. Você armazenaria o desvio medido de Vcc / 2 como um byte de compensação de calibração e sempre o adicionaria a V_sensed conforme percebido pelo seu ADC.

A armadilha, a meu ver, é que há um monte de trabalho envolvido na medição e, posteriormente, no armazenamento do valor. Outra coisa a considerar como uma armadilha é que a temperatura pode desempenhar um papel em fazer com que a resistência se desvie do seu valor nominal, portanto, você desejará um ambiente de calibração razoavelmente bem controlado por temperatura. Finalmente, não se esqueça de usar equipamentos de medição calibrados, pois essa é outra fonte potencial de erro aditivo. Uma última armadilha em que consigo pensar é que o byte de calibração deve ser armazenado em unidades do lsb do seu ADC (por isso, se você tiver um ADC de 12 bits, as unidades de byte de offset de calibração devem ser "Vcc / 2 ^ 12 Volts") .

Editar

Se você estiver usando dois resistores fixos para dividir uma grande tensão em uma escala mais baixa, da seguinte maneira:

        R1_fixed       R2_fixed
V_in -----^v^v^----+----^v^v^------- Gnd
                   |
                   |
                   +--- V_sensed --- ADC input

Seção reeditada

Portanto, agora você deseja usar uma referência de tensão de precisão (chamada V_cal) para estimular V_in durante uma etapa de calibração na produção. O que você tem lá é, em teoria:

V_sensed = V_predicted = V_cal * R2_fixed / (R1_fixed + R2_fixed) = V_cal * slope_fixed

Mas o que você tem na realidade é:

V_sensed = V_measured = V_cal * R2_actual / (R1_actual + R2_actual) = V_cal * slope_actual

Com efeito, você tem uma inclinação diferente da função de transferência na realidade do que você previa a partir dos valores do resistor. O desvio da função de transferência prevista do divisor será linear em relação à tensão de entrada e você pode assumir com segurança que 0V de entrada fornecerá 0V de saída, portanto, fazer uma medição de referência de tensão de precisão deve fornecer informações suficientes para caracterizar esse fator de escala linear . Nomeadamente:

V_measured / V_predicted = slope_fixed / slope_actual 
slope_actual = slope_fixed * V_measured / V_predicted

E você usaria slope_actual como seu valor calibrado para determinar a tensão em função da tensão medida.

abaixo cortesia de @markrages

Para obter a sensibilidade real da inclinação aos valores do resistor, é necessária uma diferenciação parcial:

texto alternativo


Eu quero usar 1% para ambos os resistores divisores. Estou usando um divisor de tensão para ler sinais de até 40V. O que você diz ainda se aplica? E procurarei uma referência de tensão de precisão, apesar de provavelmente ± 0,05% estar bem, e você pode obter ICs DIP que fazem isso.
Thomas O

@ Thomas OK, entendi mal sua pergunta ... você está usando um divisor de tensão para diminuir uma tensão grande, não para medir uma resistência desconhecida ... vou mudar minha resposta de acordo.
vicatcu

Não tenho certeza se o erro não será linear, ignorando o aquecimento do resistor agora. Deve ser um fator linear fixo para cada divisor (há quatro no quadro), pois o divisor está apenas dividindo por um valor fixo. Com zero volts, zero volts deve ser medido pelo ADC, mais o erro de deslocamento, que pode fazer com que ele leia uma contagem, então eu realmente não preciso me preocupar com o deslocamento ... A menos que esteja faltando alguma coisa?
Thomas O

desculpe, não-linear foi provavelmente o termo errado em retrospecto. O que você obterá efetivamente da calibração é um fator de escala, certo? O desvio do previsto será linear em relação à tensão de entrada. Portanto, dado algum "V previsto com base na medição", o V real terá que ser multiplicado por algum fator. O que seria não linear é o erro ao assumir que era uma tensão de compensação.
vicatcu

5

Por mim, será difícil, mas não impossível.

  • Normalmente, resistores classificados em 0,1% possuem coeficientes de temperatura = TC mais baixos, são mais imunes à umidade, solda (choque térmico), têm desvios menores com o tempo, ... que resistores classificados em 1%. Portanto, muitas fontes de mudança de resistência devem ser consideradas.
  • No nível de 40V, o efeito de autoaquecimento pode ser significativo, portanto, resistores com potência adequada devem ser usados.
  • existem resistores de 1% de boa qualidade, com TC <20ppm / deg e TC semelhante de resistor a resistor (diferença de + - 10ppm), mas isso é válido para o mesmo tipo, valor nominal e resistores de potência. O uso adequado desse tipo de resistor no divisor de tensão cancelará a influência do TC médio. Somente a diferença no TC terá influência na tensão de saída. Portanto, é possível obter divisores de precisão, usando resistores do mesmo valor.
  • Resistores de diferentes valores nominais podem ter mais CT diferentes. E o autoaquecimento terá influência diferente - mais energia dissipada no resistor de maior resistência irá aquecê-lo mais e alterar a resistência.
    Conclusão: Se você estiver usando muitos resistores em produção (séries longas da mesma placa / divisor) e o custo dos resistores for significativo, considere a substituição. Caso contrário, provavelmente não vale a pena esforços.

4

Essa abordagem funciona bem, passando de 5% para 1%. Indo de 1% a 0,1%, suspeito que você começará a ter sua precisão arruinada por flutuações de temperatura que alteram a resistência e, portanto, a tensão.

Se, por alguma razão desconhecida, você estiver operando em um ambiente isotérmico e seus resistores estiverem em corrente constante, o aquecimento automático é previsível e ainda é viável.


Eu acho que a temperatura pode influenciar um resistor típico de ± 100ppm / ° C em -0,4% a + 0,7% (ou o inverso) na faixa de operação de -40 ° C a + 70 ° C do meu dispositivo. Se necessário, eu também poderia calibrar isso. É mais provável que seja exposto a altas temperaturas, e posso aquecer a placa para testar isso.
Thomas O

3
Às vezes, com um design inteligente, é possível obter o cancelamento do tempco do resistor. Se você identificar esses pares de resistores em seu projeto, coloque-os próximos um do outro no layout para maximizar o acoplamento térmico. Ou mesmo use matrizes de resistores.
markrages

@markrages, se os dois resistores forem + 100ppm / ° C, isso minimizará o erro, pois ambos sairão pela mesma fração? Em teoria, assumindo que ambos os resistores oscilam em quantidades iguais, a saída não deve mudar. Na prática, provavelmente ocorreria, principalmente porque a própria referência de tensão (LM4040) pode derivar.
Thomas O

@Thomas. Sim, essa é a ideia. Vamos ver, o LM4040 reivindica 100 ppm / C no pior caso, 15 ppm típico a 1 mA ou menos. A resposta típica de temperatura é plotada na folha de dados e não se parece com algo que poderia ser facilmente cancelado. Eu acho que você pode colar um termistor NTC e "aquecê-lo" para mantê-lo em uma temperatura constante (elevada), mas não se você estiver com um orçamento de energia.
markrages

4

Você pode calibrar:

  • Tolerância de fabricação [2] [3], (+/- 1 *%) = pode ser calibrado
  • Calor de solda [2] [3], alteração da resistência devido à solda (+/- 0,2 * a 1%) = pode ser calibrado

Mas não se esqueça de todas as outras tolerâncias:

  • TCR [2] [3], resistência do coeficiente de temperatura (+/- 50 a 100 * ppm / C)
  • VCR [2], resistência do coeficiente de tensão (+/- 25 * ppm / V)
  • Fatores ambientais, mudança de resistência durante a vida útil (<= + / - 3% * a 155 C, 225 000 h) [2] [3] [4]

* Observe que todos os valores podem diferir entre marcas e produtos de resistores.

[1] https://www.vishay.com/docs/28809/driftcalculation.pdf

[2] https://www.digikey.se/sv/ptm/v/vishay-beyschlag/mm-hv-high-voltage-thin-film-melf-resistors/tutorial

[3] https://industrial.panasonic.com/cdbs/www-data/pdf/RDA0000/AOA0000C304.pdf

[4] MIL-STD R-10509.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.