Büyük Çoklayıcılar / Veri Seçiciler


10

128: 1 veya daha fazla giriş (256 oldukça hoş olurdu) ile çoklayıcı IC arıyorum. Böyle bir cihazın oldukça yaygın olacağını düşünürdüm, ancak onu bulmakta zorlanıyorum. Yanlış yerlere bakıyorum olabilir ama bir şekilde bir şey eksik olduğumu düşünüyorum - belki de büyük girdi çoklayıcıları bu kadar sık ​​kullanılmıyor? Varsa, alternatif nedir?

Maks. 16 girişli güvenilir ol '74150 olduğunu bulabildim.

Birden fazla 16 giriş mux'i birleştirerek büyük bir çoklayıcı oluşturabileceğimi anlıyorum - ancak daha entegre bir çözüm umuyorum.


Bir otomotiv kablo demetinde açık ve kısa devreleri test edebilen bir devre tasarlıyorum. Tipik bir kablo demeti 200 kadar kablo içerebilir. Şu anda devre, 128 kabloyu işlemek için 16 çoklayıcı kullanıyor.

Çoklayıcılar tek bir 16 girişli çoklayıcıya bağlanır ve bu da bir uC'ye bağlanır. Benzer şekilde, diğer tarafta, 16 demultiplexer vardır. Çoğullama çözücüler kabloları voltaja geçirir. Aynı zamanda, bu tel mux üzerinden uC girişlerinden birine geçirilir.

Kablo iyi ise, uC girişinde bir yüksek görmelidir. Ardından uC diğer tüm kabloları kontrol eder. Bunlardan herhangi biri yüksekse, bu iki tel arasında bir kısa devre olduğu anlamına gelir.

Not: Bu devre benim tarafımdan tasarlanmamıştır. Bu 2003 yılında yapıldı. Ben sadece bu devreyi geliştirmek için arıyorum. Ayrıca hiçbir kablo demetinde CAN veri yolu veya başka bir veri yolu bulunmadığına dikkat edin. Güç ve sinyaller için basit telleri.

İşte sadece bu yazı için hızlı bir şekilde yaptığım çok kaba bir blok diyagramı. Umarım bu sorunu daha net hale getirir, çünkü İngilizce benim ilk dilim değil ve metin yoluyla açıklamakta zorlanıyorum. Diyagram çok iyi olmasa da, umarım işleri daha iyi hale getirir. MCU'dan demux ve mux'e doğru giden çizgiler adres hatlarıdır.

Kablolardan birinin 3'e ayrıldığını unutmayın. Bunu, bazı bağlantıların sadece bire bir değil, bire çok olduğunu göstermek için bilerek yaptım. Gördüğüm en karmaşık olanı 60 kavşağa ayrılmış bir tel. Demux ve mux'in ayrı adres satırları olmasının nedeni budur. Demux, giriş no. Mux 20,21,22 vb. Arasında geçiş yapabilir. 20 numaralı hattan kesişen tüm hatları kontrol edin.

resim açıklamasını buraya girin

Bunu tasarlamanın daha iyi bir yolu olduğunu düşünüyorsanız, lütfen bana bildirin.


128: 1 mi yoksa 128: 2 mi arıyorsunuz?
Majenko

128: 1 arasındadır. Maalesef bahsetmeyi unuttum. Özür dilerim.
Saad

@saad Deneyimlerim, neredeyse her insan bu tür bir şey istediğinde, bunun temelde yanlış bir şey yapması nedeniyle olduğunu göstermiştir. Çözümün ne olduğunu düşündüğünüzden ziyade, ne yapmaya çalıştığınızı belirtmenizi öneririm. Bu şekilde, bir grup 16: 1 mux'leri basamaklandırmaktan daha iyi bir çözüm sunabiliriz.

@ David Kessner, lütfen düzenlemeye bakın. Aslında birkaç hafta önce bu sitede tasarım hakkında sormak yaptı ama çok az tepki. Girdi üzerinde herhangi bir formu takdir ediyorum.
Saad

