Semplificare molti comparatori di finestre


10

Ho 8 termistori e devo assicurarmi che ciascuno di essi sia all'interno di una finestra di temperatura. Hanno tutti la stessa finestra e non mi interessa quale o quanti siano all'interno dell'intervallo valido, ho solo bisogno di sapere se tutti sono all'interno della (stessa) finestra o meno. Questa deve essere una soluzione solo hardware, quindi il sequenziamento software delle letture ADC è fuori discussione.

La mia migliore soluzione attualmente è quella di utilizzare un sacco di circuiti integrati di confronto e implementare un comparatore di finestre separato per ciascun termistore. Per ottimizzare la soluzione, posso utilizzare un numero di comparatori quad, ciascuno con un'uscita open-drain in modo da poterli collegare tutti. Tuttavia, in sostanza è lo stesso circuito. Le tensioni di riferimento / trigger che posso creare una volta, buffer, quindi fornire a tutti i comparatori.

Mi sento stupido per aver semplicemente lanciato un sacco di comparatori sul problema. Non sono sicuro che non ci sia modo migliore, sto principalmente cercando di ottimizzare lo spazio sulla scheda. C'è un modo creativo che conosci? Ad esempio, selezionare le tensioni min / max di tutti i termistori e utilizzare un comparatore a finestra singola (EDIT: due comparatori ofc), che IMHO porterebbe a una soluzione più ampia e quindi non è una buona risposta, sto solo citando questo per ispirazione.

EDIT: so che una soluzione basata su software sarebbe la migliore. Ecco perché l'ho menzionato all'inizio e in anticipo per impedire a tutti di suggerirlo. Il motivo per cui il problema è stato definito in questo modo è perché si tratta di un circuito di sicurezza e le specifiche richiedono l'implementazione di una soluzione solo hardware oltre a un monitor software. Quindi la soluzione basata su software è già lì, ho "solo" bisogno di trovare il modo migliore per implementare quella basata su hardware.


1
È possibile multiplexare gli input in un comparatore di finestre. Ma allora avresti bisogno di qualcosa per sequenziare le misure e combinare i risultati. La restrizione "nessun software" è una seccatura dal momento che potresti fare tutto questo con un microcontrollore con un ADC integrato, che comporterebbe il minimo ingombro che posso vedere. Dato che sono un ragazzo hardware, mi pento di ammetterlo, ma un UC e un piccolo programma sono difficili da battere qui.
Bimpelrekkie,

4
Se la precisione desiderata non è eccessivamente "stretta", è possibile utilizzare un diodo o un gate con un resistore pull down per l'alta finestra legata dai termistori tramite un diodo da ciascuno. La tensione del resistore sarà la tensione più alta meno una caduta di diodi. Ripetere l'operazione per la finestra bassa con un resistore pull-up e diodi a polarità inversa. | Mentre hai detto che questa non doveva essere una soluzione software - un Arduino dedicato (o solo un processore di scelta che fa esclusivamente questo compito) rischia di essere vicino come compatto e basso costo.
Russell McMahon,

1
"il software-sequencing delle letture ADC è fuori discussione." Con ciò hai buttato via la soluzione più semplice e più piccola.
Oldfart

1
Qual è lo standard che richiede che i due sistemi indipendenti siano solo hardware? Ho visto le specifiche per i sistemi implementati in modo indipendente, ma la ridondanza fornisce l'affidabilità necessaria. Ad esempio, è possibile implementare due sistemi di controllo basati su micro per lo spazio di un solo hardware.
Olin Lathrop,

2
Un FPGA è considerato un software?
Eric Johnson,

Risposte:


11

Un comparatore a finestra, un contatore a 3 bit e un mux analogico 8: 1 per collegare un termistore al comparatore.

Se tutto ciò che devi sapere è che stanno tutti bene; sono 3 chip, lavoro fatto. (74HC163, 74HC4051, comparatore, più qualcosa come un 555 per cronometrarlo).

Come dice Andy, il MUX (ad es. 74HC4051) ha una resistenza ON piuttosto bassa, quindi ogni termistore si collega a un ingresso analogico e un resistore solitario sull'altro lato fornisce un partitore di tensione. Se i termistori sono tutti collegati a GND, la resistenza passa a 5 V.

schematico

simula questo circuito - Schema creato usando CircuitLab

Se è necessario registrare / visualizzare QUALI non sono conformi alle specifiche, si inizia ad aggiungere circuiti come un decodificatore a 3-8 linee (un altro IC, 74HC138) per pilotare otto LED; le parti colpevoli si alterneranno a lampeggiare.

