Birçok pencere karşılaştırıcısını basitleştirme


10

8 termistörüm var ve her birinin sıcaklık penceresinin içinde olduğundan emin olmalıyım. Hepsi aynı pencereye sahip ve geçerli aralığın içinde veya kaçında olduğu umurumda değil, sadece hepsinin (aynı) pencerede olup olmadığını bilmem gerekiyor. Bu yalnızca donanımsal bir çözümdür, bu nedenle ADC okumalarının yazılım sıralaması söz konusu değildir.

Şu anda en iyi çözümüm, bir grup karşılaştırıcı IC'si kullanmak ve her termistör için ayrı bir pencere karşılaştırıcısı uygulamaktır. Çözümü optimize etmek için, her birini açık drenaj çıkışına sahip bir dizi dörtlü karşılaştırıcı kullanabilirim, böylece hepsini bağlayabilirim. Yine de, özünde aynı devre. Bir kez yapabileceğim referans / tetik voltajları, arabellek, sonra tüm karşılaştırıcılara tedarik edebilir.

Soruna sadece bir grup karşılaştırıcı attığım için kendimi aptal hissediyorum. Daha iyi bir yol olup olmadığından emin değilim, çoğunlukla tahta alanını optimize etmeye çalışıyorum. Bilmenin yaratıcı bir yolu var mı? Örneğin, tüm termistörlerin min / maks voltajlarını seçin ve IMHO'nun daha büyük bir çözüme yol açacağı ve bu nedenle iyi bir cevap olmadığı tek bir pencere karşılaştırıcısı (EDIT: iki karşılaştırıcı ofc) kullanın.

EDIT: Yazılım tabanlı bir çözüm en iyi olacağını biliyorum. Bu yüzden herkesin önermesini önlemek için başlangıçta ve açıkça bahsetmiştim. Sorunun bu şekilde tanımlanmasının nedeni, bunun bir güvenlik devresi olması ve teknik özelliklerin bir yazılım monitörüne ek olarak yalnızca donanımsal bir çözüm uygulamamı gerektirmesidir . Yazılım tabanlı çözüm zaten orada, "sadece" donanım tabanlı olanı uygulamak için en iyi yolu bulmaya ihtiyacım var.


1
Girişleri bir pencere karşılaştırıcısına çoğaltabilirsiniz. Ancak, ölçümleri sıralamak ve sonuçları birleştirmek için bir şeye ihtiyacınız olacaktır. "Yazılım yok" kısıtlaması bir acıdır, çünkü tüm bunları yerleşik bir ADC'ye sahip bir mikrodenetleyici ile yapabileceğiniz gibi, görebildiğim kadar küçük bir ayak izi ile sonuçlanacaktır. Ben bir donanım adamı olduğum için, itiraf ediyorum ama uC ve küçük bir program burada yenmek zor.
Bimpelrekkie

4
İstediğiniz doğruluk aşırı derecede 'sıkı' değilse, termistörler tarafından her biri bir diyot aracılığıyla sürülen yüksek pencere için bir çekme direnci olan bir diyot VEYA geçidi kullanabilirsiniz. Direnç voltajı, diyot düşüşünden daha düşük en yüksek voltaj olacaktır. Bir çekme direnci ve ters polarite diyotları ile düşük pencere için tekrarlayın. | Bunun bir yazılım çözümü olmadığını söyleseniz de, özel bir Arduino (veya yalnızca bu görevi yerine getiren bir işlemci) kompakt ve düşük maliyete yakın olmakla yükümlüdür.
Russell McMahon

1
"ADC okumaların yazılım dizilimi söz konusu değil." Bununla en basit ve daha küçük çözümü attınız.
Oldfart

1
Bunlardan biri yalnızca donanım olan iki bağımsız sistemi gerektiren bu hangi standarttır? Bağımsız olarak uygulanan sistemlere ilişkin spesifikasyonlar gördüm, ancak fazlalık gerekli güvenilirliği sağlıyor. Örneğin, yalnızca bir donanımın alanı için iki mikro tabanlı kontrol sistemi uygulayabilirsiniz.
Olin Lathrop

