https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1511164/am3359-am335x
器件型号:AM3359工具/软件:
大家好、支持部门、我对 PRUSS-ICSS 和 EtherCAT 有一些问题。
一个问题导致无法从 TwinCAT 和 SOEM (Etherlab)主站读取 ESC 寄存器0x111。
首先、工作计数器不会递增。
此外、0x111寄存器的值指出"端口 A:环路开路、无链路"、尽管端口 A 上有链路(ESC 寄存器0x110、位4被置位:物理 Lin 端口 A = TRUE)、并且主器件能够读取和写入 EEPROM 内容。
- 为什么只有该寄存器才会出现问题?
- PRU 固件从哪里读取循环状态(INTC、IEP、PHY 中断等)?
下面是 TwenCAT Wireshark 捕获和屏幕截图的削减部分、显示了寄存器0x110和0x111的读取结果。
提前感谢。
编号 时间 源 目标 协议长度信息
6774 5.353183 Beckhoff:01 :00:00 4a:0f:cf:6B:94:51 ECAT 64 3个 cms、'APRD':len 10、'APRD':len 1、'APRD':len 1
帧6774:64字节(512位)、在接口\Device\NPF_{46EE3852-6093-4537-B28A-DFC9177281AF}上捕获了64字节(512位)、ID 为0
以太网 II、src:Beckhoff:01:00:00 (01:01:05:01:00:00)、dst:4A:0f:CF:6B:94:51 (4a:0f:CF:6B:94:51)
EtherCAT 帧标头
EtherCAT 数据报:3个 CMD、"APRD":len 10、"APRD":len 1、"APRD":len 1
EtherCAT 数据报:cmd:'APRD'(1)、Len:10、ADP 0x1、ADO 0x0、Cnt 1
标头
CMD :1 (自动递增物理读取)
索引:0xcb
从器件地址:0x0001
偏移地址:0x0000
长度 : 10 (0xA)-无往返-更多内容如下...
... 0.000 0000 1010 =长度:10.
.00 0…… ... ... =保留:有效(0)
.0... ... ... ... =往返:帧未循环
1... ... ... ... =最后一个指示符:接下来将有更多 EtherCAT 数据报
中断:0x0000
ESC 修订版(0x0):0x90
ESC 类型(0x1):0x01
ESC 构建版本(0x2):0x04f3
ESC FMMU Cnt (0x4):0x08
ESC SM Cnt (0x5):0x08
ESC 端口(0x6):0x08
ESC DPRAM (0x7):0x0F
ESC 特性(0x8):0x008c、直流支持、直流64位支持、CRC 外部检测
工作电话:1.
EtherCAT 数据报:cmd:"APRD"(1)、Len:1、ADP 0x1、ADO 0x102、Cnt 1
标头
CMD :1 (自动递增物理读取)
索引:0x00
从器件地址:0x0001
偏移地址:0x0102
长度 : 1 (0x1)-无往返行程-更多内容如下...
... 0000 0000 0001 =长度:1.
.00 0…… ... ... =保留:有效(0)
.0... ... ... ... =往返:帧未循环
1... ... ... ... =最后一个指示符:接下来将有更多 EtherCAT 数据报
中断:0x0000
ESC Ctrl (0x102):0x00
... 0000 = FIFO 大小:0x0
... 0…… =低电平 E 总线抖动:禁用
工作电话:1.
EtherCAT 数据报:cmd:"APRD"(1)、Len:1、ADP 0x1、ADO 0x111、Cnt 0
标头
CMD :1 (自动递增物理读取)
索引:0x00
从器件地址:0x0001
偏移地址:0x0111
长度 :1 (0x1)-无往返-最后一个子命令
... 0000 0000 0001 =长度:1.
.00 0…… ... ... =保留:有效(0)
.0... ... ... ... =往返:帧未循环
0…… ... ... ... =最后一个指示符:最后一个 EtherCAT 数据报
中断:0x0000
工作 Cnt:0