-
Notifications
You must be signed in to change notification settings - Fork 30
Home
Juraj Andrassy edited this page Sep 22, 2020
·
10 revisions
EthernetENC is the Ethernet library for Microchip's ENC28J60 network controller. The documentation of Arduino Ethernet library applies for class and functions descriptions.
EthernetENC is a modern version of the UIPEthernet library. The modernization includes:
- support of many Arduino architectures by using the architecture specific Arduino SPI library
- SPI transactions to share the SPI bus with devices with different communication settings
- requested SPI speed is 20 MHz - maximum for the ENC. The SPI library evaluates the speed according to MCU capabilities. For example for a 16 MHz AVR it is 8 MHz, but for ARM MCUs it is the requested 20 MHz.
- in blocking functions calls yield() for scheduling libraries or RTOS
- functions added for Ethernet 2.0 API
- Ethernet.init() to set the CS pin
- Ethernt.hardwareStatus() and linkStatus()
- EthernetServer.accept()
- implements availableForWrite() for EthernetClient
- implements EthernetClient.flush() to send the packet immediately
- compatible include file names Ethernet.h, EthernetClient.h, EthernatServer.h and EthernetUdp.h. Including EthernetENC.h in main ino file ensures EtnernetENC library is used. Libraries including Ethernet.h will use EthernetENC instead of Ethernet library.
- Arduino 1.5 library format built with dot_a_linkage option for optimal build result
EthernetENC is larger then the Arduino Ethernet library, because it must handle the TCP stack (Wiznet chips have the TCP stack in firmware). It takes more flash and more dynamic memory, but it still can be used on Uno/Nano and Leonardo/Micro. If UDP, DHCP and DNS are not required there is a setting which makes the library smaller. There are some other settings to set the balance between performance and memory consumption.