2
Bir FPGA yazılım olarak kabul edilir mi?
Eric Johnson

Yanıtlar:


11

Bir termistörü karşılaştırıcıya bağlamak için bir pencere karşılaştırıcısı, 3 bitlik sayaç ve 8: 1 analog mux.

Bilmeniz gereken tek şey hepsinin iyi olması; bu 3 fiş, iş bitti. (74HC163, 74HC4051, karşılaştırıcı, artı saati 555 gibi bir şey).

Andy'nin dediği gibi, MUX (örneğin 74HC4051) oldukça düşük ON direncine sahiptir, bu nedenle her termistör bir analog girişe bağlanır ve diğer taraftaki yalnız bir direnç bir voltaj bölücü sağlar. Termistörlerin tümü GND'ye bağlıysa, direnç 5V'a gider.

şematik

bu devreyi simüle et - CircuitLab kullanılarak oluşturulan şematik

WHICH'lerin teknik özellikleri dışında kayıt / görüntüleme yapmanız gerekiyorsa, sekiz LED'i sürmek için 3-8 satırlı bir kod çözücü (bir tane daha IC, 74HC138) gibi devreler eklemeye başlarsınız; suçlu taraflar yanıp sönmeye başlayacak.

Bundan daha fazlasına ihtiyacınız varsa, MCU ve yazılımı tercih edin.


Uyarma kaynağı (direnç) MUX (düşük ohm MUX) 'un "1" tarafında olabilir, ancak beni yenmek için + 1 olabilir.
Andy aka

@Andyaka Bu yüzden bir şematik ile uğraşmadım! Artı, çevrimiçi sch editöründe 74 (HCT) 4051, 74x163, 74x138 bulamıyorum ... Bu detayı dolduracağım ama daha fazla doldurmak isterseniz, bir veya iki oy almaya değer.
Brian Drummond

Sen bir roldesin Brian, bu yüzden seninle bırakayım.
Andy aka

1
Tamam, ilginç bir fikir. Çıkışta ufak bir sorun var, çünkü tek bir termistör aralık dışındaysa, çıkış tam anlamıyla bana sadece zamanın 1 / 8'inde bunu söyleyecektir. Muhtemelen büyük bir şey değil, win.comp çıktısını besleyebilir. açık tahliye çıkışlarına sahip bir kaydırma yazmacına. Bunu izlemeliyim ama çoklayıcıyı söyleyen aynı şey muhtemelen bunu da yapabilirdi. Kesinlikle takip etmeye değer bir fikir, daha eksiksiz bir şema bulmaya çalışayım ve size geri döneceğim.
ultimA

Peki 4 Hz'de saat yaparsanız ve termal sisteminizin zaman sabiti> 2 saniyeyse (a) Tamam ve (b) oldukça göz kırpma hızı verir (vızıltı hızı, her neyse). Sistem özelliklerini biliyorsunuz, sadece tahmin edebiliyorum.
Brian Drummond

13

Bence Brian'ın SW olmayan yanıtı en iyisi ama işte tamamen analog bir çözüm. Doğal olarak en yüksek voltaj girişini (birkaçtan) seçen ve bunu çıkışa koyan bir devre kullanın. En düşük voltaj için devreye gidin.

Hassas doğrultucuyu düşünün: -

resim açıklamasını buraya girin

Pozitif aralığı boyunca giriş voltajını takip eden bir çıkış voltajı üretir. Şimdi böyle iki girişiniz olduğunda ne olacağını düşünün:

resim açıklamasını buraya girin

Hangi V1 ve V2 en yüksekse, çıkış hattını kullanma savaşını kazanır. 8 giriş için adımlayın ve tekrarlayın, ardından ters bağlantılı diyotlarla aynı işlemi yapın ve birkaç farklı voltaj kaynağından en yüksek ve en düşük seviyeleri temsil eden iki çıkış voltajı üreten bir çözümünüz var.

