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.
Tool/software:
Hi all,
Master: AM62P with tisdk-debian-trixie-rt-am62pxx-evm-10.01.10.04.wic, igh-ethercat-1.6
Slave: AM243x with ind_comms_sdk_am243x_09_02_00_15
When I ran the demo about "ethercat_slave_simple_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang", my master device can not detect it.
AM243X LOG:
[17:28:29:655] SSC_checkTimer:MaxET:9␍␊
[17:29:48:314] ␍␊
[17:29:48:314] Local Implementation␍␊
[17:29:48:317] Pruicss max =3 selected PRU:3␍␊
[17:29:48:321] Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)␍␊
[17:29:48:323] Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)␍␊
[17:29:48:328] Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)␍␊
[17:29:48:332] Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)␍␊
[17:29:48:337] Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)␍␊
[17:29:48:342] Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)␍␊
[17:29:48:346] Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)␍␊
[17:29:48:351] Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)␍␊
[17:29:48:355] Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)␍␊
[17:29:48:363] Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)␍␊
[17:29:48:364] Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)␍␊
[17:29:48:371] Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)␍␊
[17:29:48:374] Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)␍␊
[17:29:48:378] Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio)␍␊
[17:29:48:383] Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)␍␊
[17:29:48:390] Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)␍␊
[17:29:48:393] Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)␍␊
[17:29:48:398] Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)␍␊
[17:29:48:411] Phy Reset: 0.28␍␊
[17:29:48:412] Phy Reset: 0.20␍␊
[17:29:48:415] pRegPerm = 0x30082000, dram1=0x30082000, offset = 0x00000000, size = 0x00001400␍␊
[17:29:48:420] PRU ESC: Rev 0690 | Bld 0514 | INTC base: 0x300a0000 , id = 0x4e82a900␍␊
[17:29:48:427] INTC.HIDISR addr: 0x300a0038␍␊
[17:29:48:430] RxPDO created 0x1600: 0x7013bb38␍␊
[17:29:48:433] RxPDO created 0x1601: 0x7013bc40␍␊
[17:29:48:435] TxPDO created 0x1A00: 0x7013bcd8␍␊
[17:29:48:438] TxPDO created 0x1A01: 0x7013bde0␍␊
[17:29:48:487] EC_SLV_APP_SS_populateDescriptionObjectValues:1651 PDO Out Len: 0x40␍␍␊
[17:29:48:493] Phy Reset: 0.28␍␊
[17:29:48:495] Phy Reset: 0.20␍␊
[17:29:48:544] Phy UnReset: 0.28␍␊
[17:29:48:545] Phy UnReset: 0.20␍
AM62P LOG:
root@am62pxx-evm:~# [ 553.439421] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
[ 554.439421] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
ethercat slaves
root@am62pxx-evm:~# [ 555.439421] EtherCAT WARNING 0: 499 datagrams TIMED OUT!
[ 556.439420] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
[ 557.439420] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
[ 558.439421] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
[ 559.439420] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
I don‘t know how to do next, can you help me?
thx very much
Hello Roy,
What command(s) are you using to start the IgH EtherCAT Master on the AM62Px device?
Are you able to check the current status of the slave/subdevice? If I remember correctly, with IgH EtherCAT Master, this could be checked with "ethercat slaves" from the /usr/local/etc/init.d (or similar init.d) directory.
-Daolin
HI Daolin,
There are the commands I used:
echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-
/etc/init.d/ethercat start
LOG:
Starting EtherCAT master 1.6.2 [ 130.797993] EtherCAT: Master driver 1.6.2 unknown
[ 130.803126] EtherCAT: 1 master waiting for devices.
[ 130.834165] ec_generic: EtherCAT master generic Ethernet device module 1.6.2 unknown
[ 130.841987] EtherCAT: Accepting C0:D6:0A:F9:69:9C as main device for master 0.
[ 130.849248] ec_generic: Binding socket to interface 2 (eth0).
[ 130.870755] EtherCAT 0: Starting EtherCAT-IDLE thread.
done
when I used command "ethercat slaves"
screen doesn't display anything:
[ 382.584117] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
ethercat slaves
root@am62pxx-evm:~# [ 383.584118] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
root@am62pxx-evm:~#
root@am62pxx-evm:~#
root@am62pxx-evm:~# [ 384.584118] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
Hi Roy,
/etc/init.d/ethercat start
when I used command "ethercat slaves"
screen doesn't display anything:
Did you use "/etc/init.d/ethercat slaves" or just "ethercat slaves"? Please try "/etc/init.d/ethercat slaves" or "/etc/init.d/ethercat help" if you haven't ran these yet.
-Daolin
Did you use "/etc/init.d/ethercat slaves" or just "ethercat slaves"? Please try "/etc/init.d/ethercat slaves" or "/etc/init.d/ethercat help" if you haven't ran these yet.
Hi daolin.
when I used the commend:
root@am62pxx-evm:~#USAGE: /etc/init.d/ethercat {start|stop|restart|status}
root@am62pxx-evm:~#
root@am62pxx-evm:~# /etc/init.d/ethercat
USAGE: /etc/init.d/ethercat {start|stop|restart|status}
root@am62pxx-evm:~# ethercat slaves
root@am62pxx-evm:~# ethercat help
Unknown command help!
Usage: ethercat <COMMAND> [OPTIONS] [ARGUMENTS]
Commands (can be abbreviated):
alias Write alias addresses.
config Show slave configurations.
crc CRC error register diagnosis.
cstruct Generate slave PDO information in C language.
data Output binary domain process data.
debug Set the master's debug level.
domains Show configured domains.
download Write an SDO entry to a slave.
eoe Display Ethernet over EtherCAT statictics.
foe_read Read a file from a slave via FoE.
foe_write Store a file on a slave via FoE.
graph Output the bus topology as a graph.
ip Set EoE IP parameters.
master Show master and Ethernet device information.
pdos List Sync managers, PDO assignment and mapping.
reg_read Output a slave's register contents.
reg_write Write data to a slave's registers.
rescan Rescan the bus.
sdos List SDO dictionaries.
sii_read Output a slave's SII contents.
sii_write Write SII contents to a slave.
slaves Display slaves on the bus.
soe_read Read an SoE IDN from a slave.
soe_write Write an SoE IDN to a slave.
states Request application-layer states.
upload Read an SDO entry from a slave.
version Show version information.
xml Generate slave information XML.
Global options:
--master -m <master> Comma separated list of masters
to select, ranges are allowed.
Examples: '1,3', '5-7,9', '-3'.
Default: '-' (all).
--force -f Force a command.
--quiet -q Output less information.
--verbose -v Output more information.
--help -h Show this help.
Numerical values can be specified either with decimal (no
prefix), octal (prefix '0') or hexadecimal (prefix '0x') base.
Call 'ethercat <COMMAND> --help' for command-specific help.
Send bug reports to fp@igh.de.
root@am62pxx-evm:~# ethercat slaves
[ 947.882158] EtherCAT WARNING 0: 470 datagrams TIMED OUT!
root@am62pxx-evm:~# [ 948.882153] EtherCAT WARNING 0: 498 datagrams TIMED OUT!
ethercat slaves[ 949.882153] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
root@am62pxx-evm:~# ethercat slaves
root@am62pxx-evm:~# [ 950.882153] EtherCAT WARNING 0: 499 datagrams TIMED OUT!
[ 951.883153] EtherCAT WARNING 0: 500 datagrams TIMED OUT!
[ 952.883153] EtherCAT WARNING 0: 499 datagrams TIMED OUT!
I thought my master devices is right. I don't know how to check my slave deivces.
thanks
Hi Roy,
config Show slave configurations.
You could try using this option to see if the slave configurations show up.
I thought my master devices is right. I don't know how to check my slave deivces.
According to https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1257180/faq-how-to-set-up-an-ethercat-system-with-am6xx-maindevice-and-am64-am243-subdevice-using-codesys-development-system/4764433#4764433 "If program is flashed correctly, test LEDs will cycle sequentially on the SubDevice (eight test LEDs on AM243x-EVM, four test LEDs on AM243x-LP)"
I will redirect this thread to the right subject matter expert on the AM243x ethercat_slave_simple example. Please expect a delay in response.
-Daolin
Hi Roy,
We believe this issue is due to the following errata: PINDSW-141/SDOCM00105048: LRW access to non-interleaved input and output process data of multiple SubDevices does not work. This issue has been fixed in the latest EtherCAT firmware baseline.
In order to confirm this, could you share the FMMU ESC register configurations: (0x600 to 0x67F) or can you share the wireshark logs for the same?
Regards,
Aaron
Hi Daolin,
According to your answer and the link you provided, I have successfully run it, I can control am243x by ethercat. Thank you so much.
Hi Roy,
So the issue reported is resolved based on the information provided by Daolin ?
Regards,
Aaron