Other Parts Discussed in Thread: DP83TC811
I got the CRC error from register 63e/63b, and 63e sometimes is not 0, Is it right just access 63e to get the RX CRC error counter?
if it not equals 0, Is there any way to locate the problem?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I got the CRC error from register 63e/63b, and 63e sometimes is not 0, Is it right just access 63e to get the RX CRC error counter?
if it not equals 0, Is there any way to locate the problem?
Hi Yang,
63e is the right register to get the RX CRC error counter.
if it not equals 0, Is there any way to locate the problem?
It can be due to multiple reasons (for example: ppm mismatch between the system and link partner).
Can you please describe more details about your application and the issue being noticed?
Regards,
Rahul
we using the DP83TC814S-Q1 in Tbox which installed in car, it is seems no CRC error when we tasted it in office ,but reported RX CRC error when runs wthin car.
we init the registers follow the steps
{0x523, 0x0001},
{0x81C, 0x0fe2},
{0x872, 0x0300},
{0x879, 0x0f00},
{0x806, 0x2952},
{0x807, 0x3361},
{0x808, 0x3D7B},
{0x83E, 0x045F},
{0x834, 0x8000},
{0x862, 0x00E8},
{0x896, 0x32CB},
{0x03E, 0x0009},
{0x01f, 0x4000},
{0x523, 0x0000},
we local initial codes
indirect_write(phydev,0x523,0x0001);//disable link-up start until configuration is complete
mdio_data = indirect_read_mmd1(phydev,0x0834);
BIT_SET(mdio_data,14);
BIT_SET(mdio_data,0);
indirect_write_mmd1(phydev,0x0834,mdio_data);//configure PHY Master
indirect_write(phydev,0x81c,0x0fe2);
indirect_write(phydev,0x872, 0x0300);
indirect_write(phydev,0x879, 0x0f00);
indirect_write(phydev,0x806, 0x2952);
indirect_write(phydev,0x807, 0x3361);
indirect_write(phydev,0x808, 0x3d7b);
indirect_write(phydev,0x83e, 0x045f);
indirect_write(phydev,0x834, 0x8000);
indirect_write(phydev,0x862, 0x00e8);
indirect_write(phydev,0x896, 0x32cb);
indirect_write(phydev,0x03e, 0x0009);
indirect_write(phydev,0x01f, 0x4000);
indirect_write(phydev,0x523, 0x0000);
ti81x_soft_reset(phydev,false);
Is the Link partner the same when used in the office as well as in the car?
Can you also please share the register dump from 0 to 1E when working in the car? Please read the registers multiples times and share the values.
Thanks,
Rahul
Hi Rahul
register map dump is below:
getRegister 0000, value 2100
getRegister 0001, value 0065
getRegister 0002, value 2000
getRegister 0003, value a261
getRegister 0004, value 0001
getRegister 0005, value 0000
getRegister 0006, value 0000
getRegister 0007, value 2001
getRegister 0008, value 0000
getRegister 0009, value 0000
getRegister 000a, value 0100
getRegister 000b, value 0000
getRegister 000c, value 0000
getRegister 000d, value 401f
getRegister 000e, value 0000
getRegister 000f, value 0000
getRegister 0010, value 0605
getRegister 0011, value 010b
getRegister 0012, value 8000
getRegister 0013, value 0000
getRegister 0014, value 0000
getRegister 0015, value 0000
getRegister 0016, value 0100
getRegister 0017, value 0000
getRegister 0018, value 0025
getRegister 0019, value 0c00
getRegister 001a, value 0000
getRegister 001b, value 0000
getRegister 001c, value 0000
getRegister 001d, value 0000
getRegister 001e, value 0000
Thanks Rahul
and I have 2 questions also want to know at first.
1:Is the CRC error inevitable or not? if it is, how much is normal?
2:we previous using DP83TC811S, is it not support CRC check in normal mode? how could us detect the error packet in DP83TC811S?
Yang,
Regarding the initial CRC query, are you noticing this CRC error with just the Head Unit of the Car? Did you try another link partner and notice this issue?
What type of cable and length of the cable are you using? Does changing these metrics help resolve the issue?
On DP83TC811 RECR register 0x0015 can track the receive error count.
Regards,
Rahul
Rahul
It should connect to gate way directly, then the gate way link to the HUT, and we have tried in different gate way with different HUT. they linked with different cable also. But still have the problem.
So I want to know.
1:Is the CRC error inevitable or not? if it is, how much is normal?
2:Is the registers initialize ok? And Is any problem from register 0 to 1e?
Hi Yang Ming,
It should connect to gate way directly, then the gate way link to the HUT, and we have tried in different gate way with different HUT. they linked with different cable also. But still have the problem.
CRC errors are you noticing with different link partners and gateways?
1:Is the CRC error inevitable or not? if it is, how much is normal?
They can be mitigated, you should be able to see no CRC errors.
2:Is the registers initialize ok? And Is any problem from register 0 to 1e?
Registers 0 to 1e looks good, I noticed the link is up.
What is the value being noticed on register 63e?
Your initialization scrip looks similar to the one mentioned in the following appnote, section 3:
Regards,
Rahul
Thanks
And I have seen the register(63e rx_err_pkt_cnt) could be cleared by
Rx packet w error (CRC error) counter Note : Register is cleared
when 0x612, 0x613, 0x614 are read in sequence
but I read these registers sequence like below,register 63e seems not cleared.
mdiobus_write(addr=0, regnum=0x0d, val=0x001f)=0
mdiobus_write(addr=0, regnum=0x0e, val=0x0612)=0
mdiobus_write(addr=0, regnum=0x0d, val=0x401f)=0
mdiobus_read(addr=0, regnum=0x0e)=0x0000
mdiobus_write(addr=0, regnum=0x0d, val=0x001f)=0
mdiobus_write(addr=0, regnum=0x0e, val=0x0613)=0
mdiobus_write(addr=0, regnum=0x0d, val=0x401f)=0
mdiobus_read(addr=0, regnum=0x0e)=0x0000
mdiobus_write(addr=0, regnum=0x0d, val=0x001f)=0
mdiobus_write(addr=0, regnum=0x0e, val=0x0614)=0
mdiobus_write(addr=0, regnum=0x0d, val=0x401f)=0mdiobus_read(addr=0, regnum=0x0e)=0x0000
mdiobus_read(addr=0, regnum=0x0e)=0x0000
Hi Yang Ming,
Rx packet w error (CRC error) counter Note : Register is cleared
when 0x612, 0x613, 0x614 are read in sequence
This is a typo in DP83TC814 datasheet, the correct statement is Register is cleared when 0x63C, 0x63D, 0x63E are read in sequence. I have noted in our internal system to edit this in the future revision of the datasheet.
To narrow down the test cases, can you please have a setup with your board, hub, cable length and link partner where no RX crc errors are noticed.
If we have a working setup, then we can try to change one parameter at a time (for example: changing link partner or changing cable length) to narrow down the root cause of the issue.
Please share the setup in which no RX CRC errors are noticed (your initial bench setup).
Regards,
Rahul
Hi Yang Ming,
Register 0x0015 of TC811 and register 63E TC814 provide the receive error packet count.
After sending how many packets are you noticing the RX error packets counter ? is the counter triggering after sending 100k packets?
Thanks,
Rahul