Introduction to Ethernet
Functional Overview
TCP/IP Download & Support
Application Ideas
Development Tools
Recommended Parts
Frequently Asked Questions (FAQs)
  Featured Products
 

  ENC624J600
 
 
 
 

  PIC18F97J60 Family
 
 
 
 

  ENC28J60
 
 
 
 

  MAC Address Chips
 
 
 

Hardware

Software

Glossary

CLICK ON THE QUESTION BELOW TO SEE THE ANSWER.

Hardware

1. What cable should I use?

2. What testing tools/equipment is necessary?

3. What is a MAC address and how do I go about getting one?

4. My customer wants 100 Base-TX for their embedded application. Do they really need this?

5. Will plugging in a 10 Base-T Ethernet device into a 100 Base-TX Ethernet network slow down the entire network?

6. I want the MAC address of the PICDEM.net™ 2 development board. There are two stickers on the bottom side of the board, one of these stickers says "25867". What does this indicate?

7. What care should be taken to prevent Link termination on my board?

8. The PICDEM.net 2 board uses the External EEPROM as the SPI EEPROM and not the I2C EEPROM. How do I use the I2C EEPROM and what changes do I have to make in my Stack?

9. How can I change the transmission speed of the UART on the PICDEM.net 2 board?

10. Can I use an Internal EEPROM to store my web pages and update them using the remote connection of FTP?

11. What are the Crystal considerations when using the ENC28J60 or the PIC18F97J60?

12. What RJ-45 connectors are recommended for the evaluation board?

13. How can the PICDEM.net 2 board be configured to get the IP address from the DHCP server?

14. How can the default MAC address and IP address assigned to the board be changed?

15. How does PIC18F97J60 produce a frequency of 41.667MHz with an input of 25MHz from the crystal?

16. Which tool do I use to monitor my Ethernet Traffic and understanding my packets?

17. How can I store my web page in multiple EEPROMs?

 

Software – TCP/IP

18. What is a TCP/IP Stack?

19. What is the cost of the TCP/IP stack?

20. Where can I find the information on the boards supported by the stack and enabling and disabling the boards?

21. What are the compilers that I can use to compile the TCP/IP stack?

22. What are the application layer protocols supported by TCP/IP stack?

23. How many bytes are occupied by the layers that are implemented in the TCP/IP stack?

24. If I do not want all the protocols to be used by my application and I want to implement the selected protocols, which files should I modify in the TCP/IP stack?

25. How should the TCP/IP stack be configured for using the device PIC18F97J60 and the ENC28J60?

26. How can we configure the stack to store the web pages in the Flash or External EEPROM?

27. What are the maximum numbers of HTTP connections that I can open with the TCP/IP Stack?

28. I have my TCP socket open but I do not get access to the Transmit Buffers?

HARDWARE

    1. What cable should I use?

There are two kinds of Ethernet cable—straight-through (patch) and crossover. When connecting an embedded device directly to another embedded device (or a PC to a PC), a crossover cable must be used, while a straight-through cable must be used when connecting an embedded device or a PC to a hub/switch/router. Some new PCs, switches, and routers may have a feature called auto- medium dependent interface crossover (MDIX), which automatically detects the cable type and corrects the differential pair's connection inside the equipment. (Top)

    2. What testing tools/equipment is necessary?

When troubleshooting an Internet application, it is critical to be able to monitor network transactions to find out what is going on. Wireshark (formerly Ethereal) (www.wireshark.org) is a network protocol analyzer tool that is powerful and easy to use, and it is free. If you need to test your product for IEEE 802.3 compliance, take a look at the Interoperability Laboratory at the University of New Hampshire (IOL-UNH). There's no official IEEE 802.3 test compliance program, but the IOL-UNH testing service has become the industry's de facto test house. (Top)

    3. What is a MAC address and how do I go about getting one?

