Post Go back to editing

ADIN1300 100BaseT Full Duplex Receive errors

Category: Hardware
Product Number: ADIN1300

Currently we are facing problems with the ADIN1300 attached to a Cyclone-V SOC

We had a design with an DP83867 Phy where everything was working fine. We switched to the ADIN1300 and there we have

problems only in 100BaseT Full Duplex mode. I see a lot of errors in the receive error register and on the line i see that

a lot of packets where not seen from our target as a  lot of retransmitts occur. 

The strange thing is .. with 1000BaseT Full Duplex everything is fine, with 100BaseT Half Duplex everything is fine.

If i use the framegenerator and a digital loopback, we see no errors. If i just use iperf and send packets only with UDP,,

is see no errors and a good performance.

It is realy only in 100BaseT Full duplex and currently we are not able to guess what the reason could be.

I checked the initialization from the phy and compared it to the one used from the evaluation kit 

but i cannot see anything which could explain the issue :BMCR : 00000000 Value : 00002100
BMSR             : 00000001 Value : 0000794D
PHYIDR1        : 00000002 Value : 00000283
PHYIDR2        : 00000003 Value : 0000BC30
ANAR              : 00000004 Value : 00000101
ANLPAR          : 00000005 Value : 00000000
ANER              : 00000006 Value : 00000066
ANNPTR         : 00000007 Value : 00002001
ANNPRR        : 00000008 Value : 00000000
MSCR             : 00000009 Value : 00000700
MSSR             : 0000000A Value : 00000000
EXTSR           : 0000000F Value : 00003000
ERPR             : 00000010 Value : 00000000
ERDR             : 00000011 Value : 00000000
PHYCTRL1    : 00000012 Value : 00000400
PHYCTRLST1 : 00000013 Value : 00001075
PHYCTRLST2 : 00000015 Value : 00000000
PHYCTRL2 : 00000016 Value : 00000308
PHYCTRL3 : 00000017 Value : 00003048
PHY Status 1 : 0000001A Value : 000009C0
LEDCR1         : 0000001B Value : 00000001
LEDCR2        : 0000001C Value : 0000210A
LEDCR3       : 0000001D Value : 00001855
PHYSTATUS2 : 0000001F Value : 00000014
EEE_CAP     : 00008000 Value : 00000006
EEE_ADV     : 00008001 Value : 00000000

The strange thing is, that the receiver errors are not counted in any category ?

Here an example :

RCVERRCNT              : 00000014  Value : 0000018B

LPI_WAKE_ERR         : 0000A000  Value : 00000000

FC_MAX_FRM_SIZE : 00009408  Value : 000005F2

FC_FRM_CNT_H        : 0000940A Value : 00000000
FC_FRM_CNT_L        : 0000940B Value : 00000620
FC_LEN_ERR_CNT    : 0000940C Value : 00000000
FC_ALGN_ERR_CNT : 0000940D Value : 00000000
FC_SYMB_ERR_CNT : 0000940E Value : 00000000
FC_OSZ_CNT             : 0000940F Value : 00000000
FC_USZ_CNT             : 00009410 Value : 0000000D
FC_ODD_CNT            : 00009411 Value : 00000000
FC_ODD_PRE_CNT   : 00009412 Value : 00000000
FC_DRIBBLE_BITS_CNT    : 00009413 Value : 00000000
FC_FALSE_CARRIER_CNT : 00009414 Value : 00000000

So, loads of receive errors but at the and they dont match to the specific error counters.

Has anyone an idea what the root cause of this problem could be ?