Created Wed, 21 Sep 2011 01:23:35 +0000 by Andy123
Wed, 21 Sep 2011 01:23:35 +0000
Can somebody comment on why digital pin D7 (RE9) was selected for PHY reset?
First off - is this line actually needed? Stack sets it HIGH during initialization and never used again. Would it be easier just add R-C reset? This will perform initial power on reset. PHY have reset command also so it can be done programmatically.
Second - PIN D7 used by most (if not all) basic Arduino shields and this setup will prevent other shields to be used with Ethernet shield
Lastly - if shield really must have PHY reset, then why not pick a pin closer to (or on) XIOL connector where the other signals located?
Wed, 21 Sep 2011 18:18:28 +0000
The short answer is that I screwed up.
The design for the Network Shield was copied from the Ethernet/USB/CAN part of the Cerebot 32MX7, and that is the pin that was used on that board. It was arguably a poor choice on that board as well, and I didn't think through the compatibility issue with the chipKIT Max32 well enough. We have since rev'd the 32MX7 and in the process, changed the pin that was being used for the NRST signal, but that was done after the Max32 design had been completed and the first boards were built.
This is something that we could change on the next rev of the board. Do you have a candidate pin you'd like to propose? Does anyone else want to comment on this issue?
Gene Apperson Digilent
Wed, 21 Sep 2011 18:43:07 +0000
I don't have a specific port since most of pins are multi-functional. You need to find a pin with minimum interference with other features. it also will allow to have a "Sidecar" type board that plugs into XIOL and XIOH only allowing "short" or "standard" arduino shields to be connected at the same time on the same level
But my question why you really need to control RESET? You do not control RESET in the code and I see no reason to have it in future. IMHO simply replace it with RC divider.
Mon, 26 Sep 2011 14:34:47 +0000
I actually tested it with Reset signal connection to a RC (pull-down resistor removed) - works just fine. After the change, I also disabled InitializeBoard(); call completely - no need for it at all.
Tue, 27 Sep 2011 17:05:19 +0000
I went through the data sheet for the LAN8720, and my reading agrees with your results. The ability to reset the PHY manually through that pin isn't necessary, and an RC network should work fine for a power-on reset.
I had it set up to drive the reset pin on another board because I wanted the PHY to be held in reset until it was explicitly enabled by the software. This was something that shouldn't have been carried over onto the Network Shield. I'll remove it from the next version of the board.
The Arduino group has modified the hardware spec. for the Arduino boards by adding some new pins on the newest version of the Uno and the Due. We'll probably be rev'ing the chipKIT boards to adopt that change once I get more information about the exact nature of what they have changed. When that happens, I'll rev the Network Shield as well.
Gene
Tue, 27 Sep 2011 18:02:34 +0000
gene
thank you for your response
I agree that changes are not critical and where is no reason to implement them right away. BTW, I am not using chipkit shield, I made a LAN8720 breakout board - much easier to make changes this way :)