Easy Ethernet Controller
using Telnet and TCP/IP or a simple VB program and
The Easy Ethernet Controller's Ethernet module is
based on the RTL8019AS Ethernet IC. With the help of
the on-module 20 MHz crystal and an integral isolation
magnetics/RJ- 45 jack assembly, the RTL8019AS does
everything necessary to put an Ethernet frame on the
LAN including blinking the status LEDS which are also
mounted on the Easy Ethernet Controller module.
All we have to do is supply + 5 volts to the Ethernet
module and interface its address and data bus pins to
the PIC16F877, which is running our BootLoader and
Internet protocol firmware.
The RTL8019AS contains a set of registers that
must get some of their data from an external 9346
EEPROM. As you can see by the schematic, there is no
9346 EEPROM device on the Easy Ethernet Controller.
That's because I used a PIC firmware trick to "fake out"
the RTL8019AS into believing the PIC16F877 is the
By employing this technique, I can run the Easy
Ethernet Controller at full or half duplex and I can also
change the way the status LEDs behave just as if the
9346 were present. EECS, EEDO, EEDI, and EESK are
the RTL8019AS's 9346 interface pins. The PIC16F877
firmware supplies and receives Ethernet control
sequences and data through the Ethernet module's
SD0-SD7 data lines.
SA0-SA4 address the RTL8019AS's internal register stack. When a good Ethernet frame is received, the
INT0 pin signals the PIC16F877 that data is available.
The PIC16F877 then uses the IORB and IOWB
lines to read data from and write data to the Ethernet
The Ethernet module JP pin is normally tied high
to allow the INT0 and "fake" EEPROM functionality to
be employed. If JP is left open, it will be pulled low
internally by the RTL8019AS and other modes of operation can be explored. In our application, JP is tied
Easy Ethernet Controller
The Easy Ethernet Controller firmware is too
lengthy to include in print here and just as lengthy to
describe. So, the source code for the Easy Ethernet
Controller is profusely commented to allow you to
understand and then modify the code for your use.
The Easy Ethernet Controller firmware consists of
modules that perform IP, TCP, UDP, ARP, and PING
operations. The PIC16F877 firmware also is responsible for initializing the Ethernet module.
In addition to these duties, the firmware also has
room to add an application that controls the
PIC16F877's I/O pins.
Photo 3. Steps in a
The Easy Ethernet Controller IP address and MAC
(hardware) address can be modified inside the Easy
Ethernet Controller source code. The default Easy
Ethernet Controller IP address is 192.168.1.150 and
the default MAC address is 0VOLTS.
The MAC address is used by the Ethernet mechanism just like the IP address is used by UDP and TCP.
The ARP function is used by your PC to figure out what
the Easy Ethernet Controller's MAC address is.
Once your PC gets the Easy Ethernet Controller's
MAC address from the Easy Ethernet Controller itself
via an ARP request/reply sequence, it matches up the
Easy Ethernet Controller IP and MAC addresses so it
knows from then on how to contact the Easy Ethernet
Controller over the LAN.
A Telnet application comes standard with Windows
2000 and Windows 98/ME and can be invoked by simply typing in "telnet" in a DOS window. Photo 2 is a
series of screen shots that show you how to use the
Win98/ME application to get to the Easy Ethernet
The topmost Telnet screen is the result of selecting
Connect | Remote System. You can use these exact
Host Name, Port, and TermType
settings to get to my Easy
Photo 4. The test
panel in action.