EMAC driver for the ENC28J60 Ethernet controller. This is a simplified fork of https://github.com/tobiasjaster/ENC28J60-EMAC-Driver published by Tobias Jaster.

Dependents:   MQTT_Hello MQTT_HelloENC28J60

EMAC driver for the ENC28J60 Ethernet controller

https://os.mbed.com/media/uploads/hudakz/enc28j60_module01.jpg

This is a fork (the INT and RST pins are not used) of the ENC28J60-EMAC driver published by Tobias Jaster at

https://github.com/tobiasjaster/ENC28J60-EMAC-Driver

Usage:

  • Connect the ENC28J60 module to the Mbed board as follows:

https://os.mbed.com/media/uploads/hudakz/enc28j60-emac.png

  • Import (add) this ENC28J60-EMAC library to your program.
  • Add a "mbed_app.json" file with the following content to the root directory of your program:

    {
        "target_overrides": {
            "*": {
                "platform.callback-nontrivial": true,
                "enc28j60-emac.mosi":  "D11",
                "enc28j60-emac.miso":  "D12",
                "enc28j60-emac.sck" :  "D13",
                "enc28j60-emac.cs"  :  "D10"
            }
        }
    }
  • Replace "D11", ..., "D10" with the actual pin names you selected on the Mbed board to be used for the SPI communication.
  • To set the MAC address define an array with the desired address bytes and call the "set_hwaddr(mac)" function before calling the network interface "connect" function.

For example:

    const uint8_t       MAC[6] = { 0, 1, 2, 3, 4, 5 };
    EthernetInterface   net;
 
    int main()
    {
        net.get_emac().set_hwaddr(MAC);             // set MAC address
        if (net.connect() != 0) {
            printf("Error: Unable to connect to the network.\n");
            return -1;
        }
     ...
Revision:
0:b599e748252c
diff -r 000000000000 -r b599e748252c README.md
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Fri Mar 26 15:58:28 2021 +0000
@@ -0,0 +1,64 @@
+# mbed OS Ethernet MAC (EMAC) driver for the ENC28J60 Ethernet controller
+  and modules equipped with such chip.
+
+This is a fork (simplified version) of the ENC28J60-EMAC driver published by Tobias Jaster at
+
+https://github.com/tobiasjaster/ENC28J60-EMAC-Driver
+
+Usage:
+
+1.  Connect the ENC28J60 module to the Mbed board as follows:
+
+
+    -------------      SPI interface     --------------
+                 |                      |
+            MOSI |----------------------| MOSI
+                 |                      |
+            MISO |----------------------| MISO
+    Mbed         |                      |       ENC28J60
+    board   SCK  |----------------------| SCK   module
+                 |                      |
+            CS   |----------------------| CS
+                 |                      |
+            GND  |----------------------| GND
+                 |                      |
+    -------------                        --------------
+
+2.  Import (add) this ENC28J60-EMAC library to your program.
+
+3.  Add a "mbed_app.json" file with the following content
+    to the root directory of your program:
+
+    {
+        "target_overrides": {
+            "*": {
+                "platform.callback-nontrivial": true,
+                "enc28j60-emac.mosi":  "D11",
+                "enc28j60-emac.miso":  "D12",
+                "enc28j60-emac.sck" :  "D13",
+                "enc28j60-emac.cs"  :  "D10"
+            }
+        }
+    }
+
+   Replace "D11", ... with the actual pin names you selected on the Mbed board
+   to be used for the SPI communication.
+
+4. To set the MAC address define an array with the desired address bytes and
+   call the "set_hwaddr(mac)" function before calling the network interface "connect" function.
+
+   For example:
+
+    const uint8_t       MAC[6] = { 0, 1, 2, 3, 4, 5 };
+    EthernetInterface   net;
+
+    int main()
+    {
+        net.get_emac().set_hwaddr(MAC);             // set MAC address
+        if (net.connect() != 0) {
+            printf("Error: Unable to connect to the network.\n");
+            return -1;
+        }
+
+        ...
+