Uproszczenie wielu komparatorów okien

10

Mam 8 termistorów i muszę upewnić się, że każdy z nich znajduje się w oknie temperaturowym. Wszystkie mają to samo okno i nie obchodzi mnie, które lub ile jest w prawidłowym zakresie, muszę tylko wiedzieć, czy wszystkie znajdują się w (tym samym) oknie, czy nie. To ma być rozwiązanie sprzętowe, więc sekwencjonowanie programowe odczytów ADC nie wchodzi w rachubę.

Obecnie moim najlepszym rozwiązaniem jest użycie kilku układów scalonych komparatora i wdrożenie osobnego komparatora okienkowego dla każdego termistora. Aby zoptymalizować rozwiązanie, mogę użyć szeregu quadarów, każdy z wyjściem typu open-drain, dzięki czemu mogę je wszystkie połączyć. Jednak w gruncie rzeczy jest to ten sam obwód. Napięcia odniesienia / wyzwalania, które mogę wykonać raz, buforować, a następnie dostarczać do wszystkich komparatorów.

Czuję się głupio, po prostu rzucając kilka komparatorów na problem. Nie jestem pewien, czy nie ma lepszego sposobu, głównie staram się zoptymalizować przestrzeń na płycie. Czy znasz jakiś kreatywny sposób? Na przykład wybierz napięcia minimalne / maksymalne wszystkich termistorów i użyj komparatora z jednym oknem (EDYCJA: dwa komparatory ofc), co IMHO doprowadziłoby do większego rozwiązania, a zatem nie jest dobrą odpowiedzią, po prostu wspominam o tym dla inspiracji.

EDYCJA: Wiem, że najlepsze byłoby oprogramowanie oparte na oprogramowaniu. Właśnie dlatego wspomniałem o tym od samego początku i z góry, aby nikt nie sugerował tego. Problem został zdefiniowany w ten sposób, ponieważ jest to obwód bezpieczeństwa, a specyfikacje wymagają ode mnie rozwiązania sprzętowego oprócz monitora oprogramowania. Tak więc rozwiązanie oparte na oprogramowaniu już tam jest, „po prostu” muszę znaleźć najlepszy sposób na wdrożenie rozwiązania sprzętowego.

ultimA
źródło
1
Można multipleksować wejścia do jednego komparatora okien. Ale wtedy potrzebujesz czegoś do zsekwencjonowania pomiarów i połączenia wyników. Ograniczenie „brak oprogramowania” jest uciążliwe, ponieważ można to wszystko zrobić za pomocą jednego mikrokontrolera z wbudowanym ADC, co spowodowałoby jak najmniejszy ślad, jaki widzę. Ponieważ jestem facetem od sprzętu, z przykrością muszę to przyznać, ale uC i mały program trudno tutaj pokonać.
Bimpelrekkie
4
Jeśli pożądana dokładność nie jest zbyt „wąska”, można użyć bramki LUB z rezystorem opuszczającym do wysokiego okna ograniczonego przez termistory za pośrednictwem diody z każdego z nich. Napięcie rezystora będzie najwyższym napięciem pomniejszonym o spadek diody. Powtórz dla niskiego okna z rezystorem podciągającym i diodami o odwróconej polaryzacji. | Chociaż powiedziałeś, że to nie miało być rozwiązanie programowe - dedykowane Arduino (lub po prostu procesor z wyboru, który wykonuje wyłącznie to zadanie) może być tak kompaktowe i tanie.
Russell McMahon
1
„sekwencjonowanie programowe odczytów ADC nie wchodzi w rachubę”. Dzięki temu odrzuciłeś najprostsze i mniejsze rozwiązanie.
Oldfart
1
Jaki to standard, który wymaga dwóch niezależnych systemów, z których jeden jest tylko sprzętowy? Widziałem specyfikacje dla niezależnie wdrażanych systemów, ale redundancja zapewnia niezbędną niezawodność. Można na przykład zaimplementować dwa mikroukładowe systemy kontrolne dla przestrzeni tylko jednego sprzętu.
Olin Lathrop
2
Czy oprogramowanie FPGA jest uważane za oprogramowanie?
Eric Johnson

