Anyone tried to interface circuits with gigabit Ethernet ? And perhaps have some controllers to recommend ?
Marvel has marvellous 10/100/1000 PHY transceivers e.g. 88E1111. That Supports GMII/RGMII/SGMII/TBI/RTBI interfaces. Unfortunately datasheets are under NDA stuff.
It is little bit harder to implement gigabit ethernet on your design, because timing and SI issues.
Gigabit is great, but I believe it would be hard to use up even 10 Mbit with a 8-bit microcontroller :)
That's been my thought as well, Japael.
Unless you're talking of using a processor other than an AVR, there is no point. A 10Mbit phy will work just as well as a gigE phy does, on a gigE capable network, it's just not as fast. The AVR can't handle full 10mbit, let alone 100, or 1000.
Writing code is like having sex.... make one little mistake, and you're supporting it for life.
AVR can handle 10/100 Ethernet, just look at the ENC28j80 from microchip, 10/100 MAC+PHY.
But I'm not going to use an AVR for the gigabit, using FPGA so speed is no problem.
Just wondered if someone had tried it before and had some controllers to recommend. Found a couple from Intel, but 400 pins Ball package sucks :)
Realtek also had some, with better pin count and package type :)
You mean ENC28J60, it is 10mbit only, not 10/100.
You mean ENC28J60, it is 10mbit only, not 10/100
Hehe yes, my bad. ment 28j60. Oh it's just 10 ? thought it was 10/100, also my bad :)
I have an issue with regard this. Designed an ethernet board (atmega1281+enc28j60), as the driver for the 28j60 using the well-known Pascal Stang's avrlib.
On top of that UIP provides a TCP/IP stack.
A very simple webserver is provided also by UIP, a little bit modified though in order to meet the RAM limitations (it reads the webpages directly from the flash while sending them).
Everything works just fine and absolutely stable if the 28j60's RJ45 is connected to one of the switch ports of a linsys WRT54GC router. If I connect this to a GBit switch (also a linksys: SD2008), it works for a while, then after calling some pages from the webserver it hangs.
Interestingly, according to the debugging, after "hanging", the packets are still received by the enc, but nothing comes out, although the UIP sends out the packets, i.e. it calls the NICSend function and the packet contents is correct. It looks like that the 28j60 hangs on some output or so.
More surprisingly, this error does not come up if I just simply ping the board continuously: Ping works with the GBit switch fine.
I also made a simple POP3 client that works fine with the gbit switch as well.
The only difference between the webserver (which hangs) and the rest on the software's side I could think of so far is that the webserver transmits fragmented IP packets while the others don't.
Do you have any experiences connecting the 28j60 to a gbit switch? Or any idea?
I've used the WizNet modules with a GigE switch - no problems auto-negotiating 100BT. (I don't use WizNet's sample host software but that's probably irrelevant).
I stumbled across an 'errata X' in the ENC28J60 some time ago, in rev5 and rev6 if I recall, and it wasn't in the erratasheet. When connected to a switch that uses pre-emphasis (the good ones do), and you queue a packet shorter than the minimum length of 60+CRC, and ENC28J60 automatic padding is used, and a link pulse arrives in the padding period, then the transmit path may deadlock and not transmit until given a reset.
- reset the ENC28J60 if the transmitter stays busy for an extended period. This loses a packet.
- Always tell the ENC28J60 to send at least 60 bytes. There's a security risk since this may leak parts of previously transmitted packets.
- pad packets to 60 bytes in software.
We had a customer who needed/wanted 100mbit, and we put an xport on a mega1281 and it worked fine at 100mbit. Serial port from avr to xport is the bottleneck...921kbps max... less than a megabit per sec.
Imagecraft compiler user
© 2020 Microchip Technology Inc.