Design | ||
Development | ||
|
[04-AUG-25] All our designs are free and open-sourcde, copyright Open Source Instruments Inc, under the GPL 3.0 license.
[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 / RD0 | U1-71 | REFCLKO | U2-14 |
ETXD0 / RG8 | U1-12 | TXD0 | U2-17 |
ETXD1 / RG9 | U1-16 | TXD1 | U2-18 |
ETXEN / RD3 | U1-78 | TXEN | U2-16 |
ERXD0 / RD9 | U1-68 | RXD0 | U2-8 |
ERXD1 / RD10 | U1-69 | RXD1 | U2-7 |
ECRSDV / RD2 | U1-77 | CRS_DV | U2-11 |
EMDC / RD11 | U1-70 | MDC | U2-3 |
EMDIO / RF3 | U1-56 | MDIO | U2-12 |
AERXERR / RG15 | U1-1 | RXER | U2-10 |
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 |
---|---|---|
0V | GND | P1-1 |
+3V3 | +3.3 V | P1-2 |
U2-21, TXP | Tx+ | P1-3 |
U2-20, TXN | Tx− | P1-4 |
U2-23, RXP | Rx+ | P1-5 |
U2-22, RXN | Rx− | P1-6 |
U2-3, LINK | LNK | P1-7 |
+3V3 | +2.5 V | P1-8 |
U1-97, RG13 | PE0 | P1-9 |
U1-2, RA5 | PE1 | P1-10 |
U1-10, RG6 | PE2 | P1-11 |
U1-82, RD5 | PE3 | P1-12 |
U1-11, RG7 | PE5 | P1-13 |
U1-81, RD4 | PE6 | P1-14 |
U1-18, RE5 | PE7 | P1-15 |
U1-15, /MCLR | /RESET_IN | P1-16 |
U1-19, RE9 | PE7 | P1-17 |
U1-20, RB5 | PD0 | P1-18 |
U1-21, RB4 | PD1 | P1-19 |
U1-22, RB3 | PD2 | P1-20 |
U1-23, RB2 | PC0 | P1-21 |
U1-24, RB1 | PC1 | P1-22 |
U1-25, RB0 | PD3 | P1-23 |
U1-26, RB6 | PC2 | P1-24 |
U1-27, RB7 | PC3 | P1-25 |
U1-32, RB8 | PC4 | P1-26 |
U1-33, RB9 | PC5 | P1-27 |
U1-15, /MCLR | /RESET | P1-28 |
U1-6, RC1 | IA0 | P1-29 |
U1-7, RC2 | IA1 | P1-30 |
U1-8, RC3 | IA2 | P1-31 |
U1-9, RC4 | IA3 | P1-32 |
U1-72, RC13 | IA4 | P1-33 |
U1-73, RC14 | IA5 | P1-34 |
U1-91, RE0 | PA0 | P1-35 |
U1-91, RE1 | PA1 | P1-36 |
U1-98, RE2 | PA2 | P1-37 |
U1-99, RE3 | PA3 | P1-38 |
U1-100, RE4 | PA4 | P1-39 |
U1-3, RE5 | PA5 | P1-40 |
U1-4, RE6 | PA6 | P1-41 |
U1-5, RE7 | PA7 | P1-42 |
U1-28, RA9 | /IORD | P1-43 |
+3V3 | VBAT_EXT | P1-44 |
U1-40, TDO/RF12 | /IOWR | P1-45 |
U1-76, PGC/RD1 | PB1 | P1-46 |
U1-78, PGD/RD3 | STATUS | P1-47 |
U1-17, TMS/RA0 | PC6 | P1-48 |
U1-39, TDI/RF13 | SMODE | P1-49 |
U1-38, TCK/RA1 | PC7 | P1-50 |
0V | GND | P1-51 |
+3V3 | +3.3 V | P1-52 |
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 |
---|---|---|
PGD | 47 | 8 |
PGC | 46 | 3 |
MCLR | 16 | 5 |
VDD | 52 | 4 |
GND | 51 | 2 |