DP83TC812R-Q1: Strange behavior when reading SQI register continuously within short interval

Part Number: DP83TC812R-Q1

Tool/software:

Hi team,

I'm facing an issue when reading SQI register(0x871) continuously within short interval.

I follow the example below to read SQI register:

Example: to read register 0x462 in MMD1F field with no post increment
Step 1) write 0x1F to register 0xD
Step 2) write 0x462 to register 0xE
Step 3) write 0x401F to register 0xD
Step 4) read register 0xE

case1: I tried reading SQI register twice within short interval and get the result below:

value read at first time: 0xEE 

value read at second time: 0x0E ->It's strange

case2: If I delay some time between first time and second time then I get the result below:

value read at first time: 0xEE 

value read at second time: 0xEE

I tried case1 many times and always get the value of 0x0E at second time.

#I also tried same test case on DP83TG720R and always get 0xEE at first time and second time.

Is there any limitation regarding accessing SQI register(0x871) in DP83TC812R?

Best Regards

Liu Jian

  • Hi Jian,

    The current SQI results are stored in the specific bits [3:1] of register 0x871. In the total register values of 0x871 = 0xEE or 0x0E, the values of [3:1] are both equal to 0b111 = decimal 7, so the reported SQI value did not actually change and there is no problem from that perspective.

    From what I can see, the difference in 0xEE vs 0x0E is related to the "worst SQI value since last read" field. Most customers do not use this field in my experience so it is not especially useful information. Since the field will automatically update itself after the last register read, my guess is that the field is cleared after 0xEE is read and it will take some time for the internal logic system to re-record the SQI values over time. So if you read 0xEE again very quickly after the initial read, it's possible the field hasn't been initialized yet and the whole register will read 0x0E.

    Best,

    Evan Su