Se hai bisogno di qualcosa di più, scegli MCU e software.


La sorgente di eccitazione (resistenza) potrebbe trovarsi sul lato "1" del MUX (basso ohm MUX) ma altrimenti +1 per avermi battuto.
Andy alias il

@Andyaka Ecco perché non mi sono preoccupato di uno schema! Inoltre, non riesco a trovare 74 (HCT) 4051, 74x163, 74x138 nell'editor sch online ... Compilerò quel dettaglio ma se vuoi riempire di più, varrà un voto o due.
Brian Drummond,

Sei su un tiro Brian quindi lo lascerò con te.
Andy aka

1
Ok, idea interessante. C'è un leggero problema all'uscita, nel senso che se un singolo termistore è fuori portata, per esempio, l'uscita me lo direbbe letteralmente solo in 1/8 di tempo. Probabilmente non è un grosso problema come potrei alimentare l'output di win.comp. a un registro a scorrimento con uscite open-drain. Avrei bisogno di sincronizzarlo, ma la stessa cosa che colpisce il multiplexer potrebbe probabilmente farlo. Sicuramente un'idea che vale la pena seguire, lasciami provare a elaborare uno schema più completo e ti ricontatterò qui.
ultimA

Bene, se lo clock a 4 Hz e la costante di tempo del tuo sistema termico è> 2 secondi, questo è (a) OK e (b) fornisce una frequenza di lampeggiamento piuttosto rilevante (frequenza di ronzio, qualunque cosa). Conosci le caratteristiche del sistema, posso solo immaginarlo.
Brian Drummond,

13

Penso che la risposta non SW di Brian sia la migliore, ma ecco una soluzione puramente analogica. Utilizzare un circuito che sceglie intrinsecamente l'ingresso di massima tensione (tra diversi) e lo immette in uscita. Idem per il circuito per la tensione più bassa.

Considera il raddrizzatore di precisione: -

inserisci qui la descrizione dell'immagine

Produce una tensione di uscita che segue la tensione di ingresso in tutto il suo intervallo positivo. Ora considera cosa succede quando hai due input come questo: -

inserisci qui la descrizione dell'immagine

Qualunque sia il V1 e V2 più alto vincerà la battaglia per guidare la linea di uscita. Fai un passo e ripeti per 8 ingressi, quindi fai lo stesso con i diodi collegati inversi e hai una soluzione che genera due tensioni di uscita che rappresentano i livelli più alto e più basso da diverse fonti di tensione.

Non sono al 100% ma penso che tu possa riutilizzare gli amplificatori operazionali per le tensioni più basse. Forse mi sbaglio su questo?

Quindi utilizzare i comparatori su entrambe le linee per determinare se uno degli otto potrebbe essere fuori portata.


Avevamo più o meno la stessa domanda qualche tempo fa e penso che questa soluzione sia una gemma nascosta.
Janka,

@Janka forse puoi trovarlo e collegarlo? Mi piacerebbe vederlo
Andy alias il

+1 Mi piace questo. Forse 4 LM324 + un cablato o LM393 e il gioco è fatto. Può filtrare * & * $$ per evitare falsi trigger.
Spehro Pefhany,

Ho avuto l'impressione che non fosse più di un mese fa e contenesse la parola magnitudo , ma penso di aver sbagliato: non riesco a trovarlo.
Janka,

Ciao! La ringrazio per la risposta. Penso che questo in realtà aumenti i costi in ogni aspetto. Costruire ingenuamente 8 comparatori di finestre come nella domanda originale richiede 16 comparatori. Questa soluzione proposta richiede anche 16 solo per la costruzione di min + max, quindi altri 4 per il confronto effettivo più una matrice di diodi. Spesso la differenza nel numero di circuiti integrati effettivi è minore a causa dei quad opamp, ma tuttavia non è una vittoria.
ultimA

3

Suggerimenti per migliorare le soluzioni multiplex da utilizzare come circuito di sicurezza: avere uno degli ingressi multiplexer preimpostato su un ingresso noto al di fuori della finestra di sicurezza (o anche due ingressi, uno sotto quello sopra). Verificare la presenza di una risposta "finestra esterna" dal comparatore quando gli ingressi rilevanti sono selezionati sul multiplexer.

