"Przełącznik" sygnału (cyfrowego) pomiędzy uC

Dyskusje ogólne na temat "cyfrówki" czyli wszystko o TTL/CMOS, językach VHDL i VERILOG, bramkach, rejestrach, przerzutnikach... Dobre miejsce na pytania odnośnie uniwersalnych programatorów (np. Willem) a także podłączania własnych peryferiów do komputera PC.
ODPOWIEDZ
Kamil 1
-
Posty: 70
Rejestracja: 01 cze 2007, 15:20

"Przełącznik" sygnału (cyfrowego) pomiędzy uC

Post autor: Kamil 1 » 27 gru 2010, 15:20

Witam.

Mam w planach projekt oparty o uC. Z Atmegi 8 będą poprowadzone 4 linie służące do komunikacji z dwoma innymi uC. Sprawa ma wyglądać następująco te 2 uC mają być połączone z Atmegą 8 nie bezpośrednie lecz przez "przełącznik", który będzie łączył raz Atmege 8 z 1 uC, a raz z 2 uC. Przełącznikiem tym będzie sterować Atmega 8, która będzie wybierała z którym z dwóch pozostałych uC ma się połączyć.

A tu obrazek jak to ma wyglądać

Obrazek

CONTROL LINE - sygnały służące do przełączania uC (uC 1, uC 2).
DATA LINE - linie przesyłania sanych
Ten układ w ramce czerwonej to jest właśnie ten przełącznik.

I teraz potrzebuję waszej pomocy. Chodzi o to abyście wymienili mi jakieś przełączniki tego typu bo żadnych nie znam, a nawet nie wiem pod jaką nazwą ich szukać w internecie. Może ktoś bawił się takimi "przełącznikami"?? Czy znajdę w ogóle tego typu przełączniki (chyba muszą być cyfrowe?) z tym że High Speed?? Czyli aby działały poprawnie przy transferze 1Mbit/s lub wiecej?? No i oczywiście najlepiej gdyby w swojej budowie taki przełącznik zawierał 4 takie przełączniki, bo tyle linii będę wykorzystywał do komunikacji, albo mogę zastosować 2 układy po 2 przełączniki.

Za wszystkie odpowiedzi z góry dziękuję serdecznie
Pozdrawiam i Szczęśliwego Nowego Roku.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 27 gru 2010, 15:36

4 linie i szybkość w granicy 1Mb/s sugerowały by użycie portu SPI, tylko w takim przypadku nie potrzebujesz żadnego multipleksera tylko zwykły inwertor. Port SPI ma linię żądania SS która odpowiednio wykorzystana spełni twoje wymagania. Dodatkowo masz tu full duplex.
Wtedy masz 4 linie:
SCLK - zegar.
MOSI - dane wysyłane jak się nie mylę.
MISO - dane odbierane.
SS - wybór układu. np. 1- CPU1, 0-CPU2
Tutaj właściwie wszystko rozbija sie o napisanie oprogramowania MASTER-SLAVE, anie tyle o sprzęt.
Czyli aby działały poprawnie przy transferze 1Mbit/s lub wiecej??
Raczej więcej nie wyciśniesz, bo max, bit rate to FCPU/16 czyli dla 20MHz to 1,25Mb/s, a to i tak moim zdaniem optymistyczna kalkulacja.
Ostatecznie pogmerać w notach katalogowych ATTINY861, który można na wewnętrznym oscylatorze i PLL pogonić chyba do 64MHz.
Tylko musisz pamiętać że max. szybkość wyznacza zawsze najsłabsze CPU w systemie.

Kamil 1
-
Posty: 70
Rejestracja: 01 cze 2007, 15:20

Post autor: Kamil 1 » 27 gru 2010, 16:03

Ok napisze może o co chodzi dokładnie. Więc zadaniem tego "przełącznika" jest przełączanie linii ISP programatora AVR (opartego o uC Atmega 8 ) raz na uC 1 a raz na uC 2. Wiem, że powiecie po ca tak sobie utrudniać życie ale jest to mi potrzebne.

Więc chciałbym was prosić abyście mi napisali jakie układy "przełączające" do tego celu najlepiej zastosować.
Ostatnio zmieniony 27 gru 2010, 16:06 przez Kamil 1, łącznie zmieniany 1 raz.

Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 27 gru 2010, 16:04