The MAC address is a 48-bit or 64-bit Identifier (EUI-48™ & EUI-64™ node address) that provides the physical address of network hardware devices. An Ethernet MAC address has 48 bits, and every device must have its own unique MAC address. The first 24 bits of a MAC address are the organizationally unique identifier (OUI). A MAC address is formed by concatenating an OUI with another 24-bit number, the EI (Extension Identifier). A company can purchase an OUI number directly from IEEE at http://standards.ieee.org/regauth/oui/index.shtml . There's a $1,650 fee to purchase OUI number. A cheaper option is to request for an individual address block (IAB). An IAB only costs $550, but you will only get 4,096 unique addresses to use, versus 224 (over 16 million) different addresses when using an OUI. Finally, there is the added cost of serialization to ensure unique codes on every MCU, which is extremely expensive for low-volumes.

OR

You can purchase Microchip’s new EUI-48™ enabled MAC address chips. We do all of the above, offering our customers a hassle free, easy access and low-cost solution. These plug-and-play MAC address devices come with 1.5Kb serial EEPROM space and are available in SPI, I2C and UNI/O® busses. Also, they can be purchased as and when needed and there are no volume requirements. These devices are EUI-64™ compatible also.

OR

Some interface devices, such as the ENC424J600 and ENC624J600 10/100 Ethernet controllers, come with MAC addresses already pre-programmed.

(Top)

    4. My customer wants 100 Base-TX for their embedded application. Do they really need this?

Most embedded applications really do not require the 100 Base-TX data rate. Especially for simple remote monitor and control applications, 10 Base-T is plenty. However this can become a marketing issue and not a technical requirement. Some customers want their products to be 100 Base-TX in order to label or check the box that they have this feature. Typically, 100 Base-TX Ethernet is a standard for PC communication with video streaming and high-end data transfer. Many times this is overkill or much more than is needed for embedded applications. However we do understand the importance of marketing requirements and customer perception and in this case, they could choose to use the ENC424J600 or ENC624J600 device. (Top)

    5. Will plugging in a 10 Base-T Ethernet device into a 100 Base-TX Ethernet network slow down the entire network?

If the network administrator takes care to configure the 10 Base-T nodes as a sub-network behind a switch or router, the speeds are auto negotiated and therefore do not degrade the performance of the 100 Base-TX network. (Top)

    6. I want the MAC address of the PICDEM.net 2 development board. There are two stickers on the bottom side of the board; one of these stickers says "25867". What does this indicate?

This number represents the second half of a MAC address in decimal form. Converting “25867” to hex yields 00-65-0B. The first half of the MAC address for the board is 00-04-A3, which is Microchip’s OUI. Both together form a unique MAC address 00-04-A3-00-65-0B which can be used to configure the setting in TCPIPConfig.h file.

(Top)

    7. What care should be taken to prevent Link termination on my board?

a. The internal analog circuitry in the PHY module requires that an external resistor be attached from RBIAS to ground. The value required is dependent on the device, check data sheet and errata documents for the required value. The resistor influences the TPOUT+/- signal amplitude. It should be placed as close as possible to the chip with no adjacent signal traces to prevent noise capacitive coupling into the pin. It is recommended that the resistor be a surface mount type.

b. The transformers should have at least the isolation rating as specified in the datasheet to protect against static voltages and meet IEEE 802.3 isolation requirements.

c. The Ethernet module is designed to work with a 25MHz 50ppm crystal and hence that configuration has been made to provide exact 25 MHz. (Top)

    8. The PICDEM.net 2 board uses the External EEPROM as the SPI EEPROM and not the I2C EEPROM. How do I use the I2C EEPROM and what changes do I have to make in my Stack?

The external EEPROM in the Stack is the SPI EEPROM and is configured in the SPIEEPROM.c file and XEEPROM.h. A driver has to be developed in order to use the I2C EEPROM. It is to be noted that the I2C EEPROM is much slower as compared to the SPI EEPROM. (Top)

    9. How can I change the transmission speed of the UART on the PICDEM.net 2 board?

