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
, CLOCK
i LATCH
sygnały.
Każdy rejestr przesuwny i mikrokontroler będą miały własną płytkę drukowaną, jak pokazano na poniższym schemacie:
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
CLOCK
czę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?
źródło
Odpowiedzi:
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ść.
źródło
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.
źródło
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.
źródło