CM3-Panel technical documentation Buy on-line

How to add an SPI ethernet interface

How to wire and configure an SPI Ethernet adapter based on the Microchip ENC28J60 like the Mikroe ETH click board or TZT ethernet adapter.

Mikroe ETH click board

Wirings

ENC28J60  |  CM3-Panel  
----------|-----------------
     RST# | NC
     INT# | GPIO40
      CS# | SPI0_CE0 (GPIO36)
      SCK | SPI0_SCLK (GPIO39)
      SDO | SPI0_MISO (GPIO37)
      SDI | SPI0_MOSI (GPIO38)
      3V3 | 3V3
      GND | GND

Save this file in /boot/overlays/enc28j60-cm3panel.dts:

// Overlay for the Microchip ENC28J60 Ethernet Controller
// Acme Systems CM3-Panel 
// http://www.acmesystems.it/CM3-PANEL

/dts-v1/;
/plugin/;

/ {
    compatible = "brcm,bcm2708";

    fragment@0 {
        target = <&spi0>;
        __overlay__ {
            /* needed to avoid dtc warning */
            #address-cells = <1>;
            #size-cells = <0>;

            status = "okay";

            eth1: enc28j60@0{
                compatible = "microchip,enc28j60";
                reg = <0>; /* CE0 */
                pinctrl-names = "default";
                pinctrl-0 = <&eth1_pins>;
                interrupt-parent = <&gpio>;
                interrupts = <40 0x2>; /* falling edge */
                spi-max-frequency = <12000000>;
                status = "okay";
            };
        };
    };

    fragment@1 {
        target = <&spidev0>;
        __overlay__ {
            status = "disabled";
        };
    };

    fragment@2 {
        target = <&gpio>;
        __overlay__ {
            eth1_pins: eth1_pins {
                brcm,pins = <40>;
                brcm,function = <0>; /* in */
                brcm,pull = <0>; /* none */
            };
        };
    };

    __overrides__ {
        int_pin = <&eth1>, "interrupts:0",
                  <&eth1_pins>, "brcm,pins:0";
        speed   = <&eth1>, "spi-max-frequency:0";
    };
};

Compile it by typing:

sudo dtc -@ -I dts -O dtb -o /boot/overlays/enc28j60-cm3panel.dtbo /boot/overlays/enc28j60-cm3panel.dts 

Add this line in /boot/config.txt and reboot:

dtoverlay=spi-gpio35-39
dtoverlay=enc28j60-cm3panel

Disadvantages of this solution

The Microchip ENC28J60 doesn't have a MAC address so you have to configure it by software. To avoid this problem the right chip is ENC424J600.

Sergio Tanzilli
System designer, webmaster and Acme Systems co-founder
Personal email: tanzilli@acmesystems.it
Webpages: https://www.acmesystems.it - https://www.tanzolab.it
Github repositories: https://github.com/tanzilli and https://github.com/acmesystems
Telegram group dedicated to the Acme Systems boards: https://t.me/acmesystemssrl

CM3-Panel technical documentation Buy on-line

Bruna Mandolino