Built in Network working partially

I built up a new board with built in network and a SC20100S today and am having some small problems with the ethernet.

What is happening is that network link is achieved, but it can not be pinged.

I built two boards, one has this problem and the other one doesnt. Same software, same ethernet settings.
I think it’s a hardware problem, this board already gave me a headache because the PHY chip was broken. Replacing the chip didn’t go too great, so it could be something is wrong there.

Could anyone give an indication as to what part of the hardware I should be checking here? Could it be, for example, the MDIO or MDCLK lines that arent connected properly? I’ve been blindly trying to fix things, but no success yet.

I probed the ETH ref clk already and it is a nice 50MHz sine. I also probed the TX± and RX± and I see normal network activity happening here.

1 Like

could it be that the bad PHY caused damage to the micro? It maybe easier, cheaper, faster to make a third board and test.

1 Like

Could very much be. Some IO lines were shorted to VCC or GND.

I’ll have to wait for new chips to arrive to continue then…

I’m having a similar issue like this again with the latest firmware.

What it currently seems like is that after programming the board, the network stops working after a couple times of power cycling.

It enters this partial state, where the tinyclr code raises a link event and gets the correct ip but I can’t ping it nor make tcp connection.

To fix this, the board requires a erase all, new firmware and new software. Then it stops working again after a couple power cycles.

I have a board in the field running 2.10 preview 2 that does not seem to have this issue.

I’m having a hard time debugging this, does anyone have tips or things to try for this problem?

I have a similar issue, i found that instead of power cycling the board i just have a timer that just resets the ethernet hardware 10 seconds after power on. I have no idea what’s going on under the hood or why this works, but it’s worked for me.

1 Like

Do you mean every 10 seconds or just 10 seconds after startup?

Do you just hit the reset pin or use a different function or?

10 seconds after startup. All it does is turn off the Ethernet power pin, waits 2 seconds, reapplies the settings and then powers the ethernet pin back up. It’s a very hacky way of doing it but it seems to do the trick.

1 Like

And this is with the same PHY chip as used on some of the SOMs?

Yeah, it’s the built in ethernet on the SC20260D.

1 Like

Thank you! I will try tomorrow and report back.

So far, this seems like a good workaround. Thanks @sgtyar95

This is an interesting observation. We will look into it

I think I narrowed it down to it works on rc1 and does not work in rc2/2.1.0 release

Can you provide us simple code that show your workaround?

Timer resetEthernet = new Timer((a) => { //EthernetServer.LocalIP = new System.Net.IPAddress(((System.Net.IPAddress)a).GetAddressBytes()); EthernetServer.Initialize(5226, false, ScreenValues.SerialNumber); AlertBox.AlertUser(AlertName.None, "Ethernet Ready", false, 2000); } ,null, 5000, -1);

then my reset code is basically just from the tutorial

    cs.Write(GHIElectronics.TinyCLR.Devices.Gpio.GpioPinValue.Low);
            System.Threading.Thread.Sleep(500);

            cs.Write(GHIElectronics.TinyCLR.Devices.Gpio.GpioPinValue.High);
            System.Threading.Thread.Sleep(500);


            //get net settings - this is where it does the tutorial stuff for the ethernet hardware
1 Like

Any update on this issue?

Hi, we are working on it. We also removed checking id but no device to test yet.

Is this fixed in the latest firmware refresh?

Yes it is fixed

With this new firmware it takes up to 10 seconds to return from networkController.Enable();
The old firmware would be instant.

Is this due to the new changes or is this a new bug?

1 Like