Jakie problemy mogą wystąpić przy łączeniu 40 rejestrów przesuwnych?

16

Planuję połączyć razem 40 x 74HC595 rejestrów zmianowych. Cały łańcuch 74HC595s będą kontrolowane przez mikrokontroler 5 V, który generuje SDI, CLOCKi LATCHsygnały.

Każdy rejestr przesuwny i mikrokontroler będą miały własną płytkę drukowaną, jak pokazano na poniższym schemacie:

diagram

Ze względu na ograniczenia mechaniczne odległość między każdym rejestrem przesuwnym będzie wynosić około 30 cm (12 cali), więc sygnały sterujące będą przemieszczać się na odległości około. 12 m (40 stóp). Poza tym cały system zostanie zamontowany w bardzo hałaśliwym otoczeniu (w pobliżu lamp fluorescencyjnych, przewodów sieciowych itp.)

Obawiam się, że sygnały sterujące będą bardzo głośne, a rejestry przesuwne mogą generować niewłaściwe sygnały. Myślałem o:

  • Użycie bufora IC na każdej płytce do buforowania sygnałów sterujących. Który poleciłbyś?
  • Za pomocą ekranowanych kabli między płytami dla sygnałów
  • Obniżenie CLOCKczęstotliwości tak bardzo, jak to możliwe. Muszę tylko aktualizować zawartość rejestrów kilka razy dziennie.

Czy powyższe rozwiązania są dobrym rozwiązaniem? Co jeszcze mogę zrobić, aby ograniczyć (potencjalny) hałas w przewodach sygnałowych do minimum?

m.Alin
źródło
3
To brzmi jak fantastyczny kandydat na CPLD zamiast 40 rejestrów zmianowych.
Joel B,
2
@JoelB Może to brzmieć jak dobre dopasowanie do CPLD, ale oznaczałoby to posiadanie 320 (= 40 * 8) sygnałów przechodzących z płyty głównej (CPLD) do wszystkich miejsc. W moim przypadku instalacja tego środowiska byłaby bardzo trudna; i będzie bardzo trudno utrzymać. Ponadto sygnały, choć krótsze, nadal będą narażone na hałas.
m.Alin
1
@Joel - Digikey wymienia tylko kilka CPLD z 320 I / O i wszystkie są BGA. Są również droższe niż 40 '595s i podobnie jak m.Alin mówi, że nie masz przewagi sygnałów rozproszonych. Z logicznego punktu widzenia jest to idealna praca dla CPLD, z praktycznego punktu widzenia mniej.
stevenvh
2
@ m.Alin - Masz całkowitą rację. Właśnie przeczytałem 40 rejestrów zmianowych i wpisałem CPLD. Po dokładnym przeczytaniu pytania, jak to robisz, ma sens.
Joel B,

Odpowiedzi:

14

Użyj buforów wyzwalających Schmitta na wejściach każdej płytki. Oczyszczą sygnały, aby na przykład żaden hałas nie dawał fałszywych impulsów na zegarze. 74LVC3G17 jest potrójny bufor bez odwracania.

Przekaż zbuforowane sygnały do ​​następnej płyty. W przeciwnym razie wszystkie wejścia byłyby równoległe i możesz przekroczyć moc wentylatora mikrokontrolera sterującego (szczególnie myślę o całkowitym obciążeniu pojemnościowym). Stokrotny łańcuch sygnałów zegara i zatrzasku da pulsujące opóźnienie w całym łańcuchu, ale dane również to zrobią, a ty i tak planujesz iść na małą prędkość.

