I have:
An Explorer 16/32 development board
A PIC32MZ2048ECH100 PIM
A AC320004-4 - LAN9303 PHY Switch Daughter Board

I am really new to this but have been working my way through the;
PIC32 Family Reference Manual
PIC32MZ Datasheet
LAN9303 Daughter Board Datasheet
This is fairly new to me but so far i have done some small things with the buttons, leds, adc and pwm without any use of harmony.

My goal is to eventually make something that can take some readings, then send them over an ethernet connection back to another device (probably a computer).

My first question
How do i go about physically connecting the daughterboard to the 16/32 development board? (info and question expanded bellow).

From the LAN9303 Daughter Boards product page I know that it is supported by:
PIC32MZ EC Starter Kit
PIC32 Ethernet Starter Kit II
So i started by looking at the layouts of those boards,

The PIC32 Embedded Connectivity Starter Kit Users Guide Shows:
(1) - ETXEN (13) - X
(2) - ETXD0 (14) - X
(3) - EXTD1 (15) - ERXD1
(4) - X (16) - ERXD0
(5) - X (17) - ERXERR
(6) - GND (18) - ECRS/RH13
(7) - External Osc Enable? (19) - EMDC
(8) - Clock In (20) - EMDIO
(9) - GND (21) - SOSCI / RC13
(10) - VDD (22) - ICSP_MCLR_VPP_TARGET
(11) - X (23) - X
(12) - X (23) - X

My Second Question
How Do I find out what the other pins that are marked with 'X' in each of the documents are? I cant find any reference information for what these are.

PIC32 Floating Point Unit Starter Kit Users Guide Shows:
The same except,
(22) - EBIRDY2 / RH11

PIC32 Ethernet Starter Kit II Users Guide Shows:
The same except,
(21) - INT3/SCL1/RA14

LAN9303 Information Sheet Shows:
The same except,
(17) - RX_ER - Grounded
(21) - nINT - Interrupt??

PIC32MZ Datasheet for RMII Interface Signals Shows:
EMDC - Management Clock (Output)
EMDIO - Management I/O
ETXEN - Transmit Enable (Output)
ETXD0 - Transmit Data
ETXD1 - Transmit Data
EREFCLK - Reference Clock (input)
ECRSDV - Carrier Sense - Receive Data Valid (input)
ERXD0 - Receive Data (input)
ERXD1 - Receive Data (input)
ERXERR - Receive Error (input)

My Third Question
Should I connect:
PIC32 LAN9303
ETXEN to ETXEN
ERXD0 to ETXD0
ERXD1 to ETXD1
ETXD1 to ERXD1
ETXD0 to ERXD0
ERXERR to GND
(ECRS or ECRSDV??) to ECRS
EMDC to EMDC
EMDIO to EMDIO
SOSCO to SOSCI
??? to ICSP_MCLR_VPP_TARGET

My Fourth Question
What is ICSP_MCLR_VPP_TARGET and how is it used in this case? (I know ICSP is In Circuit Serial Programming and have read that applying a certain voltage to this pin can make a chip enter programming mode, but in the LAN9303 doc i cant find anything relevant so am not certain on its use).

My Fifth Question
Are the EMDC and EMDIO used for interfacing with the LAN9303, to configure it? If not, how is that typically achieved?

My understanding is that these are for the PHY Registers (in MAC or PHY SMI modes), but I havnt gotten to the point of knowing all that's available here and what will be needed, I'm still new to this.

My Sixth Question
What is generally the best practice for clock inputs?

From what i can tell,
I can use an external OSC and supply to both the PIC32 OSC1 and the LAN9303 CLK_IN, with the PIC32 controlling the external OSC EN.
I can supply to the PIC32 OSC1 only, and use the PIC32 OSC2 to supply to the LAN9303
I have seen an Input for the PIC32 called EREFCLK (Ethernet Reference Clock), how does it relate to the outputs of the LAN9303? The LAN9303 daughter board doesnt seem to have a clock output from the documentation i can find.


From what i have been able to work out I am going to want,
to use my PIC32MZs internal MAC
to have the device set up as RMII, and therefore clock of 50Mhz input
to use the LAN9303 in virtual PHY mode

This is about as far as i have gotten, any pointer to resources that will give more detail for me to read or explanations would be very welcome.

Thanks in advance.