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.

MCU-PLUS-SDK-AM243X: EtherCAT-SubDevice Stack: PdoConfiguration cannot be set to false in application

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: AM2434

Tool/software:

Dear TI-Support Team,

I am using EtherCAT Subdevice Stack from TI in industrial communications SDK 09.02 on a custom board with AM2434 chip.

    - in EtherCAT one can decide if the subdevice supports PdoConfiguration (mapping changes of PDO), I currently do not want to support
    - in the ESI file this is configured via CoE entry <CoE PdoAssign="true" PdoUpload="false" SdoInfo="true" SegmentedSdo="true" />
    - I am not able to set this in TI EtherCAT stack, I haven't found any suitable function
    - The Conformance test always issues an error that PDOConfiguration is set to true in subdevice, even if all PDOs are set to fixed with EC_API_SLV_PDO_setFixed(...)

Do I have any chance to set PdoConfiguration to false and if yes how?
Thank you!

  • Hello Dominik Fischer,

    The 'Enable PDO configuration' bit in 'CoE Details' parameter under General category shall be set to false only if both TxPDOs and RxPDOs are set as fixed using the API EC_API_SLV_PDO_setFixed(). This is the only possible way to enable/disable the PDO configuration bit in EtherCAT Subdevice stack. 


    In your case, the problem could be EEPROM data is initialized when the PDO configuration is enabled by default and later when you use the API EC_API_SLV_PDO_setFixed() to disable the PDO configuration, the EEPROM is not reinitialized instead it uses the already existing data in EEPROM. The stack application checks if the EEPROM is already initialized by reading the KEY value stored during the EEPROM initialization and loads the data into the application during start-up phase. I would recommend you to erase the EEPROM data contents and try again. Another way is to simply change the EEPROM_MAGIC_KEY defined in the project.h file as this will reinitialize the EEPROM once after the key change.

    Kindly let me know if this resolves the issue.

    Best Regards,

  • Perfect, quick response and good explanation! The issue is solved, with the suggested change/workaround the described issue in conformance test is gone.

    I already stumbled accross a not reinitialized EEPROM once when trying to update some stack settings, but forgot about this.

    Thanks!