40 vardiya kaydı zincirlenirken hangi sorunlar ortaya çıkabilir?


16

40 x 74HC595 vardiya kaydını birlikte zincirlemeyi planlıyorum . 74HC595'lerin tüm zinciri SDI, CLOCK& LATCHsinyallerini oluşturacak 5 V'luk bir mikrodenetleyici tarafından kontrol edilecektir .

Her kaydırma yazmacı ve mikrodenetleyici, aşağıdaki şemada gösterildiği gibi kendi PCB'sine sahip olacaktır:

diyagram

Mekanik kısıtlamalar nedeniyle, her kaydırma yazmacı arasındaki mesafe yaklaşık 30 cm (12 inç) olacaktır, bu nedenle kontrol sinyalleri yaklaşık bir mesafe boyunca hareket edecektir. 12 m (40 ft). Bunun yanı sıra, tüm sistem çok gürültülü bir ortama monte edilecektir (floresan ışıkların, şebeke kablolarının vb. Yakınında).

Benim endişem, kontrol sinyallerinin çok gürültülü olması ve vardiya kayıtlarının yanlış şeyler verebilmesidir. Düşünüyordum ki:

  • Kontrol sinyallerini tamponlamak için her kartta bir tampon IC kullanarak. Hangisini önerirsiniz?
  • Sinyaller için kartlar arasında korumalı kablolar kullanma
  • CLOCKFrekansı mümkün olduğunca azaltın . Kayıtların içeriğini günde sadece birkaç kez güncellemem gerekiyor.

Yukarıdaki çözümler iyi bir şey mi? Sinyal kablolarındaki (potansiyel) gürültüyü minimumda tutmak için başka ne yapabilirim?


3
Bu, 40 vardiya kaydı yerine bir CPLD için harika bir aday gibi görünüyor.
Joel B

2
@JoelB Bir CPLD için iyi bir uyum gibi gelebilir, ancak bu , ana karttan (CPLD) her yere giden 320 (= 40 * 8) sinyale sahip olmak anlamına gelir . Benim durumumda, bu ortama kurmak çok zor olurdu; ve bakımı çok zor olacak. Ayrıca, sinyaller, daha kısa da olsa, yine de gürültüye maruz kalacaktır.
m.Alin

1
@Joel - Digikey 320 I / O'ya sahip sadece birkaç CPLD listeliyor ve hepsi BGA. Ayrıca 40 '595'lerden daha pahalıdırlar ve m gibi. Mantıksal bir bakış açısından, bu daha az pratik bir CPLD için mükemmel bir iştir.
stevenvh

2
@ m.Alin - Tamamen haklısın. Sadece 40 vardiya kaydı okudum ve CPLD yazdım. Soruyu iyice okuduktan sonra, bunu nasıl yaptığınız mantıklı.
Joel B

Yanıtlar:


14

Her kartın girişlerinde Schmitt-tetikleme tamponları kullanın . Sinyalleri temizler, böylece herhangi bir gürültü saatte yanlış darbeler vermez. 74LVC3G17 üçlü evirmeyen tampondur.

Ayrıca, tamponlu sinyalleri bir sonraki panoya iletin. Aksi takdirde tüm girişler paralel olur ve sürüş mikrodenetleyicisinin fan çıkışını aşabilirsiniz (özellikle toplam kapasitif yükü düşünüyorum). Saat ve mandal sinyallerinin papatya zinciri, zincir boyunca bir dalgalanma gecikmesi verecektir, ancak veriler de bunu yapacaktır ve yine de düşük hıza gitmeyi planlıyorsunuz.


1
@ m.Alin - Evet, bir itme-çekme aşaması iyi olur. Ancak, sadece sürücü kapasitesi için değil, özellikle eşik çevresindeki gürültünün neden olduğu yanlış saat darbelerinden kaçınacak olan Schmitt-tetikleyicinin histerezisi için tamponları şiddetle tavsiye ederim .
stevenvh

