Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Długość "łańcucha" układów w SPI bus

Kuba
-
-
Posty:51
Rejestracja:20 kwie 2003, o 11:09
Lokalizacja:Białystok
Kontaktowanie:
Długość "łańcucha" układów w SPI bus

Postautor: Kuba » 19 lis 2005, o 19:36

Witam

Chciałbym wykorzystać ten typ magistrali do sterowania kilkunastoma układami MAX6952 (driver 4 matryc 5x7) oraz kilkoma innymi układami z interfejsem spi.

Na stronach maxim'a są praktyczne informacje, jak wykonać taki projekt, sa informacje o maksymalnej ilości takich układów, ale nie ma nic o maksymalnej długości tej magistrali.
Przy czym chodzi mi o maksymalną długość z wykorzystaniem łączenia układów w łańcuch.

Obrazek

Jeśli każdy układ ma własne zasilanie, i takich układów będzie na przykład 20, to jaka powinna być maksymalna odległość między układami i jaka może być maksymalna długość całego łańcucha...

Martwi mnie przede wszystkim sygnał CLK i sygnał powracający do procesora...
Czy taki projekt zadziała, gdy długość łańcucha będzie miała ok 21m?
Dziwne jest też to, że w googlach nic o tym nie piszą ;)

Jeśli to nie zda egzaminu, to co polecacie?

pozdrawiam

Kuba

Awatar użytkownika
bis
-
-
Posty:134
Rejestracja:12 maja 2005, o 08:11
Lokalizacja:Warszawa

Postautor: bis » 20 lis 2005, o 21:41

masz tutaj dwa problemy. Każdy układ w torze danych daje opóźnienie wynikajace z propagacji pomiędzy DIN a DOUT. Powoduje to ograniczenie na maksymalnej czestotliwości sygnału CLK jaka można osiągnąć (okres sygnału CLK musi być wiekszy do czasu propagacji DIN->DOUT pomnożonego przez ilość układów). Drugi problem, znacznie poważniejszy, to realizacja "długich" połaczeń pomiędzy poszczególnymi układami. masz raczej znikome szanse na niezakłócone przesyłanie sygnałów CLK i danych w postaci sygnałów napięciowych okreslonych w nocie katalogowej. Pomiedzy każdą grupą układów powinieneś zastosować jakiś konwerter. Np. zastosować linie różnicowe, ale wtedy nadal pozostanie problem wspólnej masy. lepsze może być zastosowanie linii optoizolowanych. W zależności od sposobu realizacji tych połączeń mogą się pojawić dalsze obostrzenia co do maksymalnej częstotliwości sygnału CLK.

Kuba
-
-
Posty:51
Rejestracja:20 kwie 2003, o 11:09
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Kuba » 21 lis 2005, o 02:23

Witam

Już myślałem że nikt nie wie ;)

Opóźnienie każdego układu to dokładnie 15,5 cykli zegarowych, układów bedzie 20, czyli czestotliwość taktowania musi byc większa niż 310Hz, tak?

Co do linii optoizolowanych to miał być mój kolejny post po wyjaśnieniu tej sprawy :) czyli chyba dobrze główkuję.

Każdy driver będzie autonomicznym modułem z własnym zasilaniem, czyli wspólna masa odpada. Także zakłócenia mogą mieć duży wpływ oraz pojemność całej magistrali.
Dlatego też myślałem nad "odnawianiem" sygnału w każdym module za pomocą transoptorów, także sygnału powracającego do procesora z ostatniego układu.

Myśle, że powinno to zadziałać... a może sie mylę?

pozdrawiam

Kuba

Awatar użytkownika
bis
-
-
Posty:134
Rejestracja:12 maja 2005, o 08:11
Lokalizacja:Warszawa

Postautor: bis » 21 lis 2005, o 09:17

Przepraszam, w poprzednim poście zrobiłem błąd. To SPI jest całkowicie synchroniczne, Każdy układ zawiara w sobie szereg rejestrów jednobitowych których kolejne wyjścia połaczone są z wejsciami następnych i wspólny zegar zatrzaskujący (po prostu rejestr przesówny), który na aktywne zbocze lini zegarowej przepisuje zawartośc, DIN zapamietywane jest w D0, to co było w D0 zapisywane jest w D1 i tak dalej aż do D15 w tktórym zapamiętywane jest to co było w D14, Ponieważ zawartość D15 była widoczna na lini DOUT to, jeżeli była ona połączona z DIN następnego układu, zostało to zapisane w tym następnym, w pierwszym bicie jego rejestru przesównego. Opóżnienie w układzie to czas jaki upływa od aktywnego zbocza zegara do momentu gdy na linii DOUT nastąpi zmiana na NASTĘPNY bit.( aktualnie wpisana wartość DIN pojawi się na DOUT dopiero po wystąpieniu 15 aktywnych zboczy na lini zegarowej) Maksymalna częstotliwość zegara dla pojedynczego układu jest podana w nocie katalogowej i wynosi 26 MHz (chyba bo dokładnie nie pamiętam) a opóżnienie propagacji to ok 20 ns. Idea sterowania polega na tym że wpisujesz w cały łańcuch tyle bitów ile liczy sumaryczny łańcuch a potem, jednocześnie do wszystkich układów, wpisujesz sygnałem CS. Tak naprawdę to ilość układów nie ma znaczenia i te opóżnienia wcale się nie sumują. A jeżeli opóźnienia w liniach pomiędzy poszczególnymi, autonomicznymi modułami, będą takie same to też nie wpłyną one na działanie układu, jedynie linię zwrotną będziesz musiał czytać taktując ją sygnałem zwrotnym zegarowym, a nie nadawczym. O częstotliwości zegara zdecyduje tak naprawdę charakterystyka lini przesyłowych.

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 57 gości