Guidare al meglio il multiplexer con un contatore (sincrono è il migliore) che ha una risoluzione un po 'più del necessario (e ha un clock due volte più veloce): il bit del contatore meno significativo emette un segnale di trigger eccezionale in modo da poter caricare lo stato del comparatore in un fronte ha attivato il Flip-flop D dopo che ha avuto molto tempo per stabilizzarsi - e questo segnale di trigger può anche essere protetto in modo sicuro dalla logica a seconda dello stato del contatore con diversi Flip-flop D (ad esempio uno per ciascun termistore o uno per i termistori e uno per il sé -test dei canali che ho suggerito sopra).

Per essere ancora più sicuro, duplica l'intero circuito. Mentre i termistori e gli ingressi associati sono ancora teoricamente un singolo punto di errore, il fatto che si stia utilizzando un comparatore di finestre dovrebbe impedire che un cortocircuito completo o aperto su una termocoppia venga interpretato erroneamente come un falso OK (polarizzazione di conseguenza).


3

Ecco un IC comparatore a 6 finestre e qui c'è un IC comparatore a finestre Quad .
No 8, ahimè.

Potresti soddisfare l'esigenza con 4 comparatori di drenaggi quad-open LM339 4 x vecchi.
Questi possono essere disponibili in
1,7 mm x 1,7 mm (3 mm x 3 mm inclusi gli elettrodi) QFN
o 6,4 x 5 mm TSSOP

Scheda tecnica qui

Avresti anche bisogno di tensioni di riferimento della finestra superiore e inferiore (3 resistori) e un singolo pullup di uscita.


Ciao. Sì, ho anche menzionato nella domanda originale che è possibile utilizzare array, il che riduce indiscutibilmente il conteggio dei circuiti integrati. Immagino che la domanda riguardasse più se è possibile ridurre il conteggio dei componenti usando un'architettura diversa che semplicemente usando dispositivi di integrazione più alti. Ho accettato la risposta di Brian, perché usando solo 5-6 componenti fisici è possibile costruire un circuito per 16 o addirittura 32 termistori con quella soluzione. Forse non per un basso numero di NTC come <8, ma qualcosa di più e quella soluzione è un chiaro vincitore. Tuttavia, grazie (anche per i commenti precedenti).
ultimA

2

Perché così complesso?

U2 + sarà max (input) - caduta di diodi.

U1- sarà min (input) + drop dei diodi.

R3,4,5 stabilisce soglie. Se troppo basso su qualsiasi ingresso, U1- scende sotto la soglia su U1 +, U1out sale. Se troppo alto su qualsiasi input, U2 + supera la soglia. U2out sale.

Non sono sicuro di ciò che vuoi effettivamente fare quando si verifica una delle condizioni, ma ti viene in mente un transistor / FET / SCR.



-2
Sto principalmente cercando di ottimizzare lo spazio sulla scheda.
Mi sento stupido per aver semplicemente lanciato un sacco di comparatori sul problema.

La soluzione ovvia è utilizzare un microcontrollore con almeno 8 ingressi A / D. Il resto è il firmware.

Anche un micro lento può tenere il passo con 8 termistori. Ad esempio, puoi creare banalmente un sistema che risponde in meno di un millisecondo. Dovrebbe essere molto più veloce del tempo di risposta dei termistori da essere effettivamente istantaneo.

Dici che il sequenziamento delle letture A / D è "fuori questione", ma non ha fornito alcuna giustificazione per questo requisito arbitrario. Un piccolo microcontrollore occuperà meno spazio sulla scheda rispetto a un gruppo di comparatori. Poiché l'ottimizzazione dello spazio sulla scheda è principalmente ciò a cui stai mirando, questo è qualcosa che devi esplorare seriamente.


6
Sì, no ti sbagli. Non c'è religione, ci sono semplicemente momenti in cui una soluzione basata su hardware è un requisito, punto. Non vedo perché devo giustificare i miei requisiti, perché anche se pensi che il requisito sia una sciocchezza, la risposta corretta ha valore di insegnamento per tutti. Ma, naturalmente, c'è un motivo, che ho fornito in una modifica alla fine della domanda.
ultimA

6
Costruire un caso di sicurezza per un sistema software (come potrebbe essere necessario chiarire la domanda modificata) può essere molto più costoso che costruire un semplice sistema hardware indipendente.
Brian Drummond,

3
Qualunque cosa tu dica non cambia il fatto che la tua risposta sia errata, scortese e inutile
MCG

3
Chiacchierando solo perché posso. La soluzione "Usa una micro", sebbene pertinente in molti casi, è davvero irrilevante qui. Dopotutto, questo è un forum di elettronica e pubblicare risposte su come farlo in modo lineare è una risposta più istruttiva. Se non altro per evidenziare quanto più economico e più piccolo sarebbe usare un micro.
Trevor_G,
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.