Problem z zakończeniem magistrali SPI

10

Pracowałem nad projektem, w którym master OMAP Linux SPI współdziała z 6 urządzeniami peryferyjnymi SPI slave (5x przetworniki A / D i pojedynczy magnetometr).

Mogę ustawić częstotliwość zegara SPI i eksperymentowałem z 50 kHz, 100 kHz i 1 MHz.

Dołączyłem schemat okablowania / płytki pokazujący długość od SPI master i wszystkich urządzeń peryferyjnych. Długość magistrali SPI (wszystkie długości przewodów) od mastera wynosi w przybliżeniu 970 mm w moim przypadku eksperymentu.

wprowadź opis zdjęcia tutaj

Problem, który znalazłem, polega na tym, że komunikacja z 1 urządzeniem peryferyjnym kończy się niepowodzeniem, gdy dodam więcej innych urządzeń peryferyjnych w magistrali. Nawet jeśli komunikacja dociera do magnetometru po drugiej stronie magistrali, komunikacja z przetwornikami A / D po drugiej stronie kończy się niepowodzeniem, dopóki odcinek wiązki przewodów magnetometru nie zostanie usunięty, a następnie sekcja A / D powróci.

Przeczytałem tutaj: Uwagi na temat terminacji magistrali SPI, a tutaj: Komunikacja na krótkich dystansach między płytami

gdzie zaleca się umieszczenie RC LPF jak najbliżej dowolnego węzła sterującego, więc SCLK i MOSI po stronie master i każdy z moich 6 sygnałów MISO / SOMI. Widziałem podobne podejście wykonane dla USB z siecią RC 47pF / 27R. Moim zamiarem jest wypróbowanie tego na moim obwodzie w celu zmniejszenia szybkiego przejścia ostrej krawędzi ~ 100nsec.

Czy to właściwa procedura, którą stosuję tutaj, dodając RC LPF? To wydaje się bardzo wstrząsane, czy jest lepsza praktyka? Widziałem notatkę aplikacji z TI, w której mówią o rozszerzeniu SPI na dłuższe odległości magistrali, czy jest to właściwe rozwiązanie tutaj, czy mój problem jest po prostu jedną z harmonicznych wysokiej częstotliwości z przejścia na zbocze dużej prędkości? http://www.ti.com/lit/an/slyt441/slyt441.pdf

Dzięki, Nick

Czysty pomiar CLK / MISO z magnetometru

Pomiar czasu przejścia zegara sygnału CLK

Czy ta linia MISO (kanał nr 1) pokazuje odbicia?  Poziomy nie wyglądają cyfrowo w przypadku schodów, to odbicia

shraken
źródło
Czy masz możliwość dodawania rezystorów szeregowych i zmiany okablowania?
efox29
Cześć efox29, tak, ale będzie trochę brudny. Mój mistrz SPI jest na SOM zamontowanym na mojej płycie głównej. Zamierzam wyciąć ślad dla SCK i MOSI i zamontować 330-om / 47pF 0603/0805 RC dla każdego za pomocą żywicy epoksydowej / kleju i zrobić coś podobnego na tablicach A / D i magnetometru dla MISO. Spróbuję sprawić, aby odcinek GND był tak blisko, jak tylko pad GND lub płaszczyzny, jakie mogę uzyskać. Wstrzymuję się, dopóki nie usłyszę więcej, ale planuję spróbować jutro. Nie mam jednak możliwości zmiany SPI w łańcuch stokrotkowy ani nic takiego. Zresztą i tak nie przydałoby się wiele, potrzeba desek jest na przeciwnych końcach.
shraken,
Jak działa Twój system z wolniejszym zegarem, takim jak 50 kHz? Jakiego mikrokontrolera używasz?
efox29
Sugerowałbym zacząć od linii SCK najpierw przed dodaniem Rs i Cs do innych linii. W końcu krawędzie mają znaczenie tylko na linii zegara, inne linie będą bardziej tolerancyjne dla odbić.
alex.forencich
2
W przypadku tego rodzaju problemu problemem jest częstotliwość narastania krawędzi, a nie częstotliwość zegara. Jeśli widzisz ten sam problem niezależnie od częstotliwości zegara, problem stanowią szybkie krawędzie i należy je zwolnić.
alex.forencich

Odpowiedzi:

5

Trudno jest odpowiedzieć na to pytanie bez wszystkich szczegółów, ale oto ogólne spojrzenie na problem, który moim zdaniem może być również bardziej użytecznym rodzajem odpowiedzi dla tej witryny.

Sieci z wieloma węzłami należy zawsze symulować. Są tak trudne do przewidzenia. Zajęło około 3 minut, aby zobaczyć, że Twój projekt może nie był optymalny.

Oto konfiguracja symulacji zegara od urządzenia nadrzędnego do wszystkich urządzeń podrzędnych (wartości są jedynie przybliżonymi szacunkami, jak w przypadku, gdybyś zrobił to przed zbudowaniem czegokolwiek):

wprowadź opis zdjęcia tutaj

I wynikowy wykres symulacji (ignorujemy to, co jest, jednostki itp., Ponieważ oczywiście nie warto budować):

wprowadź opis zdjęcia tutaj

Pierwszym pomysłem, który przychodzi na myśl, jest szeregowy łańcuch wszystkich wejść i proste równoległe zakończenie. Schemat przelotny, jeśli chcesz. Wygląda to tak w konfiguracji symulacji:

wprowadź opis zdjęcia tutaj

A fabuła wyników wygląda o wiele ładniej:

wprowadź opis zdjęcia tutaj

Jeśli możesz żyć ze zwiększonym zużyciem energii przez końcowe zakończenie i zmniejszonym wahaniem napięcia na wejściach zegara różnych urządzeń i ... (tylko ty znasz rzeczywiste ograniczenia) ... to niektóre z nich mogą być naprawdę warte budynek.

Istnieją inne rozwiązania, które działałyby, ale kluczem jest zrozumienie, że sieci wielowęzłowe nie są łatwe do przewidzenia. 5 minut symulacji tutaj, zanim zbudujesz coś, może zaoszczędzić dużo czasu później. Niestety tego typu symulatory nie są tanie.

Używam tutaj Cadence SigXplorer. Obowiązują zwykłe zastrzeżenia: Uczę klas integralności sygnału i często posiadam licencje na oprogramowanie Cadence lub mentora dla tych klas.

Rolf Ostergaard
źródło
Jakiego oprogramowania używasz do symulacji linii przesyłowych?
efox29
@ efox29 Cadence SigXplorer i Mentor Hyperlynx.
Rolf Ostergaard
@nickishere (OP) Czy to odpowiedziało na twoje pytanie?
Rolf Ostergaard
Cześć Rolf, Dzięki za poświęcenie czasu na symulację tego obwodu, naprawdę to doceniam. Będę musiał zajrzeć do Cadence SigXplorer i pokona. poszukaj takiego narzędzia następnym razem, gdy zbliżę się do tego dużego autobusu. Zaznaczam twoją odpowiedź jako poprawną, ponieważ jest najbardziej szczegółowa i trafna. Muszę jednak powiedzieć, że ostatecznie wykorzystałem topologię empirycznie, więc nie mogę powiedzieć, że to działa.
shraken