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.

CCS/AM3357: Ethercat Slave with SOEM or Etherlab

Part Number: AM3357

Tool/software: Code Composer Studio

Hi,

We have been working with the AM335x as an ethercat slave and with Twincat as master without any problem, but one of our customer wants to work with Soem https://github.com/OpenEtherCATsociety/SOEM or Etherlab Master https://etherlab.org/en/ethercat/,

  • Hi,

    We have been working with the AM335x as an ethercat slave and with Twincat as master without any problem, but one of our customer wants to work with Soem or Etherlab Master, without succeed.

    There is an amount of other forums threads with similar issues,it seems that Soem and Etherlab uses LRW commands and the PRUSS firmware are not compatible with this command.

    Most of the forum solutions suggest to blockLRW commands, but we are using PRU-ICSS-EtherCat_Slave_01.00.07 and this issue is theoretically solved. The actual situation is that ecat slave reaches the operational state, but we don't receive data.

  • Sorry for sending multiple post, but the forum is not working as expected and only partial text was published first time. I attach the wireshark capture:

  • Hi Josep,

    Please review the section 3.6.3 Fix of PINDSW-141 Errata by the SOEM Master and IgH Master in the document - http://www.ti.com/lit/an/spracj7/spracj7.pdf

    Regards,

    Garrett

  • Hi Garrett

    We try to apply the texas proposed workarounds, but the issue persists. We downgraded the PRU-ICSS Ecat slave version to the old one 01.00.02,  and if we disable the LRW mode, SOEM works. But with new PRU-ICSS Ecat slave (version 01.00.07) we are not able to read the PDO data (the response is always 0). With this new version we test with LRW commands and without it.

    Regards, Josep.

  • Finally, we have succeeded communicating with the Etherlab master with Sitara ecat slave, but we need to disable the LRW commands in order to make it work.

    We use the last PRU-ICSS Ethercat Slave version 01.00.07.

    But we also didn't succeed with SOEM master.

  • Josep,

    As above app note describes, if the input and output is overlaid on the same logical address range, like TwinCAT use case, LRW can still be enabled. Does your SOEM initialization look like below?

    -----------------------------

    /* initialise SOEM, bind socket to ifname */
    if (ec_init(ifname))
    {
    printf("ec_init on %s succeeded.\n",ifname);
    /* find and auto-config slaves */


    if ( ec_config_init(FALSE) > 0 )
    {
    printf("%d slaves found and configured.\n",ec_slavecount);

    ec_config_overlap_map(&IOmap);
    printf("Slaves overlap mapped....\n");

    ec_configdc();

    printf("Slaves mapped, state to SAFE_OP.\n");

    ----------

    Regards,

    Garrett