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: EtherCAT EEPROM

Part Number: AM2434

Tool/software:

Hi all,

I'm working with EEPROM and EtherCAT on AM2434LP. 

I have got data from the TwinCAT and stored the data in EEPROM from the address 0x101 to 0x410.

Now EtherCAT slave simple demo returns EEPROM related error like below

Local Implementation
Pruicss max =3 selected PRU:3
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio)
Phy Reset: 0.28
Phy Reset: 0.20
pRegPerm = 0x30082000, dram1=0x30082000, offset = 0x00000000, size = 0x00001400
PRU ESC: Rev 0690 | Bld 0514 | INTC base: 0x300a0000 , id = 0x4e82a900
INTC.HIDISR addr: 0x300a0038
RxPDO created 0x1600: 0x7014a9e0
RxPDO created 0x1601: 0x7014aae8
TxPDO created 0x1A00: 0x7014ab80
TxPDO created 0x1A01: 0x7014ac88
EC_SLV_INT_EEP_loadEscRegisters:1080 Errout
EC_SLV_INT_EEP_loadEscRegisters: 0x20004 EC is fatal=1, SRC:EC_SLV_INT_EEP_loadEscRegisters:1081

How to resolve this error?
How to reset EEPROM back with the existing configuration?

Thanks & regards,

D.Jenita.

  • Hello Jenita,

    This error is due to invalid CRC of config data section, and it is checked before loading the ESC registers.

    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. To reset the EEPROM to default configurations, I would recommend you to erase the EEPROM data contents and power cycle. Another way is to simply change the EEPROM_MAGIC_KEY defined in the project.h file as this will reinitialize the EEPROM to default configurations once after the key change.

    Kind Regards,