stevenvh
źródło
1
@ m.Alin - Tak, etap push-pull byłby w porządku. Ale zdecydowanie zalecałbym bufory, nie tylko ze względu na możliwości napędu, ale szczególnie ze względu na histerezę Schmitta , która pozwoli uniknąć fałszywych impulsów zegara spowodowanych hałasem wokół progu.
stevenvh
2
@ Saad - Masz na myśli, że bufor doprowadza sygnał do kabla? Dobrą rzeczą jest to, że zapewni niską impedancję, która redukuje hałas. Ale jeśli po stronie odbiornika pojawiłby się hałas, nie można nic z tym zrobić po stronie wysyłającej. Tak więc odbiornik potrzebuje dobrej odporności na zakłócenia, którą zapewnia spust Schmitta.
stevenvh,
1
@ Saad - Tak, ale w tym przypadku wydaje się to przesada: przewody mają tylko 30 cm długości, a na każdej płycie jest już repeater / bufor.
stevenvh
1
@stevenvh Tak, mówiłem ogólnie. Twoje posty zawierają wiele informacji i prawie zawsze uczę się czegoś nowego! W tym przypadku mam bufory na płycie kontrolera, które łączą się z kablem, który łączy się z „kartą-córką”. Nie spodziewam się dużego hałasu, więc mogę zostać przy moim umowie. Mam tam tylko bufory, żeby moje źródło nie napędzało 8 urządzeń (z pojemnością wejściową 8pF + pojemność i przewodem).
Saad
1
@ Saad - Dzięki za kwiaty! :-) Miej oko na pojemność kabla, zwłaszcza jeśli jego długość przekracza metr. Praktyczna zasada: 100 pF / m, to znacznie więcej niż pojemność wejściowa.
stevenvh
9

Problem, który może wystąpić, polega na tym, że niektóre zegary SR są taktowane przed następnymi zegarami SR, więc następny SR będzie taktował nieprawidłowe dane. (Standardowym?) Rozwiązaniem tego jest podłączenie zegara od ostatniego SR.

Rozważałbym dodanie bufora (Schmit-Trigger?) Na każdej płycie dla wszystkich 3 linii sygnałowych.

(edytuj) Obniżenie częstotliwości taktowania nie pomoże (chyba że na początku było zbyt wysokie). Problemy, które możesz mieć na krawędziach zegara, które i tak będziesz mieć, bez względu na to, jak nisko wybierzesz częstotliwość taktowania.

Wouter van Ooijen
źródło
8

Największym problemem przy łączeniu rejestrów przesuwnych jest zapewnienie przewidywalności relacji czasowej między zegarem używanym przez każdą płytę do odbierania danych a zmianą danych z poprzedniej płyty. Fakt, że moc wyjściowa 74HC595 zmienia się na tej samej krawędzi co zegar, jest pod tym względem nieco denerwujący. Sugerowałbym, że sygnał zegara powinien być buforowany podczas przechodzenia przez każdą płytkę i że sygnał danych wychodzący z 74HC595 jednej płytki powinien być przepuszczony przez bufor, który opóźni go o czas nieco dłuższy niż bufor zegarowy.

Alternatywnie, możesz użyć rejestru przesuwnego, takiego jak 74HC4094, który zmienia wyjście danych na opadającym zboczu zegara, lub możesz dodać przerzutnik między wyjściem ostatniego 74HC595 na płycie a następną płytą i mieć ten przerzutnik zatrzaśnij jego wyjście na zboczu opadającym zegara, który napędza 74HC595 (być może przekaż zegar przez dwa falowniki, aby go zbuforować i podać odwrócony sygnał zegarowy do przerzutnika).

Jeśli liczba wyjść 74HC595, których będziesz używać, jest o jeden (lub więcej) mniejsza niż liczba dostarczona przez twoje układy (np. Na płycie z dwoma 74HC595 potrzebujesz faktycznie tylko 15 wyjść), możesz podać ostatnie 74HC595 na płycie z zegar odwrócony od pozostałych, ale to kosztowałoby cię użycia jednego wyjścia 74HC595 za każdym razem, gdy sygnał przechodzi między zegarem nieodwróconym 74HC595 a zegarem odwróconym 74HC595.

supercat
źródło