Ethernet: PICO-V3-02 + Lan8720: some design questions
Posted: Mon Jul 15, 2024 8:52 am
Hi,
I made a custom board with the PICO-V3-02 that should have wired Ethernet. I choose Lan8720 for that purpose.
While I'm new into using ESP32 I choose to make a evboard with a lot Jumpers so I can learn first and more easily try things out.
I already learned about some basic mistakes I made in my LAN8720 schematic...
No I have to redesign it and to avoid another failure, Id like to ask here..
1) Clock
As I cannot use GPIO 16/17 due to PSRAM, my first choice was to use GPIO as clock output, because it solves the problem with the oscilator interfeering with the bootstrapping function of GPIO0 and additionally, saves the extra cost + board space for the osc.
I read now, that this feature is experimental and that a inverter is neccessary for that signal and that even with that it may not work or not work reliable.
So it seems that using an external 50MHz clock and also disable that clock by default (and pullup to high)and just enable it after startup before ethernet setup by a gpio..
Is that correct? I am VERY short on GPIOs... and I also have no more space for port expander.
Is that GPIO clock-input option a suitable one? Or is also problematic and I must choose another package?
2) EMAC_RX_ER
I came accros the fact that the RX_ER signal is not present on most LAN8720 modules - is it neccessary or even beneficial?
Is is part of the RMII AFAIK, but marked optional but only for switches.
If I don't connect EMAC_RX_ER (GPIO 13) - can I use IO13 as GPIO, then ? Or do I have to pull it low/high ?
I made a custom board with the PICO-V3-02 that should have wired Ethernet. I choose Lan8720 for that purpose.
While I'm new into using ESP32 I choose to make a evboard with a lot Jumpers so I can learn first and more easily try things out.
I already learned about some basic mistakes I made in my LAN8720 schematic...
No I have to redesign it and to avoid another failure, Id like to ask here..
1) Clock
As I cannot use GPIO 16/17 due to PSRAM, my first choice was to use GPIO as clock output, because it solves the problem with the oscilator interfeering with the bootstrapping function of GPIO0 and additionally, saves the extra cost + board space for the osc.
I read now, that this feature is experimental and that a inverter is neccessary for that signal and that even with that it may not work or not work reliable.
So it seems that using an external 50MHz clock and also disable that clock by default (and pullup to high)and just enable it after startup before ethernet setup by a gpio..
Is that correct? I am VERY short on GPIOs... and I also have no more space for port expander.
Is that GPIO clock-input option a suitable one? Or is also problematic and I must choose another package?
2) EMAC_RX_ER
I came accros the fact that the RX_ER signal is not present on most LAN8720 modules - is it neccessary or even beneficial?
Is is part of the RMII AFAIK, but marked optional but only for switches.
If I don't connect EMAC_RX_ER (GPIO 13) - can I use IO13 as GPIO, then ? Or do I have to pull it low/high ?