Hi there, I have made a prototype board with a SAM7x128 and a RTL8201BL phy. I am using the SAM7X256_Eclipse demo which I modified to communicate with the phy. I am able to recieve packets from my network, but I am unable to transmit them. I know that the MAC in the SAM is transmitting data (observing the MII TX lines on a logic analyzer) but I am not receiving anything on my computer. I have check and rechecked my hardware and it seems to be ok. I was wondering if anyone ever had this issue before? Many thanks, Billy
If the MAC is transmitting data then does it not suggest that there is some hardware problem? Are you using the MII interface or the RMII interface? There are (or at least were) some errata regarding the RMII interface. Regards.
Hi Richard, Thanks for your reply. I’m using the MII interface. You may be right in saying that there is a hardware issue, but I have been unable to find any :( Cheers, Billy
I might be wrong, but I think the Olimex development board uses an RTL PHY. Maybe the schematics of software for that could provide a clue.
Hi Dave, Thanks for the suggestion. Unfortuately I did not find any of their boards that used the RTL8201. Would have been nice. Cheers, Billy
I don’t know what might be the problem but here are some reminders, although some of them irrelevant for your case. 1) How did you understand that you can receive but unable to send? I mean do you use UDP connection in the code? Do you check all with logic analyzer or do you use wireshark/ethereal? 2) Have you checked is PHY id is correct in prvProbePHY function in SAM7_EMAC.c? 3) I don’t know how is your PHY is connected to the MAC but it may help to double check PHY power down pin status. It is cleared in xEMACInit function. Some PHYs don’t have power down, and hardware designers use it for other purposes but code assumes it to be used. This hit me once, so I just wanted to warn on. 4) Transformator pins of connector’s are different from vendor-to-vendor, sometimes. Not all PHYs work with all(As far as I remember). This may explain receive working but not transmitting(this is also related to the answer to 5) 5) Do you have any status leds on your board? Is negotiation correct?(duplex, speed, link) I’m justing thinking loud, I hope they can help. Caglar
Hi Caglar, Thanks for the reply. I used printf’s in my code to follow the trail that leads to the transmit function. I also checked the phy’s MII interface with the logic analyser and it is transmitting. I played with my scope and I can see that the phy does seem to transmitting! So you may be right with the transformer being wrong. I have ordered one that is recommended by realtek so hopefully I will be up and running tomorrow. Thanks for suggesting Wireshark. I downloaded it and it should make my life a bit easier. Wish me luck. Cheers, Billy
Hi All, I got in the recommended transformers and wired up the circuit. However I am still unable transmit data to another computer. I know that I am receiving data (a ping and I have verified in my code that it matches my IP address), and that I am transmitting back data. I also know that the data is getting to patch cable. (I probe the TX lines with a scope and it has a similar magnitude to RX). However I can not verify if the data is clean as my scope is not fast enough (time for a new toy me thinks) Auto negotiation works and I am getting the correct link speeds. I have tried connecting to a PC via a hub, and directly through a cross over cable. I have even wired up the RJ45 socket backward incase I got it wrong. I am monitoring the Ethernet connection with Wire shark and it is telling me that I am transmitting nothing. I don’t know if I am transmitting garbage and that the NIC on the PC is just ignoring that data? Any ideas/help work be greatly appreciated. Regards, Billy
Hi, Are you using default port or have you modified it? (Other than EMAC code) Can you toggle a led in vEMACISR for tranmit & receive? (if not tried already) Best Regards, Caglar
The easiest way to make sure things are working on the raw ethernet side of things, is to send a broadcast MAC packet.. You PC will see this in Wireshark/Ethereal if it is sent out onto the network because the router/switch/hub has to forward it to all devices on the local network. A broadcast Ethernet packet has a destination address of FF:FF:FF:FF:FF:FF. So just make up a source mac address and specify a length for the packet, stick in some dummy data up to that length and send the packet. You could try sending it repeatedly in case it doesn’t send properly the first time and you should see it at the PC… If you’re using a hub/switch you should also see the activity light changing if you are repeatedly sending data.. One thing worth checking is that your bias circuit is correct on the transmit side (the 50 ohm resistor network). Just double check this again with the reference circuit to make sure that you’re connecting it exactly as in the reference.
Thanks for the suggestions. I will try them today. Cheers, Billy
Hi All, Just wanted to let all those who helped me know that I got a new board made and it works :o) I am not sure what the issue was, but I paid more attention to the board layout. The part must be very sensitive to SI issues. Also for anyone developing a board with the RTL8201BL, remember that you may need a pulldown on the RXER line to place the PHY in UTP mode. It latches this pin in on Power on Reset. Many thanks, Billy
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.