Embedded Ethernet Module (A3053) Design and Development

© 2025 Kevan Hashemi, Open Source Instruments Inc.


Contents

Design
Development
Q3-2025

Design

[04-AUG-25] All our designs are free and open-sourcde, copyright Open Source Instruments Inc, under the GPL 3.0 license.

Development

Q3-2025

[04-AUG-25] Settle upon MCU and Ethernet PHY. In this HTML page we are trying out a Markdown renderer, which we may or may not employ in new entries. Examine the HTML source code for the markdown script and configuration. We use a dedicated "md" tag for the Markdown fields. If the browser fails to load the converter JavaScript, the HTML will instead replace the "md" with a "pre" field so we can still see the Markdown formatting.

[08-AUG-25] We want the PIC32MZ in TQFP-100 to provide an RMII (Reduced Media Independent Interface), JTAG (four-wire programming of PIC32MZ), ISCP (two-wire programming of PIC32MZ), and an eight-bit external data buse (for communicating with the LWDAQ controller). We will have the PIC32MZ as U1 on the circuit, the LAN8720A Ethernet physical layer as U2, and the MPCIE connector as P1. Here are the required connctions between U1 and U2 for the RMII.

PIC32MZ Signal U1 Pin LAN8720A Signal U2 Pin
REFCLKI / RD0U1-71REFCLKOU2-14
ETXD0 / RG8U1-12TXD0U2-17
ETXD1 / RG9U1-16TXD1U2-18
ETXEN / RD3U1-78TXENU2-16
ERXD0 / RD9U1-68RXD0U2-8
ERXD1 / RD10U1-69RXD1U2-7
ECRSDV / RD2U1-77CRS_DVU2-11
EMDC / RD11U1-70MDCU2-3
EMDIO / RF3U1-56MDIOU2-12
AERXERR / RG15U1-1RXERU2-10
Table: PIC32MZ connections to the LAN8720A Ethernet physical layer. We give the special function name and short name for the PIC32MZ pin.

The LAN8720A requires /RESET on its nRST input, U2-15, which arrives on the board through mPCIe pin P1-16. One way to generate timing is to connect a 25-MHz cristal across XTAL1 and XTAL2, which are U2-5 and U2-4 respectively. But to get the oscillator to work, we have to find by experiment the values of two load capacitors for these pins, to match the crystal. So we will instead introduce U3, a 25-MHz oscillator, and connect it to U1-5, leaving U1-4 open circuit. The connections from U2 to the RJ-45 connector take place through the mPCIe connector.

We complete our pin assignments for the mPCIe connector. We route unused, multi-purpose GPIOs from the PIC32MZ to all the connections on the mPCIe connector that have any kind of signal function on the RCM6700. For those pins on the mPCIe that we have names for in our motherboard schematics, we use the PIC32MZ short signal names. For the six programming connections, we give the programming bus name and the short signal name. These signals are PGC and PGC for the ICSP bus and TCK, TMS, TDI, and TDO for the JTAG bus.

A3053A Signal RCM6700 Signal mPCIe Pin
0VGNDP1-1
+3V3+3.3 VP1-2
U2-21, TXPTx+P1-3
U2-20, TXNTx−P1-4
U2-23, RXPRx+P1-5
U2-22, RXNRx−P1-6
U2-3, LINKLNKP1-7
+3V3+2.5 VP1-8
U1-97, RG13PE0P1-9
U1-2, RA5PE1P1-10
U1-10, RG6PE2P1-11
U1-82, RD5PE3P1-12
U1-11, RG7PE5P1-13
U1-81, RD4PE6P1-14
U1-18, RE5PE7P1-15
U1-15, /MCLR/RESET_INP1-16
U1-19, RE9PE7P1-17
U1-20, RB5PD0P1-18
U1-21, RB4PD1P1-19
U1-22, RB3PD2P1-20
U1-23, RB2PC0P1-21
U1-24, RB1PC1P1-22
U1-25, RB0PD3P1-23
U1-26, RB6PC2P1-24
U1-27, RB7PC3P1-25
U1-32, RB8PC4P1-26
U1-33, RB9PC5P1-27
U1-15, /MCLR/RESETP1-28
U1-6, RC1IA0P1-29
U1-7, RC2IA1P1-30
U1-8, RC3IA2P1-31
U1-9, RC4IA3P1-32
U1-72, RC13IA4P1-33
U1-73, RC14IA5P1-34
U1-91, RE0PA0P1-35
U1-91, RE1PA1P1-36
U1-98, RE2PA2P1-37
U1-99, RE3PA3P1-38
U1-100, RE4PA4P1-39
U1-3, RE5PA5P1-40
U1-4, RE6PA6P1-41
U1-5, RE7PA7P1-42
U1-28, RA9/IORDP1-43
+3V3VBAT_EXTP1-44
U1-40, TDO/RF12/IOWRP1-45
U1-76, PGC/RD1PB1P1-46
U1-78, PGD/RD3STATUSP1-47
U1-17, TMS/RA0PC6P1-48
U1-39, TDI/RF13SMODEP1-49
U1-38, TCK/RA1PC7P1-50
0VGNDP1-51
+3V3+3.3 VP1-52
Table: PIC32MZ and RCM6700 connections to mPCIe Pins. Negative-true signals prefixed by forward slash.

We consider whether we can program the PIC32MZ from an RCM6700 mother board using the mother board's 2×5 0.05" rectangular plug. We have the ICSP programming lines PGC and PGD

PIC32MZ Signal mPCIe Pin 2×5 Header Pin
PGD478
PGC463
MCLR165
VDD524
GND512
Table: ICSP Programming Bus on the RCM6700 Mother Boards Programming Plug.