Ethernet and USB board using PIC18F27J53 and W5200

Arduino の有線 LAN module として頻用されている WIZnet 社の WIZ820io (W5200) を PIC マイコンでコントロールする実験を行った。W5200 は TCP/IP protocols を内部に実装するため、MCU (Micro Controller Unit) のプログラム・メモリ負担を軽減する事が可能である。

ちなみに、WIZnet 社から W5200 を用いた Ethernet PICtail Board が販売されていて、Microchip TCP/IP Stack に追加する W5200 driver が WIZnet 社のサイトから提供されている。今回の目標は、新たに PIC18F27J53 と WIZ820io (W5200) で構成される実験ボードを作成し、DHCP server が割り振る IP address を取込み、更に NetBIOS Name Service (NBNS) が利用出来る事を確認する事である。


PIC18F27J53   <— SPI —>   WIZ820io (W5200)   <— Ethernet —>   Local area network


<< Architecture of the Ethernet board >>

The Ethernet module, WIZ820io, is connected with the microcontroller, PIC18F27J53, using the Serial Peripheral Interface (SPI).


Clock and pin connection of PIC18F27J53 :

The system clock of 48MHz is derived from the external ceramic resonator of 4MHz using the PLL module.

LED : RB1, RB2;    Switch (pull down) : MCLR, RB3;

LCD (SC1602BBWB-XA-GB-G) : RS – RC6, R/W – GND, E – RB6, Data bus : DB4 – RB7, DB5 – RC0, DB6 – RC1, DB7 – RC2, VDD – 5 volt


WIZ820io :

RESET  –  PIC pin 4 (RA2)
SS       –  PIC pin 5 (RA3)
SCLK   –  PIC pin 25 (RB4/RP7 assigned to SCK1)
MISO   –  PIC pin 26 (RB5/RP8 assigned to SDI1)
MOSI   –  PIC pin 18 (RC7/RP18 assigned to SDO1)


<< Sample code for the Ethernet board with W5200 >>

(Compiled by the C18 under the large code model on the MPLAB X IDE)


In TCPIPConfig.h, STACK_USE_DHCP_CLIENT, STACK_USE_NBNS and STACK_USE_TCP have been defined in this project.  Consequently, the test board can practice the communications-protocol of DHCP Client and NBNS.

The default network configuration in TCPIPConfig.h must be adjusted to your local network (MAC address, IP address and so on).

Example above:
NetBIOS Name = PIC18F27J53
Default MAC address = {0x00, 0x04, 0xA3, 0x00, 0x00, 0x00}
Default IP address  =
Default subnet mast =
Default primary DNS =
Default secondary DNS =

The connection to the Ethernet board can be checked by the ping on the Command Prompt of your Windows PC.


<< Summary in Japanese >>

今回の実験に用いた WIZnet 社の W5200 hardwired TCP/IP driver には若干の手直しが必要であった。

現時点での費用対効果を問われれば、WIZ820io(W5200搭載モジュール)より ENC28J60 Ethernet LAN Network Module For Arduino SPI AVR PIC LPC STM32 に軍配が上がると答える。なぜなら、プログラミングは素人で提供された firmware を使うだけだから、performance を評価する資質は備えず、hobby-use での cost 面でしか評価できない。