Jeżeli dane po magistralach 1/2 bajtowych miały by być przesyłane jednokierunkowo to wystarczy bufor z wyjściami trój-stanowymi 74x244.

Kamil 1
-
Posty: 70
Rejestracja: 01 cze 2007, 15:20

Post autor: Kamil 1 » 27 gru 2010, 16:11

c4v2 pisze:Jeżeli dane po magistralach 1/2 bajtowych miały by być przesyłane jednokierunkowo to wystarczy bufor z wyjściami trój-stanowymi 74x244.
I tak ma właśnie być, dane będą przesyłane wyłącznie w jednym kierunku, no może nie do końca bo tak na prawdę w dwóch, ale chodzi o to że każda z linii ISP jest tylko jednokierunkowa.

Mnie martwi tylko sprawa związana z transferem. Co prawda szczerze nie wiem jaka prędkość przepływu informacji występuje na liniach ISP ale zdaje mi się że taki zwykły układ jak 74244 może sobie nie poradzić.

P.S. Z tego co widzę w nocie to układ 74244 może tylko włączać lub wyłączać linie a mnie chodzi o to aby można było przełączać linie, patrz rysunek powyżej ;p

Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 27 gru 2010, 16:42

Układ jest stosowany w programatorach kompatybilnych z STK200 więc z szybkością raczej nie powinno być problemu.
Schemat mógłby wyglądać tak (tranzystor pełni funkcję inwertera):
Wyjścia obydwu buforów można ze sobą łączyć ponieważ są trój stanowe(zależnie od stanu na linii control zawsze wyjścia jednego z dwóch buforów biedą w stanie wysokiej impedancji a na wyjściach drógiego będzie kombinacja logiczna będąca na liniach wejściowych)
Załączniki
244_switch.png
244_switch.png (4.02 KiB) Przejrzano 15795 razy

Kamil 1
-
Posty: 70
Rejestracja: 01 cze 2007, 15:20

Post autor: Kamil 1 » 27 gru 2010, 16:55

No faktycznie nie pomyślałem o tym aby połączyć te 2 bufory, w sumie to nie wiem dlaczego na to nie wpadłem ;p Wielkie dzięki. Spróbuje to w tygodniu zmajstrować i dam znać ;)

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 27 gru 2010, 17:04

Można użyć 4053 ja mam tak zrobione i działa super
Obrazek

Awatar użytkownika
KrzysiekK
Użytkownik
Posty: 1337
Rejestracja: 12 kwie 2006, 19:38

Post autor: KrzysiekK » 27 gru 2010, 17:40

Można spróbować zastosować poczwórny dwukanałowy multiplekser typu 4551.

Kamil 1
-
Posty: 70
Rejestracja: 01 cze 2007, 15:20

Post autor: Kamil 1 » 27 gru 2010, 17:58

Pikczu pisze:Można użyć 4053 ja mam tak zrobione i działa super
Tylko z tego co mi wiadomo to układy 4053 są z rodziny CMOS. Muszę sprawdzić czy faktycznie nie będzie problemu z nimi przy TTL ale jak kolega mówi że spełniają swoją rolę to powinno być dobrze ;)

========================================
Trochę z innej beczki (Specjalnie małe litery ) ;p

Z tego co widzę to kolega zastosował te układy w jakimś programatorze. Wiem że to się misja z tematem ale mam pytanie czo to za typ programatora?? Coś czuję że kolega zrobił go sam :) Czy kolega pokazywał ten projekt na forum?? Jeżeli tak to prosiłbym o jakiegoś linka. Iw jakim celu zastosowany jest tam wyświetlacz??

========================================

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 27 gru 2010, 20:39

kamil to taka uniwersalan płyta z mega 8
Ale mam dwie z mega 128 i tam ten układ jest tylko użyty do złącza ISP programatora więc jak programujesz te linie idą tylko do programatora a jak nie to do reszty układu.
Proste jak drut.

Awatar użytkownika
KrzysiekK
Użytkownik
Posty: 1337
Rejestracja: 12 kwie 2006, 19:38

Post autor: KrzysiekK » 28 gru 2010, 9:10

Zamiast układu 4551 można zastosować jeszcze układ TTL 74AS157.

ODPOWIEDZ