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.

AM2434: Unexpected Behavior when EC_API_SLV_cbRegisterPreSeqInputPDBuffer() is implemented.

Part Number: AM2434

Hi,

I've received a inquiry from the customer. Could you help to answer their question below ?

 

From the customer,

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

I have implemented the four callback registration functions listed in the official documentation, but when I implement EC_API_SLV_cbRegisterPreSeqInputPDBuffer(), it causes unexpected behavior.
I will describe the implementation method in the attached sheet.
Could you please review it and let me know if there are any mistakes?
https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am243x/latest/docs/am243x/ethercat_subdevice/proc_data_mem_access.html

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

Implement.xlsx 

Thanks and regards,

Hideaki

  • Hello Hideaki,

    The problem here is the implementation of the callback functions attached.

    //SubDevice to MainDevice COMM (TXPDO)
    void* DPR_PreSequenceInputProcessData();
    
    //MainDevice to SubDevice COMM (RXPDO)
    void* DPR_PreSequenceOutputProcessData();
    
    //SubDevice to MainDevice COMM (TXPDO)
    void DPR_PostSequenceInputProcessData();
    
    //MainDevice to SubDevice COMM (RXPDO)
    void DPR_PostSequenceOutputProcessData();

    These functions are not meant to be used as user callbacks for other purposes such as GPIO toggling. These functions should handle the input and output process data. EtherCAT stack internals expect that the process data buffer is handled with these functions to speed up the process as mentioned in the EtherCAT documentation.

    Kind Regards,