Quanto è possibile utilizzare solo resistori dell'1% e calibrare l'errore?


9

Al momento, utilizzo resistori allo 0,1% per ottenere misurazioni accurate della tensione attraverso un divisore di tensione. Tuttavia, il costo è elevato, quindi stavo pensando di utilizzare resistori dello 0,5% o dell'1% e di calibrare l'errore nel software utilizzando un riferimento di tensione di precisione durante la produzione. Qualcuno l'ha fatto con successo? Quali insidie ​​potrei incontrare?


A quale tipo di strumenti di produzione hai accesso? Riesci a ottenere / costruire qualcosa come un programmatore / tester del letto di chiodi?
Kevin Vermeer,

@reemrevnivek - Attualmente non. Il mio produttore di PCB prova E ogni scheda, ma non è garantito che la saldatura funzionerà.
Thomas O

40 anni fa su schede a foro passante, questo era abbastanza comune dove lavoravo (elettronica industriale). La resistenza da selezionare sarebbe sui terminali della torretta, quindi potrebbe essere facilmente aggiunta in seguito. Su una scheda SMT, è difficile immaginare che sarebbe conveniente.
Mattman944,

Risposte:


6

Quindi hai:

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

Rx è una resistenza sconosciuta (probabilmente un sensore di qualche tipo). E stai usando R_fixed allo 0.1% in questo momento per calcolare efficacemente R_x, ma vuoi usare un resistore fisso più economico con una tolleranza inferiore forse dell'1%. Nel fare ciò, si desidera eseguire una sorta di calibrazione durante la produzione per correggere l'errore aumentato, giusto?

Il modo in cui finisci per farlo è inserire un byte in EEPROM (o qualche altra memoria non volatile) che funge da "offset" nel tuo calcolo, ed è una cosa perfettamente praticabile da fare. Il fatto è che ti costerà del tempo durante la produzione per svolgere l'attività di calibrazione. Per eseguire la calibrazione, avrai bisogno di uno di quei resistori dello 0,1% (chiamalo R_cal) di valore nominale comparabile al tuo resistore dell'1% per sostituire R_x nel circuito. Misurando V_sensed, puoi dedurre più precisamente il valore di R_fixed (cioè a qualcosa come 0,2%).

Se R_cal e R_fixed hanno lo stesso valore nominale, ti aspetteresti che V_sensed sia uguale a Vcc / 2. Memorizzeresti la deviazione misurata da Vcc / 2 come byte di offset di calibrazione e lo aggiungeresti sempre a V_sensed come percepito dal tuo ADC.

Il problema, a mio modo di vedere, è che c'è un sacco di lavoro coinvolto nello svolgimento della misurazione e successivamente nella memorizzazione del valore. Un'altra cosa da considerare come una trappola è che la temperatura può svolgere un ruolo nel causare una resistenza che devia dal suo valore nominale, quindi avrai bisogno di un ambiente di calibrazione ragionevolmente ben controllato. Infine, non dimenticare di utilizzare apparecchiature di misurazione calibrate, poiché questa è un'altra potenziale fonte di errore additivo. Un'ultima trappola a cui riesco a pensare è che il byte di calibrazione dovrebbe essere memorizzato in unità dell'sb del tuo ADC (quindi se hai un ADC a 12 bit, le unità del byte di offset della calibrazione dovrebbero essere "Vcc / 2 ^ 12 Volt") .

modificare

Se si utilizzano due resistori fissi per dividere una grande tensione in basso su una scala inferiore come segue:

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

Sezione modificata

Quindi ora vuoi usare un riferimento di tensione di precisione (chiamalo V_cal) per stimolare V_in durante una fase di calibrazione in produzione. Quello che hai lì è in teoria:

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

Ma quello che hai nella realtà è:

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

In effetti, in realtà hai una pendenza della funzione di trasferimento diversa da quella che prevederesti dai valori della resistenza. La deviazione dalla funzione di trasferimento del divisore prevista sarà lineare rispetto alla tensione di ingresso e si può presumere che 0 V in entrata fornirà 0 V in uscita, quindi effettuare una misurazione di riferimento della tensione di precisione dovrebbe fornire informazioni sufficienti per caratterizzare questo fattore di scala lineare . Vale a dire:

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

E useresti la pendenza_attuale come valore calibrato per determinare la tensione in funzione della tensione misurata.

sotto per gentile concessione di @markrages

Per ottenere la sensibilità della pendenza effettiva ai valori della resistenza è necessario differenziare parzialmente:

testo alternativo


Voglio usare l'1% per entrambi i resistori divisori. Sto usando un partitore di tensione per leggere segnali fino a 40 V. Quello che dici vale ancora? E cercherò un riferimento di tensione di precisione, anche se ± 0,05% probabilmente va bene, e puoi ottenere circuiti integrati DIP che lo fanno.
Thomas O

@Thomas OK, ho frainteso la tua domanda ... stai usando un divisore di tensione per ridurre una grande tensione, non per misurare una resistenza sconosciuta ... Cambierò di conseguenza la mia risposta.
Vicatcu,

