Układ Wiznet W5100 - komunikacja po SPI

Projektuję właśnie pewną płytkę wykorzystującą układ Wiznet W5100. Układ ten jest kontrolerem Ethermet, posiadającym wbudowaną obsługę stosu TCP/IP. Można się z nim komunikować za pomocą magistrali SPI albo magistrali równoległej.

Na ile dobrze zrozumiałem dokumentację (datasheet + schemat udostępniony przez producenta) włączenie komunikacji po SPO wymaga zewnętrznego podciągnięcia pinu SEN do plusa zasilania. W przypadku korzystania ze SPI wszystkie piny ADDR powinny być podłączone do masy - taka informacja znajduje się na schemacie:

formatting link
Natomiast w datasheecie (str. 9) pojawia się wzmianka, że piny te mają już wewnętrznego pull downa. Na wszelki wypadek mogę je fizycznie połączyć z masą, to akurat nie komplikuje mi mocno projektu PCB.

Mam jednak kilka innych wątpliwości. Po pierwsze zajrzałem do schematu Arduino Ethernet Shielda, który wykorzystuje ten układ. Tam z masą połączono również piny DATA. Nie ma o tym mowy w datasheecie ani na schemacie producenta. Kto ma rację?

Po drugie co powinienem zrobić z pinami /CS, /WR i /RD? Jeśli dobrze rozumiem dokumentację, piny te są używa w komunikacji równoległej. Nigdzie w dokumentacji ani na schemacie nie ma mowy o tym, co zrobić z nimi w przypadku korzystania ze SPI. Z tego co widzę, twórca Ethernet Shielda podciągnął je wszystkie do plusa wspólnym rezystorem. Takie rozwiązanie będzie konieczne, czy mogę je sobie odpuścić i po prostu zostawić te piny "wiszące w powietrzu"?

Kolejna kwestia to wspomniany już pin SEN, który aktywuje komunikacje SPI przy stanie wysokim. Producent układu w takim przypadku zaleca podciągnięcie go do VCC. Natomiast na schemacie Ethernet Schelda jest jakaś dziwna konstrukcja z buforem odwracającym pomiędzy tym pinem, a wejściem SPI Chip Select. Znów - kto ma rację?

I ostatnia sprawa - masa analogowa. W5100 ma trzy piny oznaczone AGND. Na schemacie dostarczonym przez producenta są one z główną masą za pośrednictwem koralika ferrytowego. Czy coś złego się stanie, jeśli pominę ten element, łącząc je bezpośrednio z polem masy? Bardzo mocno uprościłoby mi to projekt płytki.

Reply to
Atlantis
Loading thread data ...

I jeszcze jedno pytanie. Nie mogę znaleźć w dokumentacji informacji na temat zachowania wejść/wyjść interfejsu SPI. Czy przy nieaktywnym pinie /SCS mogę liczyć na to, że zostaną one ustawione na stan wysokiej impedancji, nie przeszkadzając w programowaniu MCU za pośrednictwem ISP?

Może dla świętego spokoju warto zastosować rozwiązanie z niewielkim rezystorem na linii MISO?

Reply to
Atlantis

Użytkownik "Atlantis" snipped-for-privacy@wp.pl napisał w wiadomości news:lt55vc$rur$ snipped-for-privacy@portraits.wsisiz.edu.pl...

Żadnych pinów wejściowych nigdy nie powinieneś zostawiać wiszących w powietrzu.

O 5100 mogę powiedzieć tyle: W prototypie użyliśmy SPI. Wyszło, że komunikacja SPI z nim jest bardzo ułomna. Nie jestem pewien o co chodziło (nie piszę programów). W drugim prototypie zastosowaliśmy połączenie równoległe i tak już zostało. P.G.

Reply to
Piotr Gałka

Nie widzę żadnego powodu aby nie połączyć wszystkich GND razem. P.G.

Reply to
Piotr Gałka

Piny DATA to piny I/O. Pociągnięcie ich do masy jest trochę kłopotliwe, bo płytką która projektuję jest jednostronna, a nie chciałbym mnożyć zworek, jeśli i bez tego układ będzie działał prawidłowo. Za to wszystkie piny ADDRES są połączone z masą. Zmieniłem także podłączenie pinów /CS, /RD i /W - teraz nie wiszą w powietrzu, ale są podciągnięte do VCC wspólnym rezystorem, tak jak w Ethernet Shieldzie. Tylko zastanawiam się dlaczego autor projektu tego shielda wstawił tam dwa rezystory w szeregu (1k i 2,2k). Jeden 3,3k by nie wystarczył.

