Do tej pory w swoich konstrukcjach korzystałem ze sterownika Ethernetu Microchip ENC28J60, wraz ze stosem TCP/IP ze strony Tuxgraphics. Teraz jednak postanowiłem spróbować czegoś innego - sięgnąć po układ Wiznet W5100, który obsługę stosu realizuje sprzętowo. Właśnie jestem na etapie projektowania płytki zawierającej ten układ oraz Atmegę 644. Przeczytałem notę katalogową oraz obejrzałem schemat udostępniony przez producenta, wciąż są jednak rzeczy, których nie rozumiem do końca.
Poniżej zamieszczam linki do materiałów, do których będę odnosił się w kilku kolejnych pytaniach:
Datasheet układu W5100Schemat aplikacyjny układu W5100Schemat płytki Arduino Ethernet, w której wykorzystano omawiany układ
Teraz wypiszę po kolei moje wątpliwości:
1) Układ może się komunikować z MCU za pośrednictwem standardowej magistrali SPI albo magistrali równoległej. Datasheet oraz schemat podają, że w przypadku korzystania ze SPI należy podciągnąć pin SEN do plusa zasilania. Pojawia się także informacja, że piny ADDR powinny być połączone z masą. Tutaj jak na razie wszystko jest jasne. Jednakże z tropu wybił mnie schemat Arduino Ethernet - tam z masą połączono również piny DATA oraz zastosowano jakąś dziwną konstrukcję z buforem odwracającym pomiędzy SEN a SCS (SPI Chip Select). Które rozwiązanie jest prawidłowe? Czy układa zadziała, jeśli zostawię piny DATA niepodłączone do niczego, a pin SEN podciągnę do plusa?
2) Co zrobić z ponami /CS, /WR oraz /RD, jeśli nie korzystam z magistrali równoległej? W datasheecie ani na schemacie od producenta nie ma żadnej informacji na ten temat, natomiast w Arduino zostały one wszystkie podciągnięce do plusa za pomocą jednego rezystora. Czy mogę te piny zostawić niepodłączone? Znacząco uprości mi to projekt płytki...
3) Nie mogę znaleźć w dokumentacji żadnej informacji na temat sposobu, w jaki zachowują się piny SPI (w szczególności MISO) przy nieaktywnym SCS. Mogę liczyć na to, że pin ten zostanie ustawiony w stan wysokiej impedancji, nie przeszkadzając w programowaniu układu? A może warto będzie na wszelki wypadek umieścić niewielki rezystor na linii MISO?
4) Układ W5100 ma trzy piny oznaczone jako masa analogowa (GNDA). Producent na schemacie zasugerował połączenie ich z główną masą za pośrdnictwem koralika ferrytowego. W Arduino Ethernet łączą się one z masą bezpośrednio. Rozumiem, że nic się nie stanie, jeśli w swoim projekcie połączę po prostu te piny z polem masy?