1
Birinin girişleri ne kadar hızlı, ne sıklıkta ve ne kadar bildirimde bulunduğuna bağlı olarak, basamaklı çoklayıcıların kullanılması yönlendirmeyi büyük ölçüde kolaylaştırabilir. 256 sinyali tahtadaki tek bir noktaya yönlendirmek yerine, 16 sinyali 16 noktanın her birine yönlendirebilir, bu noktaların her birinden bir sinyali 16 girişli bir çipe yönlendirebilir ve dört paylaşılan sinyali çoklayıcılar. Teorik olarak bir çipin kullanılması, bir dizi 256 transistöre karşılık gelen tek bir "geçit gecikmesi" ile girişten çıkışa sinyallerden herhangi birini almasına izin verir (düşen kenar için N tipi; yükselen için P), ama ...
supercat

Yanıtlar:


12

Büyük bir mux / demux kesinlikle işe yarayacak olsa da, bir grup 16: 1 mux'i bağlamak çok iştir ve sorun olabilecek veya olmayabilecek bazı sınırlamaları vardır. Daha geleneksel yaklaşım vardiya yazmaçlarını kullanmak olacaktır. "Sürüş" ucu için bir seri-giriş / paralel-çıkış yazmacı ve alıcı uç için bir paralel-giriş / seri-çıkış kayıt kullanın. Vardiya kayıtları hakkında güzel olan şey, daha uzun bir vardiya kaydı yapmak için kolayca papatya dizimi yapılabilmeleridir. 256 bit veya hatta 1024 bit kaydırma yazmacı bir sorun oluşturmaz. Bazı tamponlamalarda, seri akış bir kablo üzerinden başka bir PCB'ye bile geçirilebilir (eğer işinizi kolaylaştırırsa).

74xx597 gibi birçok 8-bit kaydırma yazmacı çipi var, ancak bir CPLD bunun için çok daha iyi. Ama devasa 256+ pin CPLD'ye ihtiyacınız yok. Bunun yerine, birkaç küçük CPLD kullanabilir ve bunları zincirleyebilirsiniz. Matematiği yapmamış olmama rağmen, daha küçük ve orta boy CPLD'lerin kullanılmasının büyük bir CPLD'den daha ucuz olacağından eminim - ve BGA'lar için endişelenmenize gerek yok.