A to dziwne... Układ jest masowo wykorzystywany w Arduino Ethernet Shield i Arduino Ethernet, właśnie w trybie SPI. Nie słyszałem, żeby Stwarzał problemy.

Natomiast jeśli chodzi o pin SEN (SPI Enable), to przyjrzałem się schematowi pierwszej wersji wspomnianego wyżej Shielda. Tam był on na stałe podciągnięty do VCC rezystorem, była jednak tam także zworka opisana jako "prog". Wychodziłoby na to, że przy włączonym SPI (nawet przy nieaktywnym pinie SCS) może dojść do konfliktu na magistrali i właśnie dlatego w późniejszej wersji dodano bufor odwracający, aby aktywował SPI dopiero po otrzymaniu sygnału z procesora, wraz z ustawieniem SCS na stan niski. Dobrze to interpretuję?

Reply to
Atlantis

Użytkownik "Atlantis" snipped-for-privacy@wp.pl napisał w wiadomości news:53f715ad$0$2234$ snipped-for-privacy@news.neostrada.pl...

OIDP to nie chodziło o stwarzanie problemów. Działa zgodnie z założeniami i opisem, ale założenia ułomne. Ale to nie ja się tym zajmowałem i było to ze 3 lata temu albo dawniej - mogę coś mylić.

Na inne tematy się nie wypowiem - nie wiem o co chodzi, a nie mam czasu się zagłębiać. P.G.

Reply to
Piotr Gałka

W dniu 2014-08-22 17:07, Piotr Gałka pisze:

Tak swoją drogą, mógłbym zapytać o wasze opinie na temat tego projektu płytki? Nic rażąco sprzecznego ze "sztuką" nie rzuca się w oczy?

formatting link

Reply to
Atlantis

Widzę, że też lubisz przejścia pomiędzy padami smd :), zawsze jestem ciekaw czy w profesjonalnych projektach też takie przejścia się stosuje (nie spotkałem się jeszcze) i czy one sa zgodne ze sztuką.

Reply to
Marek

W dniu 2014-08-22 19:04, Marek pisze:

Staram się ich unikać tak bardzo, jak tylko mogę. Nie stosuję ich też do sygnałów w.cz. Jednak kiedy mam wybór: robić zworkę (i tym samym tracić sporo miejsca na PCB) czy puścić ścieżkę między padami, to wybieram to drugie.

Reply to
Atlantis

Użytkownik "Atlantis" snipped-for-privacy@wp.pl napisał w wiadomości news:lt7rqm$u3b$ snipped-for-privacy@portraits.wsisiz.edu.pl...

Dla mnie sprzeczna ze sztuką jest płytka jednowarstwowa. Prąd płynie zawsze w obwodzie zamkniętym. Każdemu sygnałowi biegnącemu ścieżką z punktu A do B towarzyszy przeciwny prąd biegnący od B do A po masie. Ten powrotny prąd powinien na całej trasie przebiegać jak najbliżej sygnału z A do B. W ten sposób pętla emitująca zakłócenia (lub odbierająca zakłócenia) jest minimalna. Przy wysokich f nawet grubość typowego laminatu jest za dużym odstępem.

Ja projektuję (na razie) wszystkie płytki dwustronne z drugą stroną najczęściej pełną GND. Na płytce z tym W5100 użyłem kilku drucików na liniach zasilających (w warstwie GND tylko piny dla tych drucików). Ostatnio nauczyłem się nawet używać rezystorów zerowych, aby nie naruszać ciągłości warstwy GND. Co projekt to rozważam cztery warstwy, ale jak tych zerowych wychodzi mi 2..3 na płytkę to stwierdzam że tę jeszcze zrobimy dwuwarstwowo... P.G.

Reply to
Piotr Gałka

Masz na myśli przejścia pod elementami typu rezystor ? Nie ma żadnych przeciwwskazań. Rezystory zerowe wymyślili specjalnie po to, aby można było zrobić skrzyżowanie ścieżek bez przechodzenia na inną warstwę. Pod takim zerowym 1206 chyba 5 ścieżek mi bez problemu wchodzi (i to wcale nie przy jakiejś nadzwyczajnej gęstości). P.G.

Reply to
Piotr Gałka

W dniu 2014-08-22 18:40, Atlantis pisze:

Jeśli mogę, to wg mnie brak połączeń termicznych SMD z masą. Efekt tego jest taki że bardzo źle się później lutuje taką płytkę.