2
@Saad - Tamponun sinyali kabloya yönlendirdiğini mi söylüyorsunuz? O zaman iyi bir şey, gürültüyü azaltan düşük bir empedans sağlayacağıdır. Orada Ama eğer olurdu alıcı tarafında gürültü olmak gönderme tarafında bu konuda bir şey yapamaz. Bu yüzden, Schmitt-tetikleyicinin sağladığı iyi bir gürültü bağışıklığına ihtiyaç duyan alıcıdır.
stevenvh

1
@Saad - Evet, ancak bu durumda aşırı dolu gibi görünüyor: teller sadece 30 cm uzunluğunda ve zaten her tahtada bir tekrarlayıcı / tampon var.
stevenvh

1
@stevenvh Evet, genel olarak konuşuyordum. Gönderilerinizin zengin bir bilgi var ve neredeyse her zaman yeni bir şey öğreniyorum! Bu durumda, bir denetleyici anakartında 'ek kart'a' bağlanan bir kabloya bağlanan arabelleklerim var. Ben çok gürültü beklemeyin, bu yüzden benim düzenleme ile kalmak olabilir. Sadece tamponlarım var, böylece kaynağım 8 cihazı (8pF giriş kapasitansı + iz ve kablo kapasitansı ile) sürmüyor.
Saad

1
@Saad - Çiçekler için teşekkürler! :-) Kablonun kapasitansına dikkat edin, özellikle de bir metreden uzunsa. Pratik kural: 100 pF / m, bu giriş kapasitansından çok daha fazla.
stevenvh

9

Oluşabilecek sorun, sonraki SR saatlerinden önce bazı SR saatlerinin olmasıdır, böylece sonraki SR yanlış verilerde saat çalışır. Bunun için (standart?) Bir çözüm, son SR'den başlayarak saati bağlamaktır.

Her 3 sinyal hattı için her kartta bir (schmit-trigger?) Tampon ekleme düşünecektim.

Saat frekansını düşürmek yardımcı olmaz (başlangıç ​​için çok yüksek olmadığı sürece). Saat frekansında ne kadar düşük seçerseniz seçin, yine de sahip olacağınız saat kenarlarında karşılaşabileceğiniz sorunlar.


8

Vites kayıtlarını zincirlerken karşılaşılan en büyük sorun, her anakartın veri almak için kullandığı saat arasındaki zamanlama ilişkisinin ve bir önceki anakarttan gelen veri değişikliğinin öngörülebilir olmasını sağlamaktır. 74HC595'in çıkışının saatle aynı kenarda değişmesi, bu açıdan biraz sinir bozucu. Saat sinyalinin her karttan geçerken arabelleğe alınması ve bir kartın 74HC595'inden çıkan veri sinyalinin, saat tamponundan biraz daha uzun bir süre geciktirecek bir tampondan geçirilmesi gerektiğini öneririm.

Alternatif olarak, düşen çıkış kenarında veri çıkışı değişikliği olan 74HC4094 gibi bir kaydırma yazmacı kullanabilir veya son 74HC595'in çıkış kartı ile bir sonraki kartın çıkışı arasına bir flip flop ekleyebilir ve bu flip flop'u ekleyebilirsiniz. çıkışını 74HC595'leri çalıştıran saatin düşen kenarında mandallayın (belki de tamponlamak ve ters saat sinyalini flip flop'a beslemek için saati iki invertörden geçirin).

Kullanacağınız 74HC595 çıkışlarının sayısı, yongalarınız tarafından sağlanan sayıdan bir (veya daha fazla) daha azsa (örneğin, iki 74HC595'li bir kartta, aslında sadece 15 çıkışa ihtiyacınız vardır), son 74HC595'i diğerlerinden ters çevrilmiş bir saat, ancak bu, sinyalin ters çevrilmemiş bir saat 74HC595 ile ters saat 74HC595 arasında her geçişinde bir 74HC595 çıkışının kullanılmasına mal olur.

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.