The baud rate is declared in maindemo.c of the TCP/IP stack. The baud rate can be modified there in conjunction with changing the settings of the UART registers of the device. (Top)

    10. Can I use an Internal EEPROM to store my web pages and update them using the remote connection of FTP?

The PIC18F97J60 part does not have the Internal EEPROM, one can use the Flash Memory to store web pages but it cannot be upgraded using the Remote FTP Protocol. However, in order to upgrade, one can write a program that will write the code only in a particular section of the Flash Memory. (Top)

    11. What are the Crystal considerations when using the ENC28J60 or the PIC18F97J60?

The crystal should be a 25MHz, 50ppm parallel cut crystal. (Top)

    12. What RJ-45 connectors are recommended for the evaluation board?

Some of the common RJ45 connectors recommended are:
- Bel Stewart 08B0-1X1T-36-F
- Pulse JP011821UNL

(Top)

    13. How can the PICDEM.net 2 board be configured to get the IP address from the DHCP server?

The default IP address that is assigned to the board in the TCP/IP stack is 169.254.1.1. When the DHCP server is enabled, the IP address changes to the IP address assigned by the DHCP Server to the board in a few seconds. The Static IP Address is assigned to the board in the files TCPIPConfig.h. (Top)

    14. How can the default MAC address and IP address assigned to the board be changed?

The default addresses are assigned in the file TCPIPConfig.h in the TCP/IP Stack. The MAC and IP address can be changed in TCPIPConfig.h. (Top)

    15. How does PIC18F97J60 produce a frequency of 41.667MHz with an input of 25MHz from the crystal?


The PIC18F97J60 takes an input of 25MHz and produces two frequencies
a. 25MHz for the Ethernet module, and
b. 41.667MHz for the Microcontroller block using the internal PLL block

Please refer to the section Oscillator Configuration in the datasheet of the PIC18F97J60 for further details. (Top)

    16. Which tool do I use to monitor my Ethernet Traffic and understanding my packets?

There is a tool for the Internet Traffic Monitoring which captures and decodes Ethernet Frames .It is a free tool which supports a lot of protocols with the filtering mechanism and can be downloaded from www.wireshark.org. (Top)

    17. How can I store my web page in multiple EEPROMs?

It is not possible to store web pages in multiple EEPROMs. Microchip’s API does not allow the fragmentation of data. For more space, we recommend using an external Flash memory like the one from SST. (Top)

SOFTWARE - TCP/IP

    18. What is a TCP/IP Stack?

Communication over the Internet is accomplished by implementing the TCP/IP protocol. Microchip offers a free TCP/IP software stack optimized for all Microchip 8-/16-/32-bit MCU families. The stack is a suite of programs that provide services to all TCP/IP-based applications. Users do not need to know all the intricacies of the TCP/IP specifications in order to use it. Based on the TCP/IP Reference Model, the stack is divided into multiple layers, where each layer accesses services from one or more layers directly below it. Per specifications, many of the TCP/IP layers are “live”, in the sense that they not only act when a service is requested, but also when events like time-out or new packet arrival occurs. The stack is modular in design and is written in the ‘C’ programming language.

CLICK HERE to download the latest stack that has been released by Microchip. (Top)

    19. What is the cost of the TCP/IP stack?

Microchip provides a TCPIP stack for PIC18, PIC24, PIC32 and dsPIC families that is both royalty-free and in source code format. Many competitors charge some royalty or license fee for the TCPIP stack. Also those who offer free stacks often only offer object code which limits flexibility. We offer full source code and royalty free as long as the code runs on a PIC MCU. The TCPIP stack can be downloaded directly from HERE and additional detail about the stack layers can also be found at that website. (Top)

    20. Where can I find the information on the boards supported by the stack, and enabling and disabling the boards?

The TCP/IP stack has the following file:

HardwareProfile.h – This file lists all the boards supported by the Stack along with the necessary hardware definitions. Define the board you want to use there. (Top)

    21. What are the compilers that I can use to compile the TCP/IP stack?

