Part Number: AM2434
Tool/software:
Hi
Customer report one issue on a mass production project using AM2434.
I had a meeting with them and sort out the clues in the attached file.
Please take it a look and share some ideas.
Thanks
Zekun
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.
Part Number: AM2434
Tool/software:
Hi
Customer report one issue on a mass production project using AM2434.
I had a meeting with them and sort out the clues in the attached file.
Please take it a look and share some ideas.
Thanks
Zekun
Hi Zekun,
Thank you for the details. One small clarification from the logs snippet shared above:
In Node2, I see from frame 18803 to frame 18806 forward frame (WKC = 7) and returning frame (WKC = 11) but in the red box, it's shown as lost frame. Can you explain the lost frame in this scenario? Is the customer referring to frame 53185 (from Node 1) as the lost frame?
We are reviewing the details provided and the possible parameters that can cause such issues.
Regards,
Aaron
In addition to this, can they share all LRW packets without filtering from INIT to OP transition (even from working setup is ok)? Also is this possible to log error counters 0x300 to 0x30F from TI devices and the ones behind it during error scenario?
Hi Aaron, Pratteesh
I also attach the Ethercat packages captured by wireshark.
Thanks
Zekun
Hi Zekun,
Thank you for the logs. Yes we see that there is a frame loss occurring in the reproduceable package and I understand that the MainDevice is designed to stop EtherCAT communication when the frame is not returned to the MainDevice.
Also is this possible to log error counters 0x300 to 0x30F from TI devices and the ones behind it during error scenario?
Is it possible to share the error counter details as well.
Regards,
Aaron
Hi Aaron
n Node2, I see from frame 18803 to frame 18806 forward frame (WKC = 7) and returning frame (WKC = 11) but in the red box, it's shown as lost frame. Can you explain the lost frame in this scenario? Is the customer referring to frame 53185 (from Node 1) as the lost frame?
There is a mistake in the scrren shot.
The right idea is you can see in Node 2, which is normal case, shows that the downstream and upstream pair. One downstream pair one upstream.
But for Node1, you can see 6-11-6, so there is no upstream after that, which means the package that should pass to master is lost.
Node 1 have no relationship with Node 2 because we can not test Node1 and Node 2 in parallel.
We just want to show Node 1 and Node2 case.
Node 1, 6 -11-6, which is wrong. It should be 6 - 11 -6 -11 -6 -11
Node2, is the right case.
So there are 2 possible reason.
1. The package from Node 1 to Node 2 is lost, so Node 1 have downstream but no upstream, but Node 2 is correct.
2. The package from Node2 to Node is lost, so Node 2 is normal, but Node 1 lost the upstream.
Thanks
Zekun
Hi Aaron, Pratheesh
Please find below error counter screen shot.
The issue also occurs in the following environment.
Currently, customer only have the error counter values 0x300 to 0x30F are confirmed for this environment.
[Main Device] - [IO] (5 units) - [E7B_1] - [E7B_2] - [E7B_3]
Because the upper PC cannot read register values directly, so they connected TwinCAT to confirm the register after the issue occurred. However, TwinCAT may reads and clears the error counter values, so the results may not reflect the actual values at the time of the issue. This is for reference only.
E7B1

E7B2

E7B3