Reply to
janusz_k

W dniu 2014-08-22 20:04, Piotr Gałka pisze:

Tak, wiem. Jednak tego nie obejdę w warunkach amatorskich. To znaczy od biedy jeszcze mógłbym próbować z płytką dwustronną, ale póki co trzymam się jednostronnych - jak na razie moje projekty nie wymagają jeszcze stosowania kynarowej plątaniny po stronie elementów. ;)

Swoje płytki wykonuję samodzielnie, za pomocą termotransferu. Wiem, że zaraz pewnie ktoś stwierdzi, że nie warto, że lepiej zamówić od razu 10 sztuk w firmie, płacąc za to kilkaset złotych... Moim zdaniem jednak nie jest to opłacalne, gdy mowa o amatorsko składanym urządzeniu, które powstaje na własne potrzeby, w celach edukacyjnych albo po prostu "dla frajdy".

W tym przypadku chciałem po raz kolejny sprawdzić granice możliwości termotransferu. Udawało mi się już zejść z grubością ścieżki do 10 milsów, ale były to pojedyncze przypadki. Zastosowanie układu W5100 wymusza zastosowanie ich w większej ilości, w odstępach wynoszących około 6 milsów. Zobaczymy jak laminator i wytrawiarka sobie poradzą. ;)

Jeśli będą problemy, przerzucę się na W5500, który ma nieco uproszczoną aplikację (brak magistrali równoległej), mniej pinów i nie wymaga tak wąskich ścieżek. Jednak mam pod ręką kilka sztuk W5100 i w miarę możliwości chciałbym je do czegoś wykorzystać.

Tak swoją drogą kiedyś udało mi się uzyskać ścieżkę o szerokości 5 milsów, jednak była to tylko "obwódka" wyznaczająca miejsce cięcia. Co nie zmienia faktu, że wyszła całkiem ładnie, przetrwała cynowanie stopem Lichtenberga i zachowała ciągłość. Może kiedyś sprawdzę, czy da się uzyskać powtarzalne ścieżki sygnałowe o takiej grubości za pomocą termotransferu. ;)

Reply to
Atlantis

A czy w ogóle zrobiłeś jakiś działający prototyp nas tych układach? Możesz opisać swoje doświadczenia jak te układy się sprawują? Szczególnie mnie intersuje od strony aplikacji: komunikacja z układem, prostota w komunikacji, jakie są potrzebne zasoby po stronie mcu, ile na raz połączeń tcp można obsłużyć , jakie transfery można uzyskać, jaka jest stabilność stosu, odporność na deniale, itd.

Reply to
Marek

W dniu 2014-08-23 11:21, Marek pisze:

Nie, projektowana płytka ma być pierwszym podejściem do tych układów. Do tej pory jedynie miałem z nimi do czynienia w przypadku Ethernet Shielda. Wiem jednak, że znajomy budował samodzielnie jakieś układy na W5500 i z jego relacji wynika, że sprawują się bardzo dobrze - od strony programowej ich obsługa bardzo przypomina stosowanie standardowych socketów.

Jak wspomniałem, komunikacja wygląda podobnie do stosowania socketów. Układy mają wbudowaną obsługę stosu i całe przetwarzanie komunikacji TCP/IP odbywa się w ich wnętrzu, jedyne czy musi się zająć MCU, to warstwa aplikacji. Zresztą zobacz tutaj:

formatting link
serwerek WWW ma AVR, który mieści się w 2,4 kB pamięci flash. Właśnie dzięki temu, że nie trzeba poświęcać zasobów na obsługę stosu. ;)

Co do ilości połączeń, to W5100 dysponuje czterema kanałami. Domyślnie każdy z nich ma przydzielone 2kB bufora RX i 2kB bufora TX. Jeśli nie wykorzystujemy któregoś z kanałów, można przypisać wolną pamięć do pozostałych. W5500 z tego co pamiętam ma dwa razy więcej kanałów i odpowiednio większą ilość pamięci.

Szybkość? AFAIR układy potrafią pracować na Fast Ethernecie i mają obsługę Fast SPI. To raczej MCU będzie wąskim gardłem.

Pamiętam, że w datasheccie producent chwalił się odpornością na ataki. W jakim stopniu odpowiada to prawdzie - nie wiem. Ja i tak nie mam zamiaru bezpośrednio wystawiać swoich urządzeń do publicznego Internetu.

Reply to
Atlantis

Zwłaszcza, że wykonanie płytki domowe, czyli bez solder maski.

Reply to
JDX

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.