Forum Discussion
Tse Mac, Niosii
HI
Does anybody know what are the required connections and peripherals in SOPC builder for the triple speed mac (TSE). I have a simple ethernet project here. SOPC Builder ----->>NIOSII, TSE MY BOARD -------> PHY (DP83848C same as on the NEEK Board) I cannot get the Activity led to do anything, I have LINK/ACT and 100M lights blinking very slow on the router. Was anybody able to use the TSE MAC in SOPC builder and an external PHY like the DP83848 and get it to work? I'm using a Cyclone III Thanks for your help9 Replies
- Altera_Forum
Honored Contributor
thanks all, I read the app note about C2H and implimented some of the ideas and the "No free buffers for rx" message is gone. I have other issues but I'm sure they are due to my trying to run the "simple socket server" program on my own platform, ie I dont have ext_flash or led's on my board. I'm able to DHCP and ping my board, even though it doesn't last. again thanks
- Altera_Forum
Honored Contributor
Be aware that if you get this error message right on startup it may be that the TSE MAC driver was not able to initialize its initial descriptors. You need to verify that its really giving the message because of excess traffic.
If it is a traffic problem. You can modify the number of large buffers that the InterNiche stack uses in the ipconfig.h file and see if that helps. Also, you should make sure that you are enabling the MAC address filtering within the TSE MAC so that unwanted packets aren't being passed up to the software layer. Jake - Altera_Forum
Honored Contributor
--- Quote Start --- This is because your system is receiving more packets than it can handle. If you need your system to accept all the traffic you are sending it, you'll need to speed it up. Have a look at this article (http://www.altera.com/support/examples/nios2/exm-ethernet-acceleration.html?gsa_pos=6&wt.oss_r=1&wt.oss=nichestack%20speed). --- Quote End --- thanks a lot - Altera_Forum
Honored Contributor
This is because your system is receiving more packets than it can handle. If you need your system to accept all the traffic you are sending it, you'll need to speed it up. Have a look at this article (http://www.altera.com/support/examples/nios2/exm-ethernet-acceleration.html?gsa_pos=6&wt.oss_r=1&wt.oss=nichestack%20speed).
- Altera_Forum
Honored Contributor
--- Quote Start --- You should have more than just the Interniche version in the terminal. But if you didn't connect the MDIO, it could explain why the system doesn't start properly. You need to add a bidirectional buffer between the SOPC subsystem and the MDIO pin. mdio_oen is a direction control for the MDIO output. When it's 0, then the MDIO pin is an output and should be connected to mdio_out, and when it's 1, then the MDIO pin is an input and should be connected to mdio_in. If you use the graphical tool for the top level design, you'll need a NOT gate and a ALT_IOBUF gate. Connect the NOT gate input to mdio_oen. Connect its output to the direction control of the ALT_IOBUF (pin on the top). Connect mdio_out to the ALT_IOBUF input (left, blue), mido_in to the ALT_IOBUF output (left, purple) and finally the external bidirectional MDIO pin to the bidirectional ALT_IOBUF pin (right). If you use vhdl or verilog a simple line of code should do the trick. --- Quote End --- this was it, MDIO Connection Fixed the problem, I can DHCP and stuff , but I get the following message "No free buffers for rx" - Altera_Forum
Honored Contributor
You should have more than just the Interniche version in the terminal.
But if you didn't connect the MDIO, it could explain why the system doesn't start properly. You need to add a bidirectional buffer between the SOPC subsystem and the MDIO pin. mdio_oen is a direction control for the MDIO output. When it's 0, then the MDIO pin is an output and should be connected to mdio_out, and when it's 1, then the MDIO pin is an input and should be connected to mdio_in. If you use the graphical tool for the top level design, you'll need a NOT gate and a ALT_IOBUF gate. Connect the NOT gate input to mdio_oen. Connect its output to the direction control of the ALT_IOBUF (pin on the top). Connect mdio_out to the ALT_IOBUF input (left, blue), mido_in to the ALT_IOBUF output (left, purple) and finally the external bidirectional MDIO pin to the bidirectional ALT_IOBUF pin (right). If you use vhdl or verilog a simple line of code should do the trick. - Altera_Forum
Honored Contributor
one more question
On my PHY (DP83848C) the MDIO (pin 30) is bi directional. When I build my system in SOPC builder, the symbol does not show any bi directional pin for the MDIO, I have three separate MDIO pins (mdio_in, mdio_out and mdio_oen) . How do I connect my mdio(bidir) pin? - Altera_Forum
Honored Contributor
I get the Interniche version message
- Altera_Forum
Honored Contributor
What does the TCP/IP stack say when you start your application?