Ben% 100 değilim ama bence op-amp'leri en düşük voltajlar için tekrar kullanabilirsiniz. Belki bu konuda yanılıyorum?

Ardından, sekiz satırdan birinin aralık dışında olup olmadığını belirlemek için her iki satırdaki karşılaştırıcıları kullanın.


Bir süre önce hemen hemen aynı soruya sahiptik ve bu çözümün gizli bir mücevher olduğunu düşünüyorum.
Janka

@ Janka belki bulabilir ve bağlayabilirsiniz? Onu görmek istiyorum.
Andy aka

+1 Bunu beğendim. Belki 4 LM324s + bir kablolu- veya LM393 ve işiniz bitti. Yanlış tetikleyicileri önlemek için * & * $$ filtrelerini filtreleyebilir.
Spehro Pefhany

Bir aydan daha önce olmadığı ve büyüklüğünde bir kelime olduğu izlenimini edindim , ama bence yanılmışım: Bulamıyorum.
Janka

Selam! Cevabınız için teşekkür ederim. Bence bu aslında her açıdan maliyeti arttırıyor. Orijinal sorudaki gibi 8 pencere karşılaştırıcısı saf şekilde inşa etmek 16 karşılaştırıcı gerektirir. Bu önerilen çözümün sadece min + maks oluşturmak için 16'ya, ardından gerçek karşılaştırma için ek 4'e ve bir diyot dizisine ihtiyacı vardır. Ofc, gerçek IC'lerin sayısındaki fark, dörtlü opamp'ler nedeniyle daha küçüktür, ancak yine de bir kazanç değildir.
ultimA

3

Bir güvenlik devresi olarak kullanılmak üzere çoğullanmış çözümleri iyileştirme önerileri: Çoklayıcı girişlerinden birini, güvenli pencerenin dışında bilinen bir girişe (veya hatta biri yukarıda olmak üzere iki girişe) önceden ayarlayın. Çoklayıcıda ilgili girişler seçildiğinde karşılaştırıcıdan bir "dış pencere" yanıtı olup olmadığını kontrol edin.

Çoklayıcıyı, ihtiyacınız olandan bir bit daha fazla çözünürlüğe sahip (ve en iyi iki kez hızlı bir şekilde saatlenen) bir sayacı ile en iyi sürücü: En az önemli sayaç biti, karşılaştırıcının durumunu yükleyebilmeniz için harika bir tetikleme sinyali üretir. kenarı tetiklemek için bol zaman geçtikten sonra bir tetik tetikli D flipflop - ve bu tetikleme sinyali, karşı duruma bağlı olarak farklı D flipfloplarına (örneğin her termistör için bir veya kendiliğinden bir diğeri için) bir mantıkla güvenli bir şekilde kapılandırılabilir. - yukarıda önerdiğim test kanalları).

Daha güvenli olmak için, tüm devreyi çoğaltın. Termistörler ve ilişkili girişler hala teorik olarak tek bir arıza noktası olsa da, bir pencere karşılaştırıcısı kullandığınız gerçeği, bir termokupl üzerinde tam bir kısa devre veya açıklığın yanlış bir OK olarak yanlış okunmasını önlemelidir (buna göre bias).


3

İşte 6 x pencere karşılaştırıcısı IC ve burada bir Quad pencere karşılaştırıcısı IC .
Hayır 8'ler, ne yazık ki.

4 x ye olde LM339 dörtlü açık drenaj karşılaştırıcısı ile ihtiyacı karşılayabilirsiniz.
Bunlar
1.7mm x 1.7mm (pedler dahil 3mm x 3mm) QFN
veya 6.4 x 5mm TSSOP'da olabilir

Veri sayfası burada