Bu CPLD oldukça Flip-Flop yoğun olacaktır. Bunun anlamı, normal bir CPLD mimarisinin (Xilinx'in kullandığı gibi) daha fazla FPGA-ish kadar iyi olmadığıdır. Altera ve Lattice'in her ikisinde de, Xilinx'e göre Dolar başına çok daha fazla Parmak arası Terlik olan CPLD'ler var.

CPLD'lerle ilgili çok fazla deneyiminiz olmasa da, bu tasarım çok basittir ve bir CPLD kullanmanın faydaları çok büyüktür. Bunun için CPLD'lerin nasıl programlanacağını öğrenmek zaman ayırmaya değer.

Ayrıca, bir mux yerine bir kaydırma yazmacı kullanmanın avantajlarını başlangıçta görmek kolay değildir. Çoğunlukla telleri nasıl kullandığınız ve algıladığınız konusunda çok fazla esneklik kazanırsınız. Tek seferde birkaç koşum takımı bile test ediyor olabilirsiniz (yeterli vardiya kaydınız varsa). Mux ile test edebileceğiniz her şey vardiya kayıtları ile yapılabilir, ancak vardiya kayıtları daha fazlasını yapabilir. Kayıtları kaydırmanın bir tarafı, daha yavaş olmasına rağmen, ihtiyacınız olandan daha hızlı olacaktır (IE, kablo demetini bağlayan ve bağlantısını kesen adam, kaydırma kayıtları ile test etme zamanından çok daha yavaş olacaktır).

Şunu da söylemeliyim ki, CPLD'ler kullanıyor olsanız bile, vardiya kayıtlarının hala mux'lerden daha kolay olduğunu söylemeliyim. Ana şey, daha küçük olmalarıdır - gerçek avantajı / dezavantajı görmek için, tasarımı her ikisinde de yapmanız ve hangi boyutta CPLD'ye ihtiyacınız olduğunu görmeniz gerekir. Bu, kullanılan CPLD mimarisinin türüne oldukça bağlı olacaktır, bu nedenle Xilinx ile yapılan herhangi bir genelleme Altera için geçerli değildir.

Düzenleme: Aşağıda gerçekten vardiya kayıtları kullanarak testi gerçekleştirmek hakkında biraz daha ayrıntılı ...

Testi yapmak için, vardiya kayıtlarını kullandığınızı görmezden gelebilir ve sadece verilerin "sürüş ucunda" sürüldüğünü ve umarım "alıcı uçta" okunduğunu düşünebilirsiniz. Verileri oraya ve arkaya nasıl getirdiğiniz (seri yoluyla) büyük ölçüde önemsizdir. Önemli olan, sürdürebileceğiniz verilerin tamamen keyfi olmasıdır.

Birlikte kullandığınız verilere "test vektörleri" denir. OKUMA BEKLediğiniz veriler de test vektörlerinin bir parçasıdır. Kablo 1: 1 ilişkisiyle bağlanmışsa, sürüş verisi ile alıcı verinin sürdüklerinizle aynı olmasını beklersiniz. Kablo 1: 1 değilse, açıkça farklı olacaktır.

MUX tabanlı bir yaklaşım kullandıysanız, hala test vektörleri kullanıyorsunuz, ancak test vektörü üzerinde herhangi bir kontrole sahip değilsiniz. Muxes ile desene "Walking Ones" veya "Walking Zeros" denir. Diyelim ki 4 iğneli bir kablonuz var. Yürüyenlerle şu paterni sürersiniz: 0001, 0010, 0100, 1000. Yürüme sıfırları aynıdır, ancak ters çevrilmiştir.

Basit bir süreklilik testi için yürüme / sıfırlar oldukça iyi çalışır. Kablonuzun nasıl bağlandığına bağlı olarak, testi hızlandırmak veya belirli şeyleri test etmek için yapılabilecek başka desenler de vardır. Örneğin, bazı pimler hiçbir zaman diğer pimlere karşı kısa devre yapılamazsa, test örneklerini bu durumlara bakmamak ve böylece daha hızlı çalışmak için optimize edebilirsiniz. Yürüyenlerden / sıfırlardan başka bir şeyle uğraşmak, işlerin yazılım tarafında karmaşıklaşabilir.

Test vektörleri üretmenin nihai yöntemi JTAG testi için yapılır. Sınır taraması olarak da adlandırılan JTAG, bir PCB üzerindeki çipler arasındaki (ve PCB'ler arasındaki) bağlantıları test etmek için benzer bir şemadır. Çoğu BGA yongaları JTAG kullanır. JTAG'ın her çipte, her pimi sürmek / okumak için kullanılabilen kaydırma kayıtları vardır. Karmaşık ve pahalı bir yazılım parçası PCB için netlist'e bakar ve test vektörlerini oluşturur. Sofistike bir kablo test cihazı aynı şeyi yapabilirdi - ama bu çok iş olurdu.

Neyse ki, sizin için, test vektörlerini oluşturmanın ÇOK KOLAY bir yolu var. İşte yapmanız gerekenler ... Vites kayıtlarına bilinen iyi bir kablo bağlayın. Sürüş ucunda bir yürüyüş sıfırları / birler deseni çalıştırın. Bunu yaparken, alıcı uçta görülenleri kaydedin. Basit düzeyde, bunu sadece test vektörleriniz olarak kullanabilirsiniz. Kötü bir kablo bağladığınızda ve aynı yürüyüşleri / sıfırları yaptığınızda, aldığınız veriler daha önce kaydettiğiniz verilerle eşleşmez ve bu nedenle kablonun kötü olduğunu bilirsiniz. Bu birkaç isimle geçer, ancak tüm isimler kendi kendine öğrenme veya otomatik öğrenme gibi "öğrenme" teriminin bir çeşitlemesidir.

Şimdiye kadar, bu, sürüş ucundaki bir pimin alıcı ucundaki birden fazla pime gittiği durumu kolayca ele alır, ancak sürüş ucundaki birden fazla pimin birbirine bağlandığı diğer durumu ele almaz. Bunun için veri yolu çekişmesinden kaynaklanan hasarı önlemek için bazı özel şeylere ihtiyacınız vardır ve tüm vardiya kayıt pimleriniz iki yönlü olmalıdır (IE, hem sürücü hem de alıcı olarak işlev). İşte yapmanız gerekenler:

  1. Her pime bir aşağı çekme direnci yerleştirin. 20K ila 50k ohm civarında bir şey iyi olmalıdır.

  2. CPLD ile kablo arasına bir seri direnç yerleştirin. 100 ohm civarında bir şey. Bu, ESD ve diğer şeylerin zarar görmesini önlemeye yardımcı olmak içindir. Toprak için 2700 pF'lik bir kapak (100 ohm direncin CPLD pim tarafında) da ESD'ye yardımcı olacaktır.

  3. CPLD'yi sadece sinyali yüksek sürecek, asla düşük sürmeyecek şekilde programlayın. Çıktı verileriniz '0' ise, CPLD bu pimi üç durumlu hale getirecek ve aşağı çekme direncinin hattı düşürmesine izin verecektir. Bu şekilde, birkaç CPLD pimi aynı kabloyu yüksekte kullanıyorsa, hiçbir hasar meydana gelmez (çünkü CPLD aynı teli düşük sürmeyecektir).

  4. Her pim hem sürücü hem de alıcıdır. 256 pinli bir kablonuz varsa, kaydırma kayıtlarınız sürücü için 512 bit ve alıcı için 512 bit olacaktır. Sürüş ve alma aynı CPLD'de yapılabilir, bu nedenle PCB karmaşıklığı gerçekten değişmez. Bu CPLD'de kablo pimi başına 3 veya 4 parmak arası terlik olacaktır, bu nedenle buna göre planlayın.

Daha sonra, alınan verileri daha önce kaydedilenlerle karşılaştırırken aynı yürüyüşler / sıfırlar desenini yaparsınız. Ancak şimdi kablo demeti içindeki her türlü keyfi bağlantıyı idare edecek.


Çok teşekkür ederim. Bu konuyla ilgili hemen okumaya başlayacağım.
Saad

Bunu düşünüyordum. Sürüş sonu için SIPO ve rx için PISO kullanmayı söylediniz. Şimdi, doğru anlarsam, MCU üzerindeki bir çıkış pinine SIPO ve bir giriş pinindeki PISO'ya gitmeliyim. Kabloların bire bir olduğunu varsayarsak, koşumdan bazı veriler göndermeliyim ve bu verileri geri alırsam, kablolar testi geçerler. Bu geçerli bir yöntem mi? Ayrıca, alıcı uçta 1'den fazla bölünen çizgileri işlemek için bunu nasıl değiştirmeliyim? Önerdiğin bu mu yoksa tamamen pist dışında mıyım?
Saad

Bu hatlar hakkında daha fazla düşünmek - 4 giriş telimiz olduğunu ve bu (4) telden birinin 2 kabloya böldüğünü varsayalım. Yani rx ucunda 5 kablo var. 0101 bitlerini kaydırdığımızı varsayalım, eğer 01011'i geri alırsak, tüm kablolar iyi olur. Ancak 3. bitin yüksek olduğunu varsayalım (01111), o zaman 3. telin kısa devre yaptığını biliyoruz. Ama bu bize hangi telin kısa devre yaptığını söylemeyecek. Belki de daha iyi bir yol sadece "1" kayıtlar arasında dalgalanma izin olacaktır. Yani, başlangıçta 1000 var ve rec. 10000. Sonra 1 dalga geçiyor ve 0100 ve 01000 alıyoruz. Son bit olana kadar, 0001.
Saad

Bu durumda, sonuncusu ikiye eklenmiş olduğundan 00011 almamız gerektiğini biliyoruz. 4. telde bir kısa devre varsa ve 0010 gönderirsek, rx 00111'i göndeririz - ki doğru olmadığını biliyoruz ve kısa devrenin nerede olduğunu belirten bir hata görüntüleyebiliriz. Bu yöntem size iyi geliyor mu?
Saad

@saad Cevabımı yorumunuzu kapsayacak şekilde çok daha ayrıntılı bir şekilde güncelledim.

7

Tek çip çözümleri olduğunu düşünmüyorum. Çok sayıda I / O ve muhtemelen düşük talep nedeniyle pahalı olacaktır. Çoğu tasarım 8 veya 16 giriş çoklayıcıyı kademelendirir.

Gerçekten daha entegre bir çözüm istiyorsanız, CPLD'yi aramalısınız . 270 kullanıcı I / O'lu bir BGA sürümünde mevcut olan Xilinx CoolRunner XC2C512 gibi 256 I / O'dan daha fazla CPLD vardır . 256 giriş çoklayıcı için, seçili sinyaller için ek 8 girişe, elbette bir çıkışa ve belki de bir etkinleştirmeye ihtiyacınız olduğunu unutmayın, böylece 270 I / O'lar çok fazla olmayacaktır.

Ayrıca, ambalajınızın büyük olasılıkla BGA olacağını unutmayın ; beğenip beğenmeyeceğinizden emin değilim. Zaten 300 pimli QFP'ler görmedim ...


2
Teşekkürler. Durumun böyle olacağını düşünüyordum. Sanırım 16 girişten daha büyük bir mux yapmaya devam edeceğim.
Saad

@saad - önerildiği gibi büyük (pin sayısı, kapılar / mantık blokları değil) bir PLD yakalamadığınız sürece en iyi bahisiniz gibi görünür (avantajlar daha verimli / boyuttadır, aslında onlarla çok az deneyim veya HDL gerekir, ancak paket gerçekten bir acı - dev kurulu olurdu?)
Oli Glaser

Aslında okul aracılığıyla HDL ve FPGA'larla (çalışmak hoş olmayan Handel-C) bazı deneyimlerim var. Daha önce hiç CPLD üzerinde çalışmadım. Ama hiçbir zaman bir BGA paketi ile uğraşmadım ve gerçekten bir acı gibi görünüyor. DÜZENLEME: XC2C512 de PQFP'de mevcuttur - ancak şimdi HDL ve FPGA'larda benim kadar az deneyime sahip birinin bu tür cihazları çalıştırabildiğini merak ediyorum. Ayrıca oldukça pahalı - onun değerinde £ 60 Farnell İngiltere'de.
Saad

@saad - PQFP'nin yalnızca 173 kullanıcı G / Ç'si vardır. içinde: (adres dekoder basit uygulaması) benim meslektaşım onun CPLD programlanmış Abel bunun bakıştan VHDL veya Verilog çok daha basit görünüyor. Muhtemelen VHDL / Verilog kadar güçlü değil, ancak bu uygulama için bir sorun olmamalı
stevenvh

@stevenvh: Abel bazı yönlerden biraz çirkin, ancak saatler ve denklemler açısından pin davranışlarını belirtmek bazen VHDL veya Verilog'da daha ayrıntılı bir şekilde yazmaktan çok daha doğal olabilir. Acaba araçlar neden daha güzel bir denklem tabanlı dili desteklemiyor?
supercat

3

CPLD / FPGA yüksek pim sayımı için doğru fikir gibi görünse de, bir otomotiv kablo demeti tipik olarak fiziksel olarak oldukça yayılacak ve konektörler orta derecede büyük olacaktır, Bu nedenle yüksek bir pim sayımı cihazından büyük bir numberof konektörüne havalanmak yerine, az sayıda saat / vardiya hattı ile birbirine bağlı vardiya kayıtlarında 16 IO'lu modüler sistem daha uygun ve aynı zamanda çok ölçeklenebilir olabilir.
Dikkate alınması gereken başka bir şey kablo testi içindir, örneğin 16 hatta 16 voltaj uygulamak için bir direnç zinciri ve diğer uçtaki voltajı kontrol etmek için bir analog mux kullanabilirsiniz. Bu, açıkları ve şortları tespit eder ve ucuz olur.


Kaydırma yazmaçlarını CLPD'lerde 16 bitlik bloklar halinde uygulamam gerektiğini mi söylüyorsunuz? Büyük olasılıkla tüm işleri yapmak için tek bir büyük CPLD kullanmayacağım. BGA paketlerinden kaçınmak istiyorum ve bu yüzden muhtemelen daha küçük CLPD'lerle yapışacak. Şu anda, ihtiyaç duyulan her yeni kablo demeti için yeni bir "bağlantı panosu" geliştirilmiştir ve bu, tüm konektörlere monte edilmiştir. Bu bağlayıcılar daha sonra yukarıdaki soruda tarif edilen devreye I bağlanır. Yeni sistemde, bu mekanizmayı koruyacağız - bir çipe çok sayıda IO bağlarsam ne tür sorunlarla karşılaşacağım?
Saad

1

Çok sayıda girişi okumak için bir kaydırma yazmacı kullanmak hoş bir örüntüdür. David Kessner bir CPLD kullanmanızı önerdiğinden, başka bir model öneririm. Her CPLD'nin 32 girişi işlemesini istediğinizi varsayalım. Her CPLD'ye paylaşılan bir saat girişi, ayrı bir etkinleştirme girişi, bir etkinleştirme çıkışı (bir sonraki çipin etkinleştirme girdisine bağlanan) ve paylaşılan bir veri çıkışı verin. Her çipin beş bitlik sayacı ve taşma göstergesi vardır. Enable girdisi dağıtıldığında sayaç ve taşma göstergesini temizleyin. Enable girişi onaylandığında ancak taşma göstergesi ayarlanmadığında, sayaç tarafından belirtilen giriş bitinin durumunu çıktılayın. Bir saat darbesi alındığında ve yonga etkinleştirildiğinde ve sayaç taşmadığında sayacı çarpın. Taşma biti "enable" çıktısını besler. Tüm bu mantığın net etkisi, 32 girişi işlemek için sadece yaklaşık 8 makro hücresine ihtiyaç duyulmasıdır. Bu nedenle, daha fazla bilgi işlem yoğunluğu veya kayıt yoğunluğu olan ancak çok fazla G / Ç'ye ihtiyaç duymayan diğer işlevler CPLD'ye sığabilir.

Birinin pin-keeper devreli bir CPLD'si varsa, özellikle çıkışı bir makro hücresinden birden fazla pime (her pin için bir makro hücresi harcamak zorunda kalmadan) çıkarmak için bir yol varsa, çıkış için benzer bir yaklaşım kullanılabilir. Yonga, paylaşılan saat ve veri girişlerine, bir etkinleştirme girişine ve bir etkinleştirme çıkışına sahip olurdu. Dahili olarak, beş bitlik bir sayaç, ilk beşten karşı saat kenarında mandallanan alt sayaç bitinin fazladan bir kopyası, bir taşma biti ve tüm iğneleri besleyecek paylaşılan bir veri sinyali gerekir. Ancak, giriş veri sinyalini tüm pinlere kopyalamak için yedi makro hücresi ve birçoğuna ihtiyaç vardı (pinler için çıkış etkinleştirme kontrolleri mandal etkinleştirme işlevi görecektir).

Bu yaklaşımın güzel bir özelliği (btw, LCD sürücülerinde sıkça kullanılır), verileri paralel olarak hareket ettiren birden çok veri hattına sahip olabilmesidir ve yine de sadece çipler arasında tek bir papatya dizimi kablosu gerektirmektedir. Ayrıca her giriş veya çıkıştan mandallama devresinin ortadan kaldırılmasına izin verir.


1

Bağlanması gereken en büyük pim grubunun 20 pim olduğu varsayılarak, bu bir fikir için nasıl geliyor: her biri aşağıdakileri yapabilen bir grup açık kollektör kaydırma-kayıt LED sürücü çipi (pim başına bir çıkış) kullanın en az 2mA batır; her bir pimden 1K'lık bir direnci ortak bir noktaya bağlayın ve 20.1mA'da bir volt kaynağı sağlayan bir devre kullanın (akım düşük olduğunda voltaj daha yüksekse, 20.1mA'da bir volt olması koşuluyla) ve bir girişim olup olmadığını belirtin bu miktardan fazlasını çekmek için yapılıyor. Bazı kablo konfigürasyonları için, 1K dirençli ancak kabloya bağlı olmayan az sayıda "yedek" pime sahip olmak gerekebilir. Biri 500 ohm dirençli (veya paralel iki 2K), biri 250 ohm dirençli (dört 1K ') 1K dirençli yedek bir pime sahip olmak arzu edilebilir.

Kabloyu test etmek için, tam olarak yirmi pimin alçaltılmasına neden olacak senaryoları ve tam olarak yirmi pinin alçaltılmasına neden olacak senaryoları formüle edin (yedek pimler bunun için yararlı olabilir) ve yirmi pimli senaryoların 20.5mA'dan fazla kullanıldığı bildirilmemiştir, ancak 21 pimli senaryolar söz konusudur.

Örneğin, 1-2, 3-4, 5-6, vs.'yi 39-40'a kadar bağlaması gereken bir kablo demetine sahip olduğunu varsayalım. On çift pimden oluşan çeşitli kombinasyonları seçerek şort olup olmadığını kontrol edin ve her bir pimin her iki çiftini de düşük sürün. 20 pim düşük süreceksiniz ve sürdüğünüz pimler dışında hiçbir pim alçalmamalıdır, bu nedenle akım her zaman 20mA'nın altında olmalıdır. Eğer biterse, bir şeyler kısalır. Aşırı akım okumayan on çiftin herhangi bir kombinasyonunu bulabilirseniz, bir seferde bir aktif bir çifti kapatır ve bir şey aşırı akana kadar başka bir çifti açar; son açılan çift, olmaması gereken bir şeye kısaltılır.

Yedek bir pimi düşük sürerek ve ardından her çiftten bir pim (bazen tek ve hatta çift olan) on çiftin çeşitli kombinasyonlarını seçerek açık olup olmadığını kontrol edin. Herhangi bir açıklık varsa, bu tür bir hareket 21'den az pimin düşük sürülmesine ve dolayısıyla düşük akımın okunmasına neden olacaktır. Bu durumda, her seferinde bir tane olmak üzere, her bir çiftin bir telin sürüldüğü yeri alın ve her ikisini de sürün. Bu, geçerli okumayı 20.1mA üzerine çıkarırsa, bu çift açıktır.

Bu uygulama için bir CPLD kullanılabilir, ancak açıkladığım gibi bir sistem daha iyi olabilir. Akımı gerçekten ölçmek için devre ekleyerek daha da geliştirilebilir (sadece bir aşırı / düşük göstergesi üretmek yerine). Böyle bir ölçüm, direnç için tolerans değerlerinin ayarlanmasına izin verecektir.


1

Bu aradığınız şey mi?

Maxwell 81840-128 kanal çoklayıcı


Muhtemelen değil. Bu, analog bir çoklayıcıdır, ancak cihazın hızına dikkat ederseniz, muhtemelen dijital sinyalleri de çoklayabilirsiniz. Ayrıca bu rad-hard bir cihaz, pahalı olacak.
stevenvh

Hoşgeldiniz! Steven haklı, uygun çözüm olmayabilir, ama güzel yakalama! Belki linkin altındaki bileşenin bir tanımını ekleyin
clabacchio

Teşekkürler palyaço. Bileşeni ne kadar ayrıntılı açıklayabileceğimden emin değilim. Daha önce hiç kullanmadım ve henüz yeterli tecrübem yok.
Daniel

sweeeeet chip :) Dijital piyano projesinde bir tane kullanmak istiyorum, ancak fiyatı sadece googling ile bulamazsanız, bunu karşılayamazsınız!
Andrew Wagner
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.