AED 26.25
Description
The ENC28J60 Ethernet LAN Network Module is an Ethernet controller designed to seamlessly integrate with various development boards through the SPI protocol. Leveraging the renowned Microchip ENC28J60 Ethernet IC, this module excels in its dual role as both a server and a client, making it a valuable addition to your network connectivity projects. With its compatibility across a wide range of microcontrollers, this Ethernet LAN module offers a convenient and efficient solution for establishing network connections.
Package Includes:
- 1 x Ethernet Network Module ENC28J60 (Small Board)
Features:
- Complies with IEEE 802.3 specifications and employs packet filtering mechanisms to control incoming data packets.
- Utilizes an internal DMA module for high-speed data throughput and hardware-supported IP checksum calculation.
- Communication with the main controller is achieved through two interrupt pins and SPI, with a data transfer rate of up to 10 Mb/s.
- Includes dedicated pins for connecting LEDs to indicate network activity status.
- Supports a 25 MHz clock and features a clock output pin with a programmable prescaler.
Ethernet Controller Features:
- IEEE 802.3 compatible Ethernet controller.
- Integrates MAC (Media Access Control) and 10 BASE-T PHY (Physical Layer).
- Equipped with a receiver and collision suppression circuit.
- Supports automatic polarity detection and correction for 10BASE-T terminals.
- Operates in both full-duplex and half-duplex modes.
- Programmable to automatically retransmit in the event of a conflict.
- Offers programmable padding and CRC generation.
- Supports automatic rejection of error packets.
- SPI interface with a maximum speed of 10 Mb/s.
Buffer:
- Features 8KB send/receive data packet dual-port SRAM.
- Allows configuration of transmit/receive buffer sizes.
- Utilizes hardware-managed cyclic receiving FIFO.
- Supports random and sequential access of byte width with address auto-increment.
- Includes internal DMA for rapid data transfer.
- Hardware-supported IP checksum calculation.
Media Access Controller (MAC) Features:
- Supports unicast, multicast, and broadcast packets.
- Programmable data packet filtering and wake-up capability based on logical AND and OR results of various events.
- Supported events include unicast destination address, multicast address, broadcast address, Magic Packet, group target address defined by a 64-bit hash table, and up to 64 bytes of programmable pattern matching (user-defined offset).
- Features a loopback mode.
Physical Layer (PHY) Characteristics:
- Incorporates a shaping output filter.
- Offers a loopback mode.
Description:
The ENC28J60 Ethernet LAN Network Module is an Ethernet controller engineered to seamlessly integrate with a wide range of development boards through the SPI protocol. This module is powered by the Microchip ENC28J60 Ethernet IC, a well-established industry leader known for its reliability and performance. What sets this module apart is its ability to function both as a server and a client, making it an invaluable asset for a variety of network connectivity projects. Designed with flexibility in mind, this Ethernet LAN module exhibits compatibility with an extensive array of microcontrollers. It serves as a convenient and efficient solution for establishing and managing network connections, regardless of your specific hardware or application. the ENC28J60 Ethernet LAN Network Module incorporates both the MAC (Media Access Control) and 10 Base-T PHY (Physical Layer) components into its design. This integration streamlines network connectivity and reduces complexity. it offers the flexibility of supporting both full and half-duplex modes, enabling adaptability in network communication to suit a diverse range of project needs. With a high-speed SPI interface capable of clock speeds of up to 20 MHz, efficient data exchange is guaranteed, enhancing overall system performance. The module's network interface is fortified with an RJ45 Connector featuring the model HR911105A. This ensures a standard and reliable connection to Ethernet networks, promising consistent and dependable connectivity.
Principle of Work:
The ENC28J60 Ethernet LAN Network Module functions as an Ethernet controller that manages the lower layers of Ethernet communication, while an external microcontroller handles higher-level tasks such as data processing, network protocol handling, and interaction with the user or other network devices. Together, they form a powerful and flexible solution for network connectivity in various applications:
Internal Operation:
- Ethernet Chip (ENC28J60-I/SO): The heart of the module is the ENC28J60 Ethernet chip. It serves as the core controller for all Ethernet communication. This chip handles the data link layer (Layer 2) functions, including packet framing, collision detection, and MAC address management.
- Crystal Oscillator (25MHz): The module incorporates a high-quality 25MHz crystal oscillator. This crystal provides precise timing for data transmission and reception, ensuring accurate synchronization with the network.
- PHY (Physical Layer) Component: Integrated into the ENC28J60 is the PHY component, responsible for handling the physical layer (Layer 1) of Ethernet communication. It manages tasks such as signal encoding and decoding and interfaces with the physical network medium, typically through an RJ45 connector.
- SPI Interface: The module communicates with external devices, such as microcontrollers, via an SPI (Serial Peripheral Interface) interface. This interface allows for bidirectional data transfer and control of the ENC28J60's functions.
- LED Indicator: The module features a power LED indicator, which provides visual feedback on the operational status of the module. This LED lights up when the module is powered and ready for operation.
Integration with MCU:
- Microcontroller (MCU): To control and communicate with the ENC28J60 module, you'll need an MCU, such as an Arduino or a microcontroller development board.
- SPI Communication: The MCU communicates with the ENC28J60 module using the SPI interface. This involves sending and receiving data packets and control commands through SPI pins (MISO, MOSI, SCK, and CS).
- Driver and Software: To interact with the ENC28J60 module, the MCU typically runs software or a driver that manages Ethernet communication. This software handles tasks like configuring network settings, transmitting and receiving data packets, and managing network protocols.
- Initialization: At the start of operation, the MCU initializes the ENC28J60 module, configuring settings like MAC address, network mode (server or client), and network parameters (IP address, subnet mask, etc.).
- Data Transfer: The MCU can send data packets to the ENC28J60 for transmission over the network. It can also receive incoming data packets from the network via the module.
- Ethernet Protocols: The MCU can implement various Ethernet protocols, such as TCP/IP or UDP, to enable network communication with other devices or servers on the network.
- Status Monitoring: The MCU can monitor the status of the ENC28J60 module through the power LED indicator and can respond to any network-related events or errors.
Pinout of the Module:
Pin Name | Description | Notes |
---|---|---|
VCC | Power Supply (3.3V) | Connect to a 3.3V power source. |
GND | Ground | Connect to the common ground (GND) reference. |
SCK | Serial Clock (SCK) | Used for clocking data during SPI communication. |
MISO | Master In Slave Out (MISO) | Transmits data from the module to the microcontroller. |
MOSI | Master Out Slave In (MOSI) | Sends data from the microcontroller to the module. |
CS | Chip Select (CS) | Used to select and enable the module for communication. Selectable with the appropriate configuration. |
Applications:
- IoT Devices: It's used in Internet of Things (IoT) projects to enable IoT devices to communicate over Ethernet networks, allowing for remote monitoring and control.
- Home Automation: The module can be integrated into home automation systems, allowing users to control and monitor appliances and devices remotely through a network.
- Industrial Automation: In industrial settings, it's employed for data acquisition, control systems, and monitoring of machinery and processes.
- Robotics: Ethernet connectivity is essential in robotics for real-time communication and control, making the module suitable for robotic applications.
- Security Systems: It can be used in security cameras, access control systems, and alarms, enabling remote surveillance and management.
- Data Logging: The module is useful for data logging applications, collecting and transmitting data from sensors to a central database or server.
- Embedded Web Servers: It's employed to create embedded web servers, allowing users to access device interfaces through web browsers.
- Networked Sensors: In sensor networks, it enables sensors to send data over Ethernet, facilitating centralized data collection and analysis.
- Remote Monitoring: It's used for remote monitoring and control of equipment and systems in various industries, such as agriculture and energy management.
- Smart Grids: In smart grid applications, supports communication between smart meters, grid equipment, and central control systems for efficient energy distribution.
- DIY Electronics: Hobbyists and electronics enthusiasts use the module to add network capabilities to their DIY projects, such as home automation or weather stations.
- Educational Projects: It's used in educational settings to teach networking and microcontroller programming, as it provides a practical platform for hands-on learning.
- Remote Sensing: It's employed in environmental monitoring and remote sensing applications, allowing data to be collected and transmitted from remote locations.
Circuit:
ENC28J60 | Arduino Uno | Notes |
---|---|---|
VCC | 3.3V | The VCC pin of the ENC28J60 module should be connected to the 3.3V power supply on the Arduino Uno. Ensure proper voltage matching to avoid damage. |
GND | GND | Connect the GND (ground) pin of the module to any ground (GND) pin on the Arduino Uno for a common ground reference. |
SCK | Pin 13 | The SCK (Serial Clock) pin of the ENC28J60 module should be connected to digital pin 13 on the Arduino Uno. This pin is used for clocking data in and out during SPI communication. |
MISO | Pin 12 | Connect the MISO (Master In Slave Out) pin of the module to digital pin 12 on the Arduino Uno. This pin is used for data transmission from the module to the Arduino. |
MOSI | Pin 11 | The MOSI (Master Out Slave In) pin of the module should be connected to digital pin 11 on the Arduino Uno. This pin is used for sending data from the Arduino to the module. |
CS | Pin 8 | The CS (Chip Select) pin of the module is connected to digital pin 8 on the Arduino Uno. It is used to select and enable the module for communication. Note that the CS pin can be selected or configured as per your requirements using the ether.begin() function in your Arduino code. |
Library:
-
Download the Library Zip:
- Visit the GitHub repository for the EtherCard library: EtherCard GitHub Repository.
- Click the green "Code" button and select "Download ZIP" to download the library as a zip file to your computer.
-
Open Arduino IDE:
- Launch the Arduino IDE on your computer.
-
Install the Library from Zip:
- In the Arduino IDE, click on "Sketch" in the menu bar, then select "Include Library" > "Add .ZIP Library..."
- Browse to the location where you downloaded the EtherCard library zip file and select it.
- Click the "Open" button. The Arduino IDE will install the library from the zip file.
-
Library Installed:
- After installation, you should see a message at the bottom of the Arduino IDE indicating that the library has been successfully installed.
Code:
This code sets up a simple web server on an Arduino with Ethernet connectivity. It serves a static HTML page when accessed through a web browser. Depending on the configuration, it can use either a static IP address or DHCP to obtain an IP address for communication. The code is intended as a basic example of how to use the EtherCard library with the ENC28J60 Ethernet module for web server applications.
#include "EtherCard.h" // Define whether to use a static IP or DHCP #define USE_STATIC_IP 0 #if USE_STATIC_IP // Static IP configuration static byte myip[] = { 192, 168, 1, 200 }; static byte gwip[] = { 192, 168, 1, 1 }; #endif // Ethernet MAC address – should be unique on your network static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 }; // Buffer for TCP/IP communication byte Ethernet::buffer[500]; // HTML page to be served const char page[] PROGMEM = "HTTP/1.0 503 Service Unavailable\r\n" "Content-Type: text/html\r\n" "Retry-After: 600\r\n" "\r\n" "" "" "Service Temporarily Unavailable" " " "" "This service is currently unavailable
" "" "The main server is currently offline.
" "" ""; void setup() { Serial.begin(57600); Serial.println("\n[backSoon]"); // Initialize Ethernet if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println("Failed to access Ethernet controller"); #if USE_STATIC_IP // Use static IP configuration ether.staticSetup(myip, gwip); #else // Use DHCP for IP configuration if (!ether.dhcpSetup()) Serial.println("DHCP failed"); #endif // Print IP, Gateway, and DNS information ether.printIp("IP: ", ether.myip); ether.printIp("GW: ", ether.gwip); ether.printIp("DNS: ", ether.dnsip); } void loop() { // Wait for an incoming TCP packet, but ignore its contents if (ether.packetLoop(ether.packetReceive())) { // Serve the predefined HTML page memcpy_P(ether.tcpOffset(), page, sizeof page); ether.httpServerReply(sizeof page - 1); } }
" "Please try again later." "
-
Library Inclusion: It includes the necessary library, which is
EtherCard.h
. This library provides Ethernet functionality for the ENC28J60 module. -
Configuration: The code allows you to choose between using a static IP address (
USE_STATIC_IP
) or DHCP for IP configuration. -
Static IP Configuration (Optional): If
USE_STATIC_IP
is defined (set to 1), it configures the Arduino with a static IP address (myip[]
) and a gateway IP address (gwip[]
). -
MAC Address Configuration: It sets a unique Ethernet MAC address (
mymac[]
). MAC addresses should be unique on the network. -
Buffer Initialization: It initializes a buffer for TCP/IP communication with a size of 500 bytes.
-
HTML Page Definition: It defines a simple HTML page (
page[]
) that will be served when the Arduino receives an HTTP request. This page displays a "503 Service Unavailable" message with some text. -
Setup Function:
- It initializes the serial communication for debugging.
- Initializes the Ethernet module using the
ether.begin()
function. If initialization fails, it prints an error message. - Depending on whether static IP or DHCP is used, it configures the IP address accordingly.
- It prints the assigned IP, gateway, and DNS addresses for reference.
-
Loop Function:
- It continuously waits for incoming TCP packets using
ether.packetReceive()
. - When a packet is received, it checks if it's an HTTP request by using
ether.packetLoop()
. - If it's an HTTP request, it serves the predefined HTML page as a response.
- The
ether.httpServerReply()
function is used to send the HTML page back to the client.
- It continuously waits for incoming TCP packets using
Technical Details:
- Product Name: ENC28J60 Network Module
- Input Voltage: DC 3.14V-3.45V
- Chip: ENC28J60/SS chip
- Crystal Oscillator: 25MHz
- Network Interface: HR911105A
- Work Temperature: -45℃~85℃
- Work Humidity: 5%~95%RH
- Size: 48.818.512mm
Resources:
Comparisons:
the ENC28J60 is a basic Ethernet module that requires additional software programming for TCP/IP communication and is suitable for simpler projects with lower data rate requirements. The W5500 board, on the other hand, is a more advanced module with a built-in hardware-based TCP/IP stack, higher data rates, and a larger buffer memory. It is better suited for more complex network applications and projects requiring higher performance:
Feature | ENC28J60 (Small Board) | W5500 Board |
---|---|---|
Controller Chip | Microchip ENC28J60 | WIZnet W5500 |
Communication Interface | SPI (Serial Peripheral Interface) | SPI (Serial Peripheral Interface) |
Maximum Data Rate | Up to 10 Mbps | Up to 100 Mbps |
Built-in TCP/IP Stack | No (requires software-based IP stack) | Yes (hardware-based TCP/IP stack) |
Buffer Memory | A limited RAM buffer, may restrict the handling of large data | Larger buffer memory facilitates larger data transfers |
Complexity | More complex software setup for TCP/IP communication | Simplified setup due to built-in TCP/IP stack |
Compatibility | Compatible with various microcontrollers and development boards | Compatible with various microcontrollers and development boards |