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.

AM3359: EtherCAT issue in ISDK

Part Number: AM3359
Other Parts Discussed in Thread: SYSBIOS, TLK110,

Hello,

I have a problem with sdk update.

I have updated my sdk version:

  • the previous one was sysbios_ind_sdk_2.1.1.2
  • the new one is sysbios_ind_sdk_02.01.03.02 (dec 2016)

My application is running on a board with 8 cards.

Each card is equiped with an ARM3359.

All these cards are part of an Ethercat Network which is driven by a master Ethercat.

On each processor a same software is running. This software was built on the "ethercat slave "project model.

In this project, the EcatStack code use 2 tables to initialize the PRU: HostProc[] and FrameProc[]

These tables are given in the install directory: C:\ti\sysbios_ind_sdk_2.1.1.2\sdk\protocols\ethercat_slave\firmware\v1.0 for the previous sdk and C:\ti\sysbios_ind_sdk_02.01.03.02\sdk\protocols\ethercat_slave\firmware\v1.0 in the new sdk. These tables are differents fro one version to the other.

Everything is all right with previous sdk: when I start my Ethercat network I can see and reach all the ARM3359 slaves.

With the new sdk, when I start my Ethercat network, no slave are seen !!!!

So I try to debug this issue and I realise that if I keep the new sdk version and only replace the 2 tables, my Ethercat network is ok !

So my problem seems to come from PRU initialization....

Do you already notice this issue ?

Is there any newer sdk to update ?

I have a look on internet to getinformation on PRU and I saw that there was a recent version of PRU ICSS EtherCAT package which was provided in June. Do you know if this package could solve my problem ?

I had never use these manner to have a new version of Ethercat Protocol. Can you tell me if it is possible to integrate this patch on my sdk version ?

Thanks a lot for your help

