Low cost Ethernet shield with ENC28J60 using Arduino

20,822

Circuit Image

One of the most interesting shields that can be mounted on the Arduino platform is the Ethernet shield, as it enables numerous networking applications such as remote control of systems and users, web access, data publication, and more. The simplicity of finding and integrating open-source libraries in the Arduino IDE enhances its usability. The demand for LAN connectivity has led to various Ethernet shields being available in the market. The original Arduino Ethernet Shield and the Seeed Studio shield are notable examples, both based on the WIZnet W5100 chipset, allowing multiple socket connections and operating at 100 Mbps. This Ethernet shield is cost-effective due to its use of traditional through-hole components (THT), making it accessible to those without the equipment to assemble surface-mount devices (SMD). However, the data rate is limited to 10 Mbps when utilizing the Microchip ENC28J60 chip, which interfaces with Arduino and facilitates data conversion according to the Ethernet protocol. The ENC28J60 integrates a MAC controller, an 8 KB Transmit/Receive Packet Dual Port Buffer, and a circular FIFO managed at the hardware level, enabling data retransmission programming in case of collision. The MAC controller supports Unicast, Multicast, and Broadcast packets and features a programmable 64-byte pattern, along with programmable wake-up capabilities for various packet formats. The circuit includes a standard RJ45 jack with integrated LEDs, filters, line transformers, and a voltage level shifter for the SPI interface to communicate with the Arduino. The MISO pin serves as the output data for the slave device and input for the Arduino, while the MOSI pin functions oppositely. SCK is the clock signal for two-way communication on the SPI bus, and the RESET line, connected to a button, allows for manual resetting of the Ethernet interface if necessary. The Arduino digital pins D10 and D2 control the CS (Chip Select, active low) and INT reading, respectively. A logic level shifter (U3B) adapts the 0/3.3 V logic levels to the Arduino's 0/5 V levels. The ENC28J60 operates at a clock frequency of 25 MHz, determined by a quartz crystal (Q1) connected between pins 23 and 24. A capacitor connected to pin VCAP filters the output voltage (2.5 V) from the internal controller and should preferably be a low ESR type. A resistor connected to RBIAS biases the LAN transceiver associated with the TPIN+/TPOUT+/- pins. The shield draws power from the Arduino through the 5V and Vin strips: the 5V line supplies stabilized voltage to components requiring it (such as the 74HC125 and pull-up resistors for the reset and Chip Select lines), while the Vin line powers the integrated regulator (U2), which generates the 3.3 V needed for the microcontroller and circuits in the RJ45 jack.

The Ethernet shield is designed to facilitate various networking tasks, making it an essential component for projects that require internet connectivity. The WIZnet W5100 chip allows for robust connection capabilities, supporting simultaneous connections to multiple sockets, which is crucial for applications that require real-time data exchange. The ENC28J60 chip, while offering a lower data rate, provides a more cost-effective solution for simpler projects. The integration of a MAC controller and buffer memory allows for efficient handling of data packets, minimizing the risk of data loss during transmission.

The RJ45 connector's integrated components, such as LEDs for status indication, line transformers for signal integrity, and filters for noise reduction, enhance the reliability of the Ethernet connection. The SPI interface facilitates communication between the shield and the Arduino, with specific pins dedicated to data transmission and control. The inclusion of a manual reset button is a thoughtful design feature, allowing for easy troubleshooting and maintenance.

Power management is also a key aspect of the shield's design, ensuring that the necessary voltage levels are provided for the various components. The use of a low ESR capacitor and a biasing resistor contributes to the stability and performance of the Ethernet transceiver, ensuring efficient operation. Overall, the Ethernet shield represents a versatile and user-friendly solution for integrating networking capabilities into Arduino projects, making it a valuable addition to the Arduino ecosystem.One of the most interesting shield that you can mount on the Arduino platform is certainly the ethernet shield, because enable numerous networking applications such as remote control of systems and users, web access and publication of data, and more yet, the simplicity of finding and integrating open-source libraries on Arduino IDE does the rest. T he usefulness of LAN connectivity has meant that the market would respond by offering different ethernet shield, first of all the original Arduino Ethernet Shield, which was accompanied by the good shield by Seeed Studio, both of these circuits are based on the chipset WIZnet W5100, allow multiple socket connections and can work at 100 Mbps This ethernet shield is low-cost thanks to components used: all traditional mounting (THT). This feature makes the circuit accessible to those who haven`t the equipment to assemble SMD components.

The data-rate is limited to 10 Mbps. The shield is based on a Microchip ENC28J60 chip that interfaces with Arduino and data conversion according to the ethernet protocol. It integrates the MAC controller, an 8 KB Transmit / Receive Packet Dual Port Buffer and a circular FIFO managed at the hardware level, allows the programming of data retransmission in case of collision.

The MAC controller supports both Unicast, Multicast and Broadcast packets, has a programmable 64-byte pattern within a margin allowed to the user and programmable wake-up on multiple packet formats (Magic Packet, Unicast, Multicast, Broadcast, specific packet match or any packet). In the circuit we see that over all`ENC28J60 there are a standard RJ45 jack with integrated LEDs, filters and line transformers, and a voltage level shifter for the SPI interface to communicate with the Arduino.

MISO is the output data of the slave device and the input of Arduino, while MOSI is the opposite; SCK is the clock that marks the two-way communication on the SPI bus and RESET the reset line, which is also connected to a button that allows you to reset the Ethernet interface, if necessary, manually. The digital D10 and D2 lines of Arduino are used, respectively, for the control of CS (Chip Select, active logic zero) and the reading of INT.

U3B is used to adapt the logic levels 0/3, 3 V to those of Arduino 0/5 V. The ENC28J60 operates with a clock of 25 MHz, defined by the quartz Q1 connected between the pins 23 and 24; the capacitor connected to pin VCAP filters the output voltage (2. 5 V) of the internal controller and should preferably be of the type low ESR (low series resistance parasite).

The resistor connected to RBIAS is used to bias the LAN transceiver that is part of the pin TPIN + / and TPOUT + / -. We conclude the analysis of the circuit diagram of the shield with the power that is drawn by Arduino 5V and Vin through the strip: the first provides the 5 volts continuous stabilized points of the circuit that require them (basically the 74HC125 and the resistance of pull Line-up reset and Chip Select) and the second give power to the integrated regulator U2, which creates the 3.

3 volts needed to power the microcontroller and circuits contained in the RJ45 jack. 🔗 External reference