Ayrıca, üst ve alt pencere referans voltajlarına (3 direnç) ve tek bir çıkış çekmesine ihtiyacınız olacaktır.


Merhaba. Evet, orijinal soruda, IC sayısını tartışmasız düşüren diziler kullanmanın mümkün olduğunu da söyledim. Sanırım soru, daha yüksek entegrasyon cihazları kullanmaktan farklı bir mimari kullanarak bileşen sayısını düşürmenin mümkün olup olmadığı hakkındaydı. Brian'ın cevabını kabul ettim, çünkü sadece 5-6 fiziksel bileşen kullanarak bu çözümle 16 veya 32 termistör için bir devre oluşturabilirsiniz. Belki <8 gibi az sayıda NTC için değil, bundan daha fazlası ve bu çözüm açık bir kazanandır. Bununla birlikte, teşekkür ederim (daha önce yorumlarınız için de).
ultimA

2

Neden bu kadar karmaşık?

U2 + maksimum (girişler) - diyot düşüşü olacaktır.

U1- min (girişler) + diyot düşüşü olacaktır.

R3,4,5 eşikleri belirler. Herhangi bir girişte çok düşükse, U1 - U1 + 'daki eşiğin altına düşer, U1out yüksek olur. Herhangi bir girişte çok yüksekse, U2 + eşiğin üzerine çıkar. U2out yüksek oluyor.

Her iki durum da ortaya çıktığında ne yapmak istediğinizden emin değilsiniz , ancak bir transistör / FET / SCR akla gelsin.



-2
Çoğunlukla tahta alanını optimize etmeye çalışıyorum.
Soruna sadece bir grup karşılaştırıcı attığım için kendimi aptal hissediyorum.

Açık çözüm, en az 8 A / D girişi olan bir mikrodenetleyici kullanmaktır. Gerisi bellenim.

Yavaş bir mikro bile 8 termistöre yetişebilir. Örneğin, milisaniyeden daha kısa sürede yanıt veren bir sistem oluşturabilirsiniz. Bu, termistörlerin tepki süresinden etkili bir şekilde anlık olacak kadar çok daha hızlı olmalıdır.

A / D okumalarını sıralamanın "söz konusu olmadığı" fakat bu keyfi gereklilik için hiçbir gerekçe göstermediğini söylüyorsunuz. Küçük bir mikro denetleyici, bir grup karşılaştırıcıdan daha az tahta alanı alacaktır. Tahta alanını optimize etmek çoğunlukla amaçladığınız şey olduğundan, bu ciddi bir şekilde keşfetmeniz gereken bir şeydir.


6
Evet, hayır yanılıyorsun. Herhangi bir din yoktur, sadece donanım tabanlı bir çözümün gerekli olduğu zamanlar vardır. Neden gereksinimlerimi gerekçelendirmem gerektiğini anlamıyorum, çünkü gereksinimin saçma olduğunu düşünseniz bile , doğru cevap herkese öğretme değeri veriyor. Ama elbette, sorunun sonunda bir düzenlemede sağladığım bir sebep var.
ultimA

6
Bir yazılım sistemi için bir güvenlik durumu oluşturmak (düzenlenmiş sorunun açıklığa kavuşturulması gerekli olabileceğinden), basit bir bağımsız donanım sistemi oluşturmaktan çok daha pahalı olabilir.
Brian Drummond

3
Ne yaparsanız değişmez demek gerçeğini , yanlış, kaba ve yararsızdır cevabınızı
MCG

3
Sadece yapabildiğim için içeri giriyorum. "Mikro kullanın" çözümü, birçok durumda geçerli olsa da, burada gerçekten önemsizdir. Bu sonuçta bir elektronik forumu ve nasıl doğrusal bir şekilde yapılacağına dair cevaplar göndermek daha öğretimsel bir cevaptır. Ne kadar ucuz ve daha küçük olduğunu vurgulamaktan başka bir sebep yoksa, bir mikro kullanmak olacaktır.
Trevor_G
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.