I also advise them to add debug code to provide the register values after they are obtained using debug code.
Thanks
Zekun
Hi Zekun,
Node 1, 6 -11-6, which is wrong. It should be 6 - 11 -6 -11 -6 -11
Node2, is the right case.
I understand. Thank you for the explaination.
So there are 2 possible reason.
Yes correct.
[Main Device] - [IO] (5 units) - [E7B_1] - [E7B_2] - [E7B_3]
For my understanding, the frame loss is observed in this environment and the Error counter register captures are based on this same environment?
Because the upper PC cannot read register values directly, so they connected TwinCAT to confirm the register after the issue occurred. However, TwinCAT may reads and clears the error counter values, so the results may not reflect the actual values at the time of the issue. This is for reference only.
The customer can also enable wireshark capture while reading the error register from TwinCAT so that we can review the access to error registers from TwinCAT and observe the error counters at real-time (without anticipating if TwinCAT is clearing those registers).
Regards,
Aaron
Hi Aaron
For my understanding, the frame loss is observed in this environment and the Error counter register captures are based on this same environment?
Correct.
So based on current scenario, do you have any ideas that may cause this issue?
Thanks
Zekun
Hi Zekun,
So based on current scenario, do you have any ideas that may cause this issue?
We have tried to reproduce the issue from our side using the PDO values mentioned in the above table. We suspected the issue may be related to the FMMU configuration done in the custom setup. We tried combining the PDO assignments in the following environment:
SOEM (MainDevice) <> ET2000 <> AM243x-LP (RxPDO 286bytes, TxPDO 516bytes) <> AM243x-LP (RxPDO 9bytes, TxPDO 17bytes) <> AM243x-LP (RxPDO 9bytes, TxPDO 17bytes)
With this configuration, we are not seeing frame loss. Attaching the logs for reference: SOEM_Frame_Loss_Debug_v0690_0530.zip
The Error Counter Registers from customer setup will help in further analyzing the issue.
Regards,
Aaron
Hi Aaron
Do you need customer FMMU configuration files so that we can compare it with TI's?
Thanks
Zekun
Hi Zekun,
Do you need customer FMMU configuration files so that we can compare it with TI's?
We had replicated the TxPDO/RxPDO lengths provided in the above xls file. Yes, we can compare if the customer has details for the FMMU/SM Configurations Register programming from the MainDevice (0x600 - 0x67F and 0x800 to 0x83F).
Regards,
Aaron
Hi Aaron
Customer reproduce the issue and dump the register we need, also the normal case's version.
|
|
軸1OK |
軸2OK |
軸5OK |
軸6OK |
軸1NG |
軸2NG |
軸5NG |
軸6NG |
|
Reg.0x300(CRCErrCntPort0) |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
|
Reg.0x301(RxErrCntPort0) |
0 |
130 |
92 |
143 |
0 |
58 |
104 |
70 |
|
Reg.0x302(CRCErrCntPort1) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x303(RxErrCntPort1) |
255 |
255 |
255 |
0 |
255 |
255 |
255 |
0 |
|
Reg.0x304(CRCErrCntPort2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x305(RxErrCntPort2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x306(CRCErrCntPort3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x307(RxErrCntPort3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x308(Forwarded RX Error CounterPort0) |
43 |
2 |
0 |
0 |
41 |
2 |
0 |
0 |
|
Reg.0x309(Forwarded RX Error CounterPort1) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x30A(Forwarded RX Error CounterPort2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x30B(Forwarded RX Error CounterPort3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x30C(ECAT Processing Unit Error Counter) |
45 |
4 |
2 |
2 |
43 |
4 |
1 |
1 |
|
Reg.0x30D(PDI Error Counter) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x30E(PDI Error Code) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x310(Lost Link Counter Port0) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x311(Lost Link Counter Port1) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x312(Lost Link Counter Port2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Reg.0x313(Lost Link Counter Port3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Couple of things:
1. Why the error count exist in OK and NG case?
2. The definition of 0X30c of AM243 is different with Beckoff, is the register one only exist in TI?
3. And I ask customer to get the main controller FMMU configuration registers as well.
4. Any ideas to debug this?
One thing,
Regards
Zekun
Hi Aaron
I am curious that our handling logic and Beckoff logic, is there any difference of these two?
From my understanding, we program the PRU-ISCCS according to ETG rules, which is also referred by Beckoff. So it should be same.
Then why the topologic will lead to different scenario?
What is the possible reason and the schematic behind the reason?
Thanks
Zekun
Hi Aaron
SM register value (SM4~SM7 is not used)
|
|
|
軸1(Hex) |
軸2(Hex) |
軸5(Hex) |
軸6(Hex) |
|
Reg.0x800~Reg.0x803 |
SM0 |
1001000 |
1001000 |
1001000 |
1001000 |
|
Reg.0x804~Reg.0x807 |
SM0 |
10226 |
10226 |
10226 |
10226 |
|
Reg.0x808~Reg.0x80B |
SM1 |
1001200 |
1001200 |
1001200 |
1001200 |
|
Reg.0x80C~Reg.0x80F |
SM1 |
10222 |
10222 |
10222 |
10222 |
|
Reg.0x810~Reg.0x813 |
SM2 |
91400 |
91400 |
91400 |
91400 |
|
Reg.0x814~Reg.0x817 |
SM2 |
10164 |
10164 |
10164 |
10164 |
|
Reg.0x818~Reg.0x81B |
SM3 |
111600 |
111600 |
111600 |
111600 |
|
Reg.0x81C~Reg.0x81F |
SM3 |
10020 |
10020 |
10020 |
10020 |
FMMU,(FMMU2~FMMU7 is not used)
|
|
|
軸1(Hex) |
軸2(Hex) |
軸5(Hex) |
軸6(Hex) |
|
Reg.0x600~Reg.0x603 |
FMMU0 |
226 |
240 |
25A |
274 |
|
Reg.0x604~Reg.0x607 |
FMMU0 |
7000009 |
7000009 |
7000009 |
7000009 |
|
Reg.0x608~Reg.0x60B |
FMMU0 |
2001400 |
2001400 |
2001400 |
2001400 |
|
Reg.0x60C~Reg.0x60F |
FMMU0 |
1 |
1 |
1 |
1 |
|
Reg.0x610~Reg.0x613 |
FMMU1 |
22F |
249 |
263 |
27D |
|
Reg.0x614~Reg.0x617 |
FMMU1 |
7000011 |
7000011 |
7000011 |
7000011 |
|
Reg.0x618~Reg.0x61B |
FMMU1 |
1001600 |
1001600 |
1001600 |
1001600 |
|
Reg.0x61C~Reg.0x61F |
FMMU1 |
1 |
1 |
1 |
1 |
Thanks
Zekun
Update one thing about controller:
This issue can only reproduce with a certain CNC controller, if choose Beckoff or Omron, then it can not be reproducible.
Now there are several doubts that can analyze:
(1) reg 0x303 has a very suspicious value of 255 both in normal and abnormal conditions. This is not a normal value unless it is an 8-bit register.
(2) There is no obvious difference in the register value between normal and abnormal conditions on AM2434.
(3) There are a considerable number of errors in both normal and abnormal conditions.
(4) Under what circumstances will the ESC stop forwarding data? Should the data be forwarded even if there is a CRC error?
Thanks
Zekun
Hi Zekun,
Thank you for providing the details.
(1) reg 0x303 has a very suspicious value of 255 both in normal and abnormal conditions. This is not a normal value unless it is an 8-bit register.
Error Counter Register details can be found here: TI EtherCAT SubDevice Controller Register List. Looks like RX Error appears to be playing a critical role in the issue.
(2) There is no obvious difference in the register value between normal and abnormal conditions on AM2434.
Since RX_ERR seems to play a critical role in these scenarios, obtaining the PHY Register values would significantly help us understand the PHY behavior too.
(3) There are a considerable number of errors in both normal and abnormal conditions.
Correct.
(4) Under what circumstances will the ESC stop forwarding data? Should the data be forwarded even if there is a CRC error?
I cannot think of a circumstance where the ESC will not forward a frame during run-time where the EtherCAT network is initialized successfully. Even if the ESC control gets stuck while processing any of the datagram, malformed packets will be observed in the network since the frame header is forwarded to the next node.
Regards,
Aaron
Hi Ashwani
Customer in Japan are discussing via another E2E with TI. So pend this one.
Thanks
Zekun
Hi Zekun,
So do you need this thread to stay open or close it to avoid duplication?
Regards,
Aaron