Post Go back to editing

ADIN11100 media converter only working correctly in 1 direction

Category: Hardware
Product Number: ADIN1100

Hi,

Firstly I purchased 2 ADIN1100 evaluation boards and connected them via 900m twisted pair and one to my laptop and the other to my PC via the RJ45 connector. Using iperf we got very good performance. Since the client side sends the data I switched over the ethernet cables to check performance was good in both directions.

Next we moved onto our own PCB which is very similar to the devkit but with a 6-port switch before the RJ45. When testing our board with an evaluation board it performs as expected (nearly 10Mbit/s) when the eval board is the client an our board the server. But when the eval board is the server and our board is the client the bit rate drops to <1Mbit/s. Reading the MSE of the eval board the value is still similar to the previous test despite the poor performance. At the bottom of this post is a screenshot from Wire Shark, showing the TCP Dup ACK error I get when the link is operated in the 'poor' direction.

We're using an RGMII interface between the ADIN1100 and ADIN1200; and both are unmanaged. To get the RGMII interface to work I had to turn off auto-neg and force 10Mb FD in the ADIN1200 otherwise it's RGMII clock ran at 25MHz whereas the ADIN1100 is at 2.5MHz.

Is the micro on the eval board doing some extra configuration, that can't be done by the hardware pull up/downs?

Thanks,

Andy

  • Hi Andy,

    Can you please send us a diagram of how your system is connected and which parts are involved in it?

    Regards,

    Raquel.

  • Raquel,

    Thanks for the quick response! 

    Here is a block diagram, I can also send the schematics, but not post on a public forum. Note the ADIN1200 to the RTL8370 is 'onboard ethernet', using capacitive decoupling.

    Thanks,

    Andy

  • Thanks Andy,

    Can you please check what speed the laptop has autonegotiated with the RTL8370? You should be able to check this looking at the Network Adapter properties in the laptop.

    Regards,

    Raquel.

  • Hi,

    The link speed to the RT8370 is 1000/1000 Mbps. I've tested this with Iperf beacause the RTL8370 is a 6 port switch where 4 are used for SPE and 2 go straight to RJ45s to allow us to daisy chain the boards. This means I could test the RTL8370 performance on it's own.

    The ADIN1100 evaluation board connects at 10/10Mbps.

    Thanks,

    Andy

  • Hi Andy,

    If the link between the ADIN1200 and the RTL8370 is forced at 10Mbps, but the link between the RTL8370 and the laptop is working at 1Gbps it could be possible that there is a bottleneck in the transmission and packets are being lost.

    Can you please check the following so we can discard the presence of a bottleneck? Please, force the laptop to establish a link at 10Mbps FD. If you are using Windows this can be done in the properties of the network adapter:

    If we configure every link in the chain to work at 10Mbps FD and we are still seeing packets being lost, we can discard that it is happening because of a bottleneck.

    Regards,

    Raquel.

  • I've switched to 10Mbps Full Duplex and that didn't make a difference, the same issue remains.

    I checked the connection was limited to 10Mbps by using iperf on the 2 RJ45 connection to the switch. Iperf showed the bitrate was limited to 10Mbps as expected.

  • Hi Andy,

    I have checked with the ADIN1200 team and the conclusion is that an MCU is mandatory to manage the ADIN1200 in media converter applications.

    1. If the ADIN1200 is configured in forced mode and establishes a link with a device using autonegotiation, the link will be established at 10Mbps half-duplex. There is two options here:
      1. Manually configure the switch to forced 10Mbps FD as well, or
      2. Configure the ADIN1200 to use autonegotiation, but advertise only 10Mbps FD. In order to do this the following writes need to be done:
        1. MII_CONTROL (address 0x0000) value 0x1000
        2. AUTONEG_ADV (address 0x0004) Value 0x0041
        3. PHY_CTRL_1 (address 0x0012) Value 0x0402
    2. In addition to that, it is recommended that register 0xFF38 of the ADIN1200 is set to 0x1ç

    Regards,

    Raquel.

  • Hi Raquel,

    Sorry for the late reply, I got side tracked by another project. I've now managed to get a full 10Mbit both ways...happy!

    I found that both the hardware and software configuration only work if after power cycle/register update I write 0x0000 to MII_CONTROL then 0x1000. I.e. the hardware config still needs a software step to get it working!

    I also noticed a error/discrepancy in the datasheet; on page 43 the SPEED_SEL_LSB parameter shows 1 bit allocated in the bits column, but the description uses 2 bits to show functions. Which is right? Would this offset all following bits in the table?

    I'm obviously very pleased to have this working, but it would be great to understand exactly where the issue is.

    Andy

  • Hi Raquel,

    Thanks for this description. I got my setup work when I made my MCU to configure ADIN1200 as per point#1. However, there is no register 0xFF38 in datasheet of ADIN1200 (as mentioned in point#2).