Non sono così sicuro che l'errore non sarà lineare, ignorando per ora il riscaldamento del resistore. Dovrebbe essere un fattore lineare fisso per ogni divisore (ce ne sono quattro sulla scheda), poiché il divisore si sta semplicemente dividendo per un importo fisso. Con zero volt in, zero volt dovrebbero essere misurati dall'ADC, oltre all'errore di offset, che potrebbe causare la lettura di un conteggio, quindi non ho davvero bisogno di preoccuparmi dell'offset ... A meno che non mi manchi qualcosa?
Thomas O

scusate, il non lineare era probabilmente il termine sbagliato in retrospettiva. Ciò che otterrai in modo efficace dalla calibrazione è un fattore di scala, giusto? La deviazione dalla previsione sarà lineare rispetto alla tensione di ingresso. Quindi, dati alcuni "V previsti in base alla misura", la V effettiva dovrà essere moltiplicata per un fattore. Ciò che sarebbe non lineare è l'errore nel presupporre che fosse una tensione di offset.
Vicatcu,

5

Per me sarà difficile, ma non impossibile.

  • Di solito i resistori nominali allo 0,1% hanno TC = coefficienti di temperatura più bassi, sono più immuni all'umidità, saldano (shock termico), hanno una deriva inferiore nel tempo, ... rispetto ai resistori nominali all'1%. Quindi, molte fonti di cambiamento di resistenza dovrebbero essere considerate.
  • A livello di 40 V l'effetto di riscaldamento automatico può essere significativo, pertanto è necessario utilizzare resistori con una potenza nominale adeguata.
  • ci sono resistori dell'1% di buona qualità, con TC <20ppm / deg e TC simile da resistore a resistore (differenza + - 10ppm) ma questo vale per lo stesso tipo, valore nominale e resistori di potenza. L'uso corretto di questo tipo di resistori nel partitore di tensione annulla l'influenza del TC medio. Solo la differenza in TC avrà influenza sulla tensione di uscita. Quindi è possibile ottenere divisori di precisione, usando resistori dello stesso valore.
  • I resistori con valori nominali diversi possono avere TC più diversi. E l'autoriscaldamento avrà un'influenza diversa: più potenza dissipata su un resistore a resistenza più elevata lo riscalderà di più e cambierà resistenza.
    Conclusione: se si utilizzano molti resistori in produzione (lunghe serie della stessa scheda / divisore) e il costo dei resistori è significativo, è possibile prendere in considerazione la sostituzione. Altrimenti molto probabilmente non vale la pena di sforzi.

4

Questo approccio funziona bene passando dal 5% all'1%. Passando dall'1% allo 0,1%, sospetto che inizierai ad avere la tua precisione rovinata dalle fluttuazioni di temperatura che cambiano la resistenza e quindi la tensione.

Se, per qualche ragione sconosciuta, stai operando in un ambiente isotermico e i tuoi resistori sono tutti a corrente costante, quindi l'autoriscaldamento è prevedibile, è ancora praticabile.


Immagino che la temperatura potrebbe influenzare una resistenza tipica di ± 100 ppm / ° C da -0,4% a + 0,7% (o viceversa) nell'intervallo operativo da -40 ° C a + 70 ° C del mio dispositivo. Se necessario, potrei calibrare anche quello. È più probabile che sia esposto a temperature elevate e posso riscaldare la scheda per testarlo.
Thomas O

3
A volte con un design intelligente è possibile annullare i resistori tempco. Se identifichi tali coppie di resistori nel tuo progetto, mettile una accanto all'altra nel layout per massimizzare l'accoppiamento termico. O addirittura utilizzare array di resistori.
segna il

@markrages, se entrambi i resistori sono + 100ppm / ° C, ciò minimizzerà l'errore, dal momento che entrambi saranno fuori dalla stessa frazione? In teoria, supponendo che entrambi i resistori si spostino di pari quantità, l'output non dovrebbe cambiare. In pratica probabilmente lo sarebbe, soprattutto perché il riferimento di tensione (LM4040) stesso potrebbe spostarsi.
Thomas O

@Tommaso. Sì, questa è l'idea. Vediamo, l'LM4040 afferma il caso peggiore di 100 ppm / C, 15 ppm tipico a 1 mA o meno. La risposta di temperatura tipica è tracciata nel foglio dati e non sembra qualcosa che potrebbe essere facilmente cancellata. Suppongo che potresti incollare un termistore NTC e "forno" per mantenerlo a una temperatura costante (elevata), ma non se hai un budget di potenza.
segna il

4

È possibile calibrare:

  • La tolleranza di produzione [2] [3], (+/- 1 *%) = può essere calibrata
  • Calore di saldatura [2] [3], la variazione di resistenza dovuta alla saldatura (da +/- 0,2 * a 1%) = può essere calibrata

Ma non dimenticare tutte le altre tolleranze:

  • TCR [2] [3], resistenza del coefficiente di temperatura (+/- 50 a 100 * ppm / C)
  • VCR [2], resistenza del coefficiente di tensione (+/- 25 * ppm / V)
  • Fattori ambientali, variazione di resistenza nel corso della vita (<= + / - 3% * a 155 C, 225000 h) [2] [3] [4]

* Notare che tutti i valori possono differire tra marche e prodotti di resistori.

[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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.