I'd like to connect my AVR microcontroller to the Internet.

I tried the enc28j60 ethernet controller, but I faced some problems with it. Besides I've read a lot about it and found it easy to be used within a LAN, it has some problems when connected with the internet, also: it requires large flash-ROM for the TCP/IP and UDP stack and it even takes long time in execution.

So, I need to know:

  • What other methods are there to make the AVR connected to the internet? Or,

  • If someone has a good knowledge about the enc28j60 usage can he give me some help?

  • \$\begingroup\$ Specifically, what do you want to know about the ENC28J60? Have you read the errata? \$\endgroup\$ Mar 16, 2012 at 14:34
  • \$\begingroup\$ iam facing problems with creating a program to use its libraries .. most of projects i found based on atmega88 & 328 ... those ones are not available in my country .. so iam using atmega32 .. when i try to make a prgoram for it .. i face the problem of fre1 prescaling which atmega32 doesn't support, and the generated .hex file doesn't work .. even when i used the mikroc library .. it was disappointing too \$\endgroup\$
    – mina_g
    Mar 16, 2012 at 14:39
  • \$\begingroup\$ If you have something specific you'd like help with, raise it as a new question \$\endgroup\$ Mar 16, 2012 at 15:34

2 Answers 2


The Wiznet 5100 is a popular choice. It's a complete ethernet + TCP/IP solution on a chip providing a serial interface to a microcontroller. Leaving your AVR free to do other tasks.

It's used in the official Arduino Ethernet Shield. http://arduino.cc/en/Main/ArduinoEthernetShield


The Microchip ENC28J60 is a stand-alone ethernet MAC/PHY. It is directly connected to the ethernet pulse transformers on the network side. It takes care of the basic mechanics of sending and receiving ethernet packets. It is low level hardware in that sense, and does not contain a network stack. This is intended to be on a microcontroller that talks to the ENC28J60 via SPI.

I have done projects using the EN28J60, and it works fine. One problem is a bug in the initial negotiation such that it can't tell the switch whether it is using full or half duplex. Fortunately, all recent switches assume full duplex, so setting the ENC28J60 to fixed full duplex has never caused any trouble that I have noticed.

In more recent projects, I have used the PIC 18F67J60 instead. That's a great part in that it has essentially the ENC28J60 built in. You can implement a network device with just a 18F67J60, the pulse transformers, and a RJ-45 jack. It's also faster because communication with the MAC/PHY is internal via mapped registers, not external over SPI.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.