Search 8052.com...


User (Email)

Password

Remember Logon

Forgot password?
Create Account


8052.com Online Store
Back to 8052.com Main Page



























 Frequently Asked Questions

1 Compiling/Programming
1.1 What compiler did you use?
1.2 Where do I get the most up to date versions of the Ethernet Drivers?
1.3 I have found a bug, how do I report it?
1.4 I am trying to run the driver code as a complete interrupt routine, but when I send a packet, the NIC stops responding. What is happening?
1.5 From a PC, you can get ethernet statistics from the card, but it is not in your driver, why?
1.6 The buffers take up 3.5k aprox. Can I reduce this overhead to reduce the amount of RAM I use?

2 Ethernet
2.1 The MAC Address of the card is displayed on the computer, but I cannot ping the card. Whats wrong?
2.2 The NIC works correctly for a time, then stops sending out packets, what happening?

3 Miscelaneous
3.1 Do I have to pay to use this driver?
3.2 Are you going to keep on developing the code for this and other NICs?


1.1 What compiler did you use?
The compiler used to create this driver was Cross-32 Meta-Assembler, Version 4.01. The web site for more information is here.

1.2 Where do I get the most up to date versions of the Ethernet Drivers?
Currently at the moment, any updated drivers will be availiable through this tutorial until such time as I get a home page. You can download if you click here.

1.3 I have found a bug, how do I report it?
Email the details of the bug to here, including what it does, and I will advise, resolve or include in the next update to the software.

1.4 I am trying to run the driver code as a complete interrupt routine, but when I send a packet, the NIC stops responding. What is happening?
You cannot run the driver as an all in one interrupt routine. The interrupt routine can only service the NIC as far as getting a Packet from the ring into RAM, or signalling the micro that it has finished transmitting. You must use a flag to signal when a packet has arrived, and then process the packet. The example code supplied with this driver shows an example of its use. You cannot call SendPacket from within the interrupt routine, as it requires to call the same interrupt during its use.

1.5 From a PC, you can get ethernet statistics from the card, but it is not in your driver, why?
Because we are using a microprocessor that only has a limited amount of memory and code space, this was left out of the driver as it is not essential for its operation. There are no plans to incorporate it into the driver at this stage. If you would like it implemented, then drop me a mail.

1.6 The buffers take up 3.5k aprox. Can I reduce this overhead to reduce the amount of RAM I use?
You can reduce the amount of RAM that is required to use this code. This can be acheived by using the Receive buffer as a transmit buffer. When a packet is received from the NIC, the ei_RXD flag is set. You could then change the packet around as you like, then send the packet. Once the packet has been sent, the ei_RXD flag can then be cleared, and EIGETPACKET called to retrieve the next packet from the NIC. Also, you can reduce the amount of memory being used, while still maintaining seperate send/receive buffers by reducing the maximum buffer size for the send/receive packet. Note that if you do this, you should implement the MTU/MRU function in the ICMP protocol. This allows other devices to ask the microprocessor what its MTU/MRU sizes are such that it doesn't send a packet greater than the receive buffer.

2.1 The MAC Address of the card is displayed on the computer, but I cannot ping the card. Whats wrong?
There are many problems that may cause this symptom. The most common are listed below.

  • Check to make sure that the cable connecting the card to the network is good. If it is a coax cable, make sure that the network is terminated. If it is 10BaseT, then there should be a link light up on the hub and on the network card if it has one. If only one of the lights are active, then there is probably a cable problem.
  • If you connecting the ethernet cable directly between the computer and the NIC, is it a cross over cable? If you are connecting two devices togeather without a hub, you need to use a cross-over cable.
  • Has the network card be set to Auto-Sense the type of network cable. Some auto-sense cards incorrectly select the network type. It is best to force it to be the type of connection that you are using, i.e. COAX, 10BaseT.
  • If you have link lights on both ends of the cable, when you ping the card, do you see the activity light on the hub flash? Is so, then something is being sent from the card.
  • If you are using Windows 95, Windows 98, or NT, use the ARP command to see if an entry exists for the IP address programmed into the NIC. The command syntax is arp -a. If so, then it has received this information for the microprocessor.
  • Is the IP Address of the NIC, in the same network address space as the computer you are using to Ping it? If they are not on the same subnet, then the NIC will not respond.

2.2 The NIC works correctly for a time, then stops sending out packets, what happening?
This may happen on a loaded network or where the network card is receiving packets faster than the microprocessor can process them. The packets are stored in the NIC is a round robin queue, and removed from the queue only as fast as the microprocessor is instructed. If the head pointer reaches the tail pointer, then the card will generate an interrupt to signal this and turn the receiver off in the NIC. This is undesireable, but unavoidable. This will most likely happen when the card is on a busy network where it needs to service a lot of requests.

3.1 Do I have to pay to use this driver?
This driver is currently freeware. You are free to use this code and modify the code to suit your needs. However, if you modify the code in any way, then I will may not support any problems you may experience. I request that should your project go into production and you use this code, that my name appears somewhere in the documentation. I would also like to know what your project does for reference. Also, No warranty is also expressed or implied. The author is not liable for any damage caused by the use of this code.

3.2 Are you going to keep on developing the code for this and other NICs?
It is my intention to continue to develop this code, and remove any bugs that may be present. Because there are many chipsets out that emulate the 8390 chipset, some bugs, may make themselves known to certain network cards. In fact, looking in the Linux Code and certain other codes, there are many workarounds for certain problems on some NICs. I hope to incorporate some of these into the code as a conditional compilation during the continued growth of this driver.

Home


(C) Copyright 1997 - 2008 by Vault Information Services LLC. All Rights Reserved.
Information provided "as-is" without warranty. Please see details.
Contact us for usage and copy permission.