Odpowiedzi:

11

Jeden komparator okienny, 3-bitowy licznik i multiplekser analogowy 8: 1 do podłączenia jednego termistora do komparatora.

Jeśli wszystko, co musisz wiedzieć, to że wszystko jest w porządku; to 3 żetony, praca wykonana. (74HC163, 74HC4051, komparator, plus coś w rodzaju 555 do taktowania).

Jak mówi Andy, MUX (np. 74HC4051) ma dość niską rezystancję załączania, więc każdy termistor łączy się z jednym wejściem analogowym, a samotny rezystor po drugiej stronie zapewnia dzielnik napięcia. Jeśli wszystkie termistory są podłączone do GND, rezystor osiągnie napięcie 5 V.

schematyczny

symulacja tego obwodu - Schemat utworzony przy użyciu CircuitLab

Jeśli musisz nagrywać / wyświetlać, KTÓRE są niezgodne ze specyfikacją, zaczynasz dodawać obwody, takie jak dekoder 3-8 linii (jeszcze jeden układ scalony, 74HC138), aby sterować ośmioma diodami LED; winni będą na przemian mrugać.

Jeśli potrzebujesz więcej, wybierz MCU i oprogramowanie.

Brian Drummond
źródło
Źródło wzbudzenia (rezystor) może znajdować się po stronie „1” MUX (MUX o niskim omie), ale poza tym +1 za pobicie mnie.
Andy aka
@Andyaka Właśnie dlatego nie zawracałem sobie głowy schematem! Plus, nie mogę znaleźć 74 (HCT) 4051, 74x163, 74x138 w internetowym edytorze sch ... Wypełnię ten szczegół, ale jeśli chcesz wypełnić więcej, będzie warty dwa lub dwa głosy.
Brian Drummond
Masz ochotę, Brian, więc zostawię to tobie.
Andy aka
1
OK, ciekawy pomysł. Na wyjściu występuje niewielki problem, na przykład, jeśli pojedynczy termistor jest poza zakresem, na przykład wyjście powiedziałoby mi to dosłownie tylko w 1/8 czasu. Prawdopodobnie nie jest to tak wielka sprawa, jak mogłabym nakarmić wyniki win.comp. do rejestru przesuwnego z wyjściami otwartego odpływu. Musiałbym go taktować, ale prawdopodobnie to samo, co szturcha multiplekser. Zdecydowanie pomysł warty naśladowania, pozwól mi wymyślić bardziej kompletny schemat, a wrócę tutaj.
ultimA
Cóż, jeśli ustawisz go na 4 Hz, a stała czasowa twojego systemu termicznego wynosi> 2 sekundy, to (a) OK i (b) daje dość wyraźną częstotliwość mrugania (częstotliwość brzęczyka, cokolwiek). Znasz charakterystykę systemu, mogę tylko zgadywać.
Brian Drummond
13

Myślę, że odpowiedź Brira nie-SW jest najlepsza, ale oto rozwiązanie czysto analogowe. Użyj obwodu, który z natury wybiera najwyższe napięcie wejściowe (z kilku) i podaje je na wyjście. Podobnie jak obwód o najniższym napięciu.

Rozważ precyzyjny prostownik: -

wprowadź opis zdjęcia tutaj

Wytwarza napięcie wyjściowe, które podąża za napięciem wejściowym w całym zakresie dodatnim. Teraz zastanów się, co się stanie, gdy masz dwa takie wejścia: -

wprowadź opis zdjęcia tutaj

Którykolwiek z V1 i V2 jest najwyższy, wygra bitwę o przejęcie linii wyjściowej. Krok i powtórz dla 8 wejść, a następnie zrób to samo z diodami podłączonymi odwrotnie, a otrzymasz rozwiązanie, które generuje dwa napięcia wyjściowe, które reprezentują najwyższy i najniższy poziom z kilku różnych źródeł napięcia.

