Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use ENC28J60 Ethernet Module: Examples, Pinouts, and Specs

Image of ENC28J60 Ethernet Module
Cirkit Designer LogoDesign with ENC28J60 Ethernet Module in Cirkit Designer

Introduction

The ENC28J60 Ethernet Module is a versatile network communication module that allows microcontrollers to connect to an Ethernet network. It is based on the ENC28J60, a standalone Ethernet controller with an industry-standard Serial Peripheral Interface (SPI). This module is commonly used in embedded systems for network communication, enabling devices to access the Internet or communicate on a local network. It is particularly popular in the DIY and hobbyist community for its ease of use with platforms like Arduino.

Explore Projects Built with ENC28J60 Ethernet Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
STM32F4 and ENC28J60 Ethernet-Enabled Microcontroller Project
Image of youssef: A project utilizing ENC28J60 Ethernet Module in a practical application
This circuit integrates an STM32F4 BlackPill microcontroller with an ENC28J60 Ethernet Board to enable Ethernet connectivity. The microcontroller communicates with the Ethernet board via SPI, with connections for power, ground, and SPI signals (SI, SO, SCK, and CS). The provided code is a basic template for further development.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and W5500 Ethernet Module Controlled 8-Channel Relay
Image of ESP32 38Pin 8 Channel Relay USB-C: A project utilizing ENC28J60 Ethernet Module in a practical application
This circuit enables Ethernet connectivity and device control through an ESP32 microcontroller. It uses the W5500 Ethernet module for network communication and controls an 8-channel relay module for switching external devices or loads.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Environmental Monitoring and Home Automation System with Ethernet Connectivity
Image of ESP32 38Pin 3Phase Air Conditioner USB-C: A project utilizing ENC28J60 Ethernet Module in a practical application
This circuit is designed for environmental monitoring and home automation, featuring an ESP32 microcontroller connected to a W5500 Ethernet module, DHT22 and Adafruit SHTC3 sensors for temperature and humidity readings, a ZMPT101B module for voltage sensing, and a 4-channel relay for controlling external devices. Network connectivity enables remote data access and control functions.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Environmental Monitoring System with Ethernet Connectivity
Image of ESP32 38Pin USBMicro: A project utilizing ENC28J60 Ethernet Module in a practical application
This circuit features an ESP32 microcontroller interfaced with a W5500 Ethernet module for network connectivity, a DHT22 sensor for measuring temperature and humidity, and an Adafruit SHTC3 sensor for additional temperature and humidity readings. The ZMPT101B module is connected to the ESP32 for voltage measurement in an AC power line. The ESP32 manages data collection from the sensors and communicates with the Ethernet module, likely for data logging or remote monitoring purposes.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ENC28J60 Ethernet Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of youssef: A project utilizing ENC28J60 Ethernet Module in a practical application
STM32F4 and ENC28J60 Ethernet-Enabled Microcontroller Project
This circuit integrates an STM32F4 BlackPill microcontroller with an ENC28J60 Ethernet Board to enable Ethernet connectivity. The microcontroller communicates with the Ethernet board via SPI, with connections for power, ground, and SPI signals (SI, SO, SCK, and CS). The provided code is a basic template for further development.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP32 38Pin 8 Channel Relay USB-C: A project utilizing ENC28J60 Ethernet Module in a practical application
ESP32 and W5500 Ethernet Module Controlled 8-Channel Relay
This circuit enables Ethernet connectivity and device control through an ESP32 microcontroller. It uses the W5500 Ethernet module for network communication and controls an 8-channel relay module for switching external devices or loads.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP32 38Pin 3Phase Air Conditioner USB-C: A project utilizing ENC28J60 Ethernet Module in a practical application
ESP32-Based Environmental Monitoring and Home Automation System with Ethernet Connectivity
This circuit is designed for environmental monitoring and home automation, featuring an ESP32 microcontroller connected to a W5500 Ethernet module, DHT22 and Adafruit SHTC3 sensors for temperature and humidity readings, a ZMPT101B module for voltage sensing, and a 4-channel relay for controlling external devices. Network connectivity enables remote data access and control functions.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ESP32 38Pin USBMicro: A project utilizing ENC28J60 Ethernet Module in a practical application
ESP32-Based Environmental Monitoring System with Ethernet Connectivity
This circuit features an ESP32 microcontroller interfaced with a W5500 Ethernet module for network connectivity, a DHT22 sensor for measuring temperature and humidity, and an Adafruit SHTC3 sensor for additional temperature and humidity readings. The ZMPT101B module is connected to the ESP32 for voltage measurement in an AC power line. The ESP32 manages data collection from the sensors and communicates with the Ethernet module, likely for data logging or remote monitoring purposes.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Internet of Things (IoT) devices
  • Home automation systems
  • Networked sensors and data logging
  • Remote device control and monitoring

