Dopasowywanie długości linii - kiedy niezb

Pytałem o to ostatnio w jednej "zbiorczej" wiadomości na temat projektu na STM32F4. Chciałbym jednak nieco głębiej przeanalizować temat.

Kończę właśnie projektować płytkę wykorzystującą STM32F407. Wśród podłączonych peryferiów znalazła się karta SD (podłączona przez SDIO w trybie 4bit) oraz wyświetlacz LCD (podłączony przez równoległą magistralę 16 bit).

Nie udało mi się niestety uzyskać ścieżek o równej długości. W przypadku SDIO dwie linie danych musiałem puścić na około, przez co ich długość stanowi jakieś 250% długości najkrótszych. Podobnie sytuacja wygląda w przypadku interfejsy LCD - aby zminimalizować stosowanie przelotek i "dziurawienie" pola masy po drugiej stronie płytki przepuszczałem ścieżki na około, między pinami gniazda wyświetlacza. Ponieważ zależało mi na ciasnym upakowaniu ścieżek i elementów, nie bardzo jest miejsce, żeby meandrować tymi wszystkimi ścieżkami.

Stąd moje pytanie: czy to ma znaczenie przy tego typu mikrokontrolerach? Sam STM32F407 jest dość szybki (maksymalne taktowanie 168 MHz) jego peryferia też mogą pracować z dużymi prędkościami (np. SDIO 48 MHz). Co więcej - LCD korzysta przecież z tego samego interfejsu, do którego podpina się zewnętrzne pamięci flash/ddr, a w ich przypadku dopasowanie długości jest standardem.

Z drugiej strony to jednak nie jest żaden SoC, gdzie prędkość magistrali byłaby mierzona w setkach MHz.

Na chwilę obecną płytka wygląda następująco:

formatting link
Mogę zostawić tak, jak jest? Jest szansa, że będzie działało prawidłowo przy maksymalnej prędkości tego MCU? Czy też ewentualnie konieczne będzie zmniejszenie prędkości transmisji?

Reply to
Atlantis
Loading thread data ...

I jeszcze jedno pytanie: czy dopuszczalne jest prowadzenie ścieżek pod liniami USB? Dwie linie danych SDIO są dłuższe m.in. dlatego, że chciałem mieć pod USB ciągłe pole masy i poprowadziłem te ścieżki na około. Byłyby nieco krótsze, gdyby krzyżowały się z USB biegnąc po przeciwnej stronie płytki. Czy takie coś jest dopuszczalne?

Reply to
Atlantis

Atlantis wrote on 05.12.2020 08:49:

SDIO używa jednego zbocza zegara do synchronizacji danych, oznacza to, że masz prawie pół okresu zegara żeby dane się ustabilizowały. Czy według ciebie różnica w długości linii danych jest na tyle duża, żeby sygnały docierały z różnicą większą niż 10ns (połowa okresu 50MHz)?

Strona 21:

formatting link
To samo dotyczy LCD.

Według mnie możesz zostawić tak jak jest, zwłaszcza że to amatorska konstrukcja.

Lepiej oczywiście, żeby masa była ciągła. Ale jeśli to USB pracuje na

12MHz, to bardzo dużo można sobie odpuścić. Np. w ogóle nie widać, żebyś pilnował impedancji różnicowej na liniach USB, odległości od innych linii sygnałowych.
Reply to
Zbych

Zamiast zaczynać nowy temat, podepnę się pod ten, bo generalnie pytanie jest podobne. Dyskusja nad SDIO zainspirowała mnie do do powrotu do starego projektu. Oryginalnie użyłem w nim układu ENC28J60 do łączenia z Ethernetem. Ponieważ jednak mikrokontroler PIC32MX795L posiada wbudowany moduł Ethernet postanowiłem poeksperymentować z podpięciem PHY DP83848. Najchętniej wykorzystałbym magistralę RMII, aby zminimalizować liczbę linii. W tym trybie magistrala pracuje z częstotliwością 50 MHz.

Do głowy przychodzi mi jednak kilka pytań:

1) Czy amatorska dwustronna płytka pozwoli na taką prędkość transmisji? Trafiłem na eksperymenty z tym układem, gdzie był on podpinany do STM32 za pomocą wiązki kabli
formatting link
więc pewnie ruszy, ale czy będę mógł liczyć na stabilną pracę? 2) Czy konieczne będzie meandrowanie ścieżkami w celu uzyskania dopasowanych długości, czy też obejdę się bez tego? 3) Linie RMII wymagają rezystorów podciągających? W przypadku SDIO byly one widoczne na wszystkich schematach, wiec domyślam się, że były one niezbędne. W przypadku RMII ich nie widać za wyjątkiem sygnału EMDIO). Mm rozumieć, że są one zbędne?
Reply to
Atlantis

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.