Laurence

  • Hi,

    The EtherCAT experts have been notified. They will respond here.

    Please note that Industrial software will be moving to RTOS and ISDK support will be discontinued on this forum at the end of June. See this notice for details: e2e.ti.com/.../580869
  • Hi Laurence, pretty strange that our OOB EtherCAT slave didn't work on your boards.  Few questions, what is different between your boards and our ICEv2?

    HostProc[], FrameProc[] are called from bsp_set_pru_firmware(). Some information, about this function can be found in PRU-ICSS EtherCAT firmware API guide

    About PRU-ICSS EtherCAT slave for Processor SDK, if you are in the process of moving your projects, maybe it would be good time to move directly to this release. Main difference is that it uses Sysbios Processor SDK instead of Industrial SDK. Few links below:


    Industrial Protocol Package Getting Started Guide

    PRU ICSS EtherCAT

    Thank you,

    Paula

  • Hello Paula,

    Yes, this behavior is a bit strange: I don't understand what could be the change in PRU Initialization between the 2 versions.

    The big difference between iceV2 and Lectra Board is that we are not using TLK110 but LAN8710.

    Of course there is a differnce between this 2 components but I can understand why everything is ok in HostProc[], FrameProc[] for the sdk 2.1.1.2 and not ok in sdk 2.1.3.2....

    Do you have an idea ?

    In fact we are not about of moving our projects on industrial sdk... Can you explain me what is the difference between sysbios and insdustial sdk ?

    Thanks a lot for your help.

    Laurence

  • Hi Laurence, I will ask our developers if there is any option changing the PHY has an interference with HostProc[] and FrameProc[]. I doubt it, but better to double check.

    About some information between our PRU-ICSS industrial SW for Sysbios processor SDK and our previous ISDK please see below links:

    Processor SDK RTOS FAQ

    PRU-ICSS-Industrial-SW Overview

    Industrial Protocol Package Software Developer Guide

    Main idea is that our Processor SDK permits more SW reusability and easy to port to other Sitara  platforms.

    BTW, you can also can get latest etherCAT firmware from PRU-ICSS-ETHERCAT-SLAVE in order to ensure you have the latest and greatest (bug fixes) firmware version (C:\TI\PRU-ICSS-EtherCAT_Slave_01.00.03.00\protocols\ethercat_slave\firmware\v1.0)

    thank you,

    Paula

  • Hello Paula,

    Thanks for your help !
    I will have a look at the industrial sdk to see how it works.
    And I think I don't have the last firmware version because the files ind the sysbios sdk are not the same than the one int the pru icss. I don't understand why there is no compatibility.
    Thanks for asking for the PHY.

    Regards,
    Laurence
  • Hello Everyone !



    I was an old user of industrial Sdk (from am335x_sysbios_ind_sdk_1.1.0.4 to sysbios_ind_sdk_02.01.03.02) .
    As Texas will probably stop to support Industrial Sdk, I have decided to migrate to Processor Sdk with PRU_ICSS_Industrial.

    So I have downloaded all the needed software:

    bios_6_46_05_55
    edma3_lld_2_12_04_28
    ndk_2_25_01_11
    pdk_am335x_1_0_7
    xdctools_3_32_01_22_core
    PRU-ICSS-EtherCAT_Slave_01.00.03.01
    .......
    I have an evaluation board iceV2 with arm3359.

    I have followed all the explaination described in the PRU_ICSS_EtherCAT_User_Guide.pdf.
    So I managed to generate the 2 ethercat project:

    ethercat_slave_demo
    ethercat_slave_full (patched with beckoff sources)
    I tried to compile this 2 prjocets with ccsv7 and I have the same errors during the link for the 2 projects:

    in tiescbsp.c: "undefined reference to `Board_enablePhyAutoMDIX' "
    in tiescphy_tlk110.c: undefined reference to `Board_getPhyIdentifyStat' and some other same errors.
    It seems to be a problem of missing libraries but I don't manage which one !

    Can you help me on this subject please ?

    Thanks a lot

    Laurence
  • In fact I have download PRU-ICSS-EtherCAT_Slave_01.00.04.02 and eveything is ok !
    Thanks for all
    Laurence
  • Laurence, Thanks for let us know! I think the issue in 1.0.3.1 is related to a wrong PDK path in "other repositories", but  in any case, I am glad it is working correctly with 1.0.4.2

    Paula

  • Hi, Laurence

    Which version of CCS are you using?
    I use
    ccs7.30
    processor_sdk_rtos_am335x_4_00_00_04
    PRU-ICSS-EtherCAT_Slave_01.00.04.02
    patched .c and .h code of SSC5.11.

    ICE3359v2 runs correclty with TwinCAT, but could not enter OP state when ethercat master is IGH1.5.2.

    Thank you

    Frank Lyu
  • Hi, Laurence

    The logs are atteched as below:

    [12351.790009] EtherCAT: Requesting master 0...
    [12351.794573] EtherCAT: Successfully requested master 0.
    [12351.804504] EtherCAT 0: Domain0: Logical address 0x00000000, 12 byte, expected working counter 3.
    [12351.813902] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 12 byte, type LRW.
    [12351.823858] EtherCAT 0: Master thread exited.
    [12351.828744] EtherCAT 0: Starting EtherCAT-OP thread.
    [12351.839159] EtherCAT WARNING 0: No app_time received up to now, but master already active.
    [12351.900880] EtherCAT 0: Domain 0: Working counter changed to 3/3.
    [12352.837168] EtherCAT WARNING 0: 1 frame CORRUPTED!
    [12353.837211] EtherCAT WARNING 0: 1 frame CORRUPTED!
    [12354.837012] EtherCAT WARNING 0: 1 frame CORRUPTED!
    [12355.837039] EtherCAT WARNING 0: 2 frames CORRUPTED!
    [12356.836863] EtherCAT WARNING 0: 1 frame CORRUPTED!
    [12356.917544] EtherCAT ERROR 0-0: Timeout while setting state OP.
    [12356.928284] EtherCAT 0: Slave states on main device: SAFEOP.
    [12360.932871] EtherCAT 0: Slave states on main device: SAFEOP + ERROR.
    [12365.837031] EtherCAT WARNING 0: 2 frames CORRUPTED!
    [12366.836864] EtherCAT WARNING 0: 2 frames CORRUPTED!


    I use Wireshark to capture ethercat message, IGH exactly sends message to set 0x120 register(0x8), however, ice3359v2 could not set OP state.

    Thank you

    Frank Lyu

  • Hello,

    I'm sorry for not answering before but I was away from my office (accident).

    I actually use Code Composer  Version: 7.2.0.00013 .

    I don't really know what is happening for you.

    Regards,

    Laurence

  • Hi,Laurence

    Which EtherCAT master do you use?

    IGH or TwinCAT?

    When TwinCAT acts as EtherCAT master, the ICE3359v2 runs very well.

    However, the ICE3359v2 does not enter OP state when EtherCAT master is IGH1.5.2.

    Frank

  • Hi Frank, do you have any other EtherCAT master for testing?. We have tried a variety of masters, including some commercial ones such as acontis EC-Master and PRU-ICSS EtherCAT slave works OK.

    I am not familiar with IGH, but maybe the ENI file needs to be update to use AM3359 ICEv2 board ESI?

    thank you,

    Paula

  • Hi Frank, I believe this question is related to this E2E I will go ahead and close this one.

    thank you,

    Paula