wolfSSL install

Some tips on hooking up wired-ethernet ENC28J60 to the ESP32.

I found this helpful review for the Hiletgo Enc28j60 reseau LAN Ethernet Module on Amazon:

MOSI on the board is ST (one would expect SI), the interrupt pin is LNT (again, INT is to be expected), there’s a Q3 pin whose functionality is lost on me because the pinout on HiLetgo’s schematic doesn’t specify it, there’s a second ground pin, and while the power pin specifies 5V, this board should not operate with a 5V input unless there’s some unknown level shifter within the board. The main problem I had on startup was the unstable oscillator. I realized later that the power and ground pins on the PCB were shorted. As soon as I used the other ground on the board, the issue was solved and the chip operated as is specified on the datasheet. It’s a really weird solution to a really simple problem that wouldn’t happen had there been sufficient quality control.

See also the Microchip ENC28J60 Data Sheet

This Hiletgo ENC28J60 schematic from Amazon: HiLetGo_ENC28J60_schematic.jpg

There are at least two different ENC28J60 boards, each with completely different pins and labeling. One is obvous, the other no so much. Fortunately [gildas] posted some useful information on the arduino site , see also njh/EtherCard regarding the second pinout:

Arduino ESP32 alt name label label alt name ESP32 arduino
5V 5V 5V 5V GND GND GND GND
  GPIO4 INT LNT CLK ? ? ?
Pin 12 GPIO25 SPI_MISO SO WOL WakeOnLan    
Pin 13 GPIO19 SCK SCK ST SI/SPI_MOSI GPIO23 Pin 11
    Reset RST CS SPI_CS GPIO22 Pin 10
  3V3 3.3v Q3 GND GND GND  

Use either 5V/GND OR Q3/GND (3.3v) - but not both!

Note active low pins: RESET, CS, INT

ESP32 JTAG Pinout Wiring

TDI  -> GPIO12
TCK  -> GPIO13
TMS  -> GPIO14
TDO  -> GPIO15
TRST -> EN / RST (Reset)
GND  -> GND

Segger JTAG Pin Connections

ENC28J60 Pinout Wiring

From Espressif Pin Assignment example:

SPI_CLK   -> GPIO19	
SPI_MOSI  -> GPIO23	
SPI_MISO  -> GPIO25	
SPI_CS    -> GPIO22	
Interrupt -> GPIO4	

JTAG

ESP32 Name Pin Pin Name ESP32
3v3 VTref 1 2 NC GND
EN/RST nTRST 3 4 GND GND
GPIO12 TDI 5 6 GND GND
GPIO14 TMS 7 8 GND GND
GPIO13 TCK 9 10 GND GND
GND RTCK 11 12 GND GND
GPIO15 TDO 13 14 GND* NC
NC RESET 15 16 GND* NC
NC DBGRQ 17 18 GND* NC
NC 5v out 19 20 GND* NC

ENC28J60 Ethernet (flavor #1)

GPIO ENC28J60 Color
GPIO19 SPI_CLK gray
GPIO23 SPI_MOSI orange
GPIO25 SPI_MISO yellow
GPIO22 SPI_CS white
GPIO4 Interrupt brown

JTAG

TDI  -> GPIO12
TCK  -> GPIO13
TMS  -> GPIO14
TDO  -> GPIO15                              
TRST -> EN / RST (Reset)
GND  -> GND

Alternate JTAG

name color
vt red
tdo purple
tck bkue
tms yellow
tdi orange
trst gray
vt red