Technical Specifications

Key Technical Details

  • Voltage Supply: 3.3V
  • Current Consumption: 180 mA (typical)
  • Operating Temperature Range: -40°C to +85°C
  • Communication Interface: SPI
  • Speed: 10 Mbps (Ethernet)
  • Buffer Size: 8 KB

Pin Configuration and Descriptions

Pin Number Pin Name Description
1 VCC 3.3V power supply input
2 GND Ground
3 INT Interrupt output (active low)
4 WOL Wake on LAN input (active low)
5 SCK SPI clock input
6 SI SPI data input
7 SO SPI data output
8 CS SPI chip select (active low)
9 RESET Reset input (active low)

Usage Instructions

How to Use the Component in a Circuit

  1. Power Supply: Connect the VCC pin to a 3.3V source and the GND pin to the ground.
  2. SPI Interface: Connect the SCK, SI, SO, and CS pins to the corresponding SPI pins on your microcontroller.
  3. Reset: Connect the RESET pin to a digital pin on your microcontroller for software reset capability.
  4. Interrupts: (Optional) Connect the INT pin to an interrupt-capable pin on your microcontroller if you wish to use interrupt-driven communication.
  5. Wake on LAN: (Optional) Connect the WOL pin if you require the Wake on LAN feature.

Important Considerations and Best Practices

  • Ensure that the power supply is 3.3V, as higher voltages can damage the module.
  • Use a level shifter if your microcontroller operates at 5V logic levels.
  • Keep the SPI clock speed within the limits specified by the ENC28J60 datasheet.
  • Use a proper decoupling capacitor close to the VCC and GND pins to minimize power supply noise.
  • For stable operation, consider using a dedicated SPI bus for the module to avoid conflicts with other SPI devices.

Example Code for Arduino UNO

#include <SPI.h>
#include <Ethernet.h>

// MAC address for the Ethernet shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Initialize the Ethernet client library
EthernetClient client;

void setup() {
  // Start the Ethernet connection
  Ethernet.begin(mac);
}

void loop() {
  // Code to handle Ethernet communication
}

Code Comments

  • The Ethernet.h library is used to interface with the ENC28J60 module.
  • The mac array holds the MAC address for the Ethernet module.
  • The EthernetClient object is used for network communication.
  • Ethernet.begin(mac) initializes the Ethernet module with the specified MAC address.

Troubleshooting and FAQs

Common Issues

  • No Network Connection: Ensure that the wiring is correct and the module is properly powered.
  • SPI Communication Failure: Check the SPI connections and ensure that the correct pins are used.
  • Module Not Responding: Perform a hardware reset or check the power supply.

Solutions and Tips for Troubleshooting

  • Verify that the ENC28J60 module is not overheating.
  • Check for soldering issues on the module pins.
  • Ensure that the Ethernet cable is properly connected and functioning.
  • Use network diagnostic tools to check for connectivity issues.

FAQs

Q: Can the ENC28J60 module be used with a 5V microcontroller? A: Yes, but a level shifter is required for the SPI lines to ensure proper logic level conversion.

Q: Is it possible to use multiple ENC28J60 modules with one microcontroller? A: Yes, you can use multiple modules by assigning different chip select (CS) pins for each module.

Q: How do I assign a static IP address to the ENC28J60 module? A: You can assign a static IP using the Ethernet.begin(mac, ip) function, where ip is the desired static IP address.

Q: What library should I use for the ENC28J60 with an Arduino? A: The standard Ethernet library may not support the ENC28J60. Use a compatible library like UIPEthernet or EtherCard for Arduino.