Email: Password: Remember Me | Create Account (Free)
8390 Hardware

 HARDWARE

One of the design goals was to make it cheap and easy to connect a 8032 microprocessor to an ethernet network, while not incuring the overhead for the microprocessor to check every packet that is sent over the network. Because of these design rules, I chose to use a NEx000 card. These are cheap, have onboard memory for packets that are received, and only generate an interrupt when a packet is required to be processed by the host. By default, unless promisceous mode is configured, the microprocessor will only be interrupted during the following conditions:

  • Packet is sent to the MAC address of the NIC
  • A broadcast packet is received.

A broadcast packet is a packet that all nodes or devices on the network receive and must examine. An example of a broadcast packet is an ARP (Address Resolution Request) packet. It is sent to all devices on the network such that the sending device can locate a computer that is using a particular IP address. All devices then process this packet. If the IP address contained within the packet is the same as the IP address of the device, then a response is returned back to the originating device, otherwise the packet is dropped.

The current version of the code does not put the NIC into "promiscious" mode. Doing this will increase the overhead of the microprocessor as it will be retreiving packets continuiously on a busy network and interrupting the application program.

The requirement for the card to be used with this tutorial are as follows:

  • Be National Semiconductor 8390 or compatible chipset
  • ISA bus interface (8 or 16 bit)
  • Must be able to be used in a NON-PNP (Plug aNd Play) mode
  • Be configurable to have its IO address on a page boundary, ie. 0300h

Connecting the card to the computer requires two steps:

  1. Make the interface board
  2. Configure the NIC

MAKE THE INTERFACE BOARD
The schmatic to connect the card to the microprocessor is shown to the right. I used IO Address 0300h for my DLink DE220 ISA network card. Tie the resistor that connects to the transistors base (T1) to the IRQ line configured on the ISA card. You could use a jumper bank to select different IRQ pins for different NICs. The most common IRQ lines are 5 and 10. The SELX pin connects to an Address Decoder (active low) pin. My address decoder splits the XDATA address space into 8k blocks. For information on setting up the card without an address decoder, look at Werner Cornelius's page. His page shows connection data for various scenarios, and where I found the information required to connect the card to the microprocessor.

NOTE: The power consumption of the NIC is high. It adds around 500mA to the current draw. For testing purposes, I chose to use a switch mode power supply from a computer.

CONFIGURE THE NIC
Once the hardware has been produced, the NIC needs to be configured for the microprocessor. How this is done depends upon the type of NIC that you have. The card may have jumpers to select the IO adrdess and IRQ settings. Most cards use an EEPROM to store the settings. In this case, you need to contact the manufacturer to obtain the software to configure the card.

Put the card into a PC computer, and use the manufacturers software to configure the card to the settings as per your interface board. If you are unsure of who the manufacturer of the card is, and you have Windows 95 or 98, use the Add new hardware option in the control panel to locate the NIC for you. It may be able to tell you who the manufacturer of the card is. It will also tell you what IO address and IRQ the card is configured for.

Home