Rozwiązaniem problemu może być karta sieciowa wykorzystująca GPIO. Przedstawiony moduł wykorzystuje dobrze znany z współpracy z Arduino układ ENC28J60. Niewątpliwą zaletą układu jest wsparcie programowe przez praktycznie każdą dystrybucję Linuxa dla Raspberry Pi, co uwalnia nas od mozolnego grzebania w systemie.
Schemat ideowy modułu pokazano na rysunku 1. Moduł jest zgodny z Raspberry Pi+ (HAT 40PIN) i ma wymiary PI Zero. Głównym jego elementem jest U1, czyli wspominany już wcześniej układ ENC28J60. Do komunikacji z PI wykorzystuje interfejs SPI i pracuje w typowej aplikacji.
Gniazdo CN1 zawiera zintegrowany transformator separujący oraz wbudowane diody sygnalizujące połączenie i aktywność interfejsu. Układ U2 MCP100T-300 zapewnia poprawny restart U1 po włączeniu zasilania.
Ze względu na spory pobór prądu przez U1 do zasilania jest wykorzystywane napięcie 5 V z GPIO, ponieważ wewnętrzne 3,3 V ma zbyt małą wydajność.
Do jego obniżenia do 3,3 V wykorzystano przetwornicę U3 typu ADP2108. Na złącze SIO, wyprowadzone są dwa interfejsy szeregowe UART i I²S wraz z zasilaniem (zgodnie z Arduino Bricks) ułatwiające rozszerzanie funkcjonalności PI przy wykorzystaniu przedstawionych na łamach EP mini modułów Xbee/I²C.
Moduł ethernetowy jest zmontowany na dwustronnej płytce drukowanej. Jej schemat montażowy pokazano na rysunku 2. Sposób montażu jest klasyczny i nie wymaga opisu.
Prawidłowo zmontowany moduł nie wymaga uruchomienia, dla wstępnego sprawdzenia działania konieczna jest konfiguracja systemu. W pierwszym kroku należy uaktywnić interfejs SPI i zrestartować PI. Następnie w pliku /boot/config.txt dodać linię dtoverlay=enc28j60. I to wszystko, po ponownym restarcie interfejs jest aktywny i może zostać spożytkowany we własnych aplikacjach IoT.
Adam Tatuś, EP