The TCP/IP Stack can be compiled using the following compilers:
a. C18 Compiler if a 8-bit PIC device is selected.

b. C30 Compiler if a 16-bit PIC or dsPIC device is selected.

c. C32 Compiler if a 32-bit PIC device is selected

(Top)

    22. What are the application layer protocols supported by TCP/IP stack?

As per the TCP/IP Stack we have implemented the following Application Layer Protocols:

HTTP

HTTTP2

FTP

SMTP

Telnet

DHCP

DNS

SNMP

NetBIOS

Boot loader

Ping

NBNS

SNTP

UART Bridging

Apart from this, the following Transport Layer Protocols are implemented:

TCP

UDP

ICMP

The following Internet and Network Access layer Protocols are implemented:

ARP

IP

(Top)

    23. How many bytes are occupied by the layers that are implemented in the TCP/IP stack?

The web pages that are stored in the External EEPROM and then retrieved from the EEPROM or the Program memory to display on the PC over Ethernet has a link to “Stack Footprint”. This “Stack Footprint” can be used to understand the footprint occupied by the Layers.

The same web page can be retrieved from the web pages folder in the TCPIP Demo App folder which is in the Microchip Solutions folder in your C drive. (Top)

    24. If I do not want all the protocols to be used by my application and I want to implement the selected protocols, which files should I modify in the TCP/IP stack?

The stack version has the following file which needs to be modified:

TCPIPConfig.h – This file has the define statements with which you can select the appropriate Protocol files for your applications. Depending on the selection here the files related to different protocols are either selected or not. (Top)

    25. How should the TCP/IP stack be configured for using the device PIC18F97J60, ENC28J60 or the ENC424J600/624J600?

The selection is controls by the HardwareProfile.h file, if the chip select line for ENC28J60 is defined, then the ENC28J60 is used. If the chip select line for ENCX24J600 is defined, then the ENCX24J600 is used. If nothing else that uses the TCPIP stack is defined, then the PIC18F97J60 driver is used.

(Top)

    26. How can we configure the stack to store the web pages in the Flash or External EEPROM?

The web pages you develop can be either stored in the Flash Memory or they can be stored in the External EEPROM on the PICDEM.net 2 board.

In the TCPIPConfig.h in Stack there is #define statement that can enable or disable the storage of the web pages in the EEPROM. If html pages are stored in internal program memory, comment MPFS_USE_EEPROM and include an MPFS image (.c file) in the project. If html pages are stored in external EEPROM memory, uncomment MPFS_USE_EEPROM, by default the web pages are stored in the Flash Memory and not in the External EEPROM. (Top)

    27. What are the maximum numbers of HTTP connections that I can open with the TCP/IP Stack?

The maximum numbers of HTTP Connections that can be opened are 255. One can verify that in the StackTsk.h file in the stack in the following lines of code:

// Check for potential configuration errors in "TCPIPConfig.h"
#if (MAX_HTTP_CONNECTIONS <= 0 || MAX_HTTP_CONNECTIONS > 255)
#error Invalid MAX_HTTP_CONNECTIONS value specified.
#endif

(Top)

    28. I have my TCP socket open but I do not get access to the Transmit Buffers?

In the Microchip TCP/IP stack, we share one or more common transmit buffers. So the problem rises when a socket takes control of the buffer and does not release it for other sockets to use. In such a case if any remote application is trying to get the buffers it will not get the buffers. The user should ensure that every socket gets the buffer when required by creating sufficient Transmit buffers. (Top)

GLOSSARY

ARP - Address Resolution Protocol

DHCP - Dynamic Host Configuration Protocol

FTP - File Transfer Protocol

HTTP - Hypertext Transfer Protocol

IP - Internet Protocol

IEEE - Institute of Electrical and Electronics Engineers

ICMP - Internet Control Message Protocol

PoE - Power over Ethernet

SNMP - Simple Network Management Protocol

TCP - Transmission Control Protocol

TFTP - Trivial File Transfer Protocol

UDP - User Datagram Protocol

(Top)

Back to Parts