-
1. Data: 2020-12-05 08:49:40
Temat: Dopasowywanie długości linii - kiedy niezbędne?
Od: Atlantis <m...@w...pl>
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:
https://ibb.co/1rg45wK
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?
-
2. Data: 2020-12-05 10:34:04
Temat: Re: Dopasowywanie długości linii - kiedy niezbędne?
Od: Atlantis <m...@w...pl>
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?
-
3. Data: 2020-12-05 11:56:44
Temat: Re: Dopasowywanie długości linii - kiedy niezbędne?
Od: Zbych <a...@o...pl>
Atlantis wrote on 05.12.2020 08:49:
> 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.
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: https://www.ti.com/lit/ug/spru765a/spru765a.pdf
To samo dotyczy LCD.
> 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?
Według mnie możesz zostawić tak jak jest, zwłaszcza że to amatorska
konstrukcja.
> 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?
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.
-
4. Data: 2020-12-14 14:37:28
Temat: Re: Dopasowywanie długości linii - kiedy niezbędne?
Od: Atlantis <m...@w...pl>
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
(https://blog.tkjelectronics.dk/2012/08/ethernet-on-
stm32f4discovery-using-external-phy/),
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?