Nie jestem w 100%, ale myślę, że możesz użyć wzmacniaczy operacyjnych dla najniższych napięć. Może się mylę?

Następnie użyj komparatorów na obu liniach, aby ustalić, czy jeden z ośmiu może być poza zakresem.

Andy aka
źródło
Jakiś czas temu mieliśmy mniej więcej to samo pytanie i myślę, że to rozwiązanie jest ukrytym klejnotem.
Janka
@Janka może ją znajdziesz i połączysz? Chciałbym to zobaczyć
Andy alias
+1 Lubię to. Może 4 LM324s + przewodowy lub LM393 i gotowe. Może odfiltrować * i * $$, aby zapobiec fałszywym wyzwalaczom.
Spehro Pefhany
Miałem wrażenie, że to nie było więcej niż miesiąc temu, i miałem w sobie słowo wielkości , ale myślę, że się myliłem: nie mogę go znaleźć.
Janka
Cześć! Dziękuję za Twoją odpowiedź. Myślę, że to faktycznie zwiększa koszty w każdym aspekcie. Naiwne budowanie 8 komparatorów okien jak w pierwotnym pytaniu wymaga 16 komparatorów. To proponowane rozwiązanie wymaga również 16 tylko do zbudowania min + max, następnie dodatkowe 4 do faktycznego porównania plus układ diod. Różnica w liczbie rzeczywistych układów scalonych jest mniejsza ze względu na poczwórne opampy, ale nie jest to wygrana.
ultimA
3

Sugestie ulepszenia multipleksowanych rozwiązań do stosowania jako obwód bezpieczeństwa: Ustaw jedno z wejść multipleksera na wejście znane z bezpiecznego okna (lub nawet dwa wejścia, jedno poniżej jednego powyżej). Sprawdź, czy występuje komparator w odpowiedzi na „okno zewnętrzne”, gdy odpowiednie wejścia są wybrane w multiplekserze.

Najlepiej napędzaj multiplekser za pomocą licznika (najlepiej synchronicznego), który ma o jedną bit większą rozdzielczość niż potrzebujesz (i jest taktowany dwa razy szybciej): najmniej znaczący bit licznika stanowi doskonały sygnał wyzwalający, dzięki czemu można załadować stan komparatora do krawędź wyzwoliła flipflop D po tym, jak miał wystarczająco dużo czasu na ustabilizowanie się - i ten sygnał wyzwalający może być bezpiecznie bramkowany logicznie w zależności od stanu przeciwnego do różnych flipflopów D (np. jeden dla każdego termistora lub jeden dla termistorów i jeden dla siebie - kanały testowe, które zasugerowałem powyżej).

Aby być jeszcze bardziej bezpiecznym, zduplikuj cały obwód. Podczas gdy termistory i powiązane dane wejściowe są teoretycznie jednym punktem awarii, fakt, że używasz komparatora okien, powinien zapobiec całkowitemu błędnemu odczytaniu pełnego zwarcia lub otwarcia termopary jako fałszywego OK (odpowiednio odchylenie).

rackandboneman
źródło
3

Oto układ porównawczy 6 okien z oknem, a tutaj układ scalony porównawczy z czterema oknami .
Niestety nie.

Możesz zaspokoić tę potrzebę dzięki 4 x ye olde LM339 czterokanałowym komparatorom z otwartym drenem.
Mogą być dostępne w wersji
1,7 mm x 1,7 mm (3 mm x 3 mm łącznie z nakładkami) QFN
lub 6,4 x 5 mm TSSOP

Arkusz danych tutaj

Potrzebne byłyby również napięcia odniesienia górnego i dolnego okna (3 rezystory) i jedno wyjście wyjściowe.

Russell McMahon
źródło
Witaj. Tak, wspomniałem również w pierwotnym pytaniu, że możliwe jest użycie tablic, co niewątpliwie obniża liczbę IC. Wydaje mi się, że pytanie dotyczyło raczej tego, czy można zmniejszyć liczbę komponentów przy użyciu innej architektury niż tylko przy użyciu wyższych urządzeń integracyjnych. Zaakceptowałem odpowiedź Briana, ponieważ przy użyciu tylko 5-6 fizycznych komponentów można zbudować obwód dla 16 lub nawet 32 ​​termistorów z tym rozwiązaniem. Może nie dla małej liczby NTC, takich jak <8, ale cokolwiek więcej i to rozwiązanie jest wyraźnym zwycięzcą. Niemniej jednak dziękuję (również za wcześniejsze komentarze).
ultimA
2

Dlaczego tak złożony?

U2 + będzie max (wejścia) - spadek diody.

U1- będzie wynosić min (wejścia) + spadek diody.

R3,4,5 ustawia progi. Jeśli zbyt niskie na dowolnym wejściu, U1- spada poniżej progu na U1 +, U1out przechodzi w stan wysoki. Jeśli zbyt wysokie na którymkolwiek wejściu, U2 + wzrasta powyżej progu. U2out idzie wysoko.

Nie jestem pewien, co właściwie należy zrobić, gdy wystąpi którykolwiek z tych warunków, ale przychodzi na myśl tranzystor / FET / SCR.

Magoo
źródło
1

Możesz kupić układy porównawcze okien, aby zaoszczędzić miejsce na płycie. Na przykład TPS3700 , LTC1042 , LMV7231 (hex) lub MAX969 (quad).

τεκ
źródło
-2
Głównie staram się zoptymalizować przestrzeń na desce.
Czuję się głupio, po prostu rzucając kilka komparatorów na problem.

Oczywistym rozwiązaniem jest użycie mikrokontrolera z co najmniej 8 wejściami A / D. Reszta to oprogramowanie układowe.

Nawet wolna mikro może nadążyć za 8 termistorami. Możesz na przykład w prosty sposób stworzyć system, który reaguje w ciągu milisekundy. Powinno to być o wiele szybsze niż czas reakcji termistorów, aby było efektywne natychmiastowe.

Mówisz, że sekwencjonowanie odczytów A / D jest „wykluczone”, ale nie uzasadnia tego arbitralnego wymogu. Mały mikrokontroler zajmie mniej miejsca na płycie niż kilka komparatorów. Ponieważ optymalizacja przestrzeni planszowej jest przede wszystkim tym, do czego dążysz, musisz to poważnie zbadać.

Olin Lathrop
źródło
6
Tak, nie, mylisz się. Nie ma w tym żadnej religii, są po prostu chwile, w których wymagane jest rozwiązanie sprzętowe, kropka. Nie rozumiem, dlaczego muszę uzasadniać moje wymagania, ponieważ nawet jeśli uważasz, że wymaganie to jest nonsensem, prawidłowa odpowiedź ma wartość edukacyjną dla wszystkich. Ale oczywiście jest ku temu powód, który podałem w edycji na końcu pytania.
ultimA
6
Zbudowanie uzasadnienia bezpieczeństwa dla systemu oprogramowania (jak może być konieczne wyjaśnienie edytowanego pytania) może być znacznie droższe niż zbudowanie prostego niezależnego systemu sprzętowego.
Brian Drummond
3
Cokolwiek powiesz, nie zmieni faktu, że twoja odpowiedź jest niepoprawna, niegrzeczna i nieprzydatna
MCG
3
Wchodzę tylko dlatego, że mogę. Rozwiązanie „Użyj mikro”, choć istotne w wielu przypadkach, jest tutaj naprawdę nieistotne. To przecież forum elektroniki i zamieszczanie odpowiedzi na temat tego, jak to zrobić w sposób liniowy, jest bardziej pouczającą odpowiedzią. Jeśli tylko z innego powodu, aby podkreślić, o ile tańsze i mniejsze, byłoby użyć mikro.
Trevor_G