Skip to content

Limitations

Juraj Andrassy edited this page Mar 24, 2024 · 5 revisions

ENC28J60 only receives and sends raw network packets. All the logic to process these packets must be in the MCU. Some of these packets are for the sketch, but TCP/IP requires many small service packets for address resolving and delivery confirmation to be send and received. This is handled by the library.

The library uses every call of a library's function to handle the network traffic. If the sketch doesn't call any function of the library for some time, the network communication fails. The solution is in Examples.

To reduce the load, ENC28J60 can filter out packets with very simple rules and don't store them for processing. This way the library filters out broadcast packets and allows only packets with the given MAC address. Other filter is set to allow ARP broadcast. ARP is a protocol to get MAC address for IP address so the devices should answer at least to ARP broadcast requests for its IP address.

DHCP protocol used to get an IP address and other network settings with Ethernet.begin(mac); can get the response with unicast (to MAC address) or as broadcast (sent to all). With filter on broadcast packets the library can't use the broadcast method. But the unicast method doesn't work on some network setups.

UDP.beginMulticast is not supported, because the uIP stack doesn't support multicast.

EthernetServer in EthernetENC library doesn't support writing to all clients because it takes flash and RAM (16 bytes) and has little use. This function is in extended EthernetServerPrint class.

Clone this wiki locally