2351567_en-US

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2351567_en-US

2351567_en-US

MIMXRT1189 EtherCAT

Hello, 

This is my setup: 

  • I have an i.MXRT1189 EVK.
  • I am using the ethercat digital io example on Cortex M33.

I need to access in both read and write to the EEPROM attached to the eCAT controller.

What is the correct way to achieve that?

Thank you very much, 

Silvio

Re: MIMXRT1189 EtherCAT
int main(void)
{
    /* initialize the Hardware and the EtherCAT Slave Controller */
#if FC1100_HW
    if (HW_Init())
    {
        HW_Release();
        return;
    }
#else
    HW_Init();
#endif

    MainInit();

#if 1 // MY TEST ROUTINE
    {
        uint32_t reg;
        UINT16 ret;
start_point:
        do {
            reg = ESC_EEPROM_ASSIGN_TO_PDI_MASK;
            HW_EscWriteDWord(reg, ESC_EEPROM_CONFIG_OFFSET);
            reg = 0;
            HW_EscReadDWord(reg, ESC_EEPROM_CONFIG_OFFSET);
            PRINTF("reg = 0x%08X\r\n", reg);
        } while (!(reg & ESC_EEPROM_ASSIGN_TO_PDI_MASK));

        do {
            ret = 0;
            reg = 0;
            memset((unsigned char *)apEEPROMRD, 0, sizeof(apEEPROMRD));
            HW_EscReadDWord(reg, ESC_EEPROM_CONFIG_OFFSET);
            ret = ESC_EepromAccess(0x0000, ESC_EEPROM_SIZE/sizeof(UINT16), (UINT16 MBXMEM *)apEEPROMRD, ESC_RD);
            PRINTF("ret = 0x%04X\r\n", ret);
            print_hex(apEEPROMRD, ESC_EEPROM_SIZE);
            SDK_DelayAtLeastUs(15000, SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY);
        } while ((reg & ESC_EEPROM_ASSIGN_TO_PDI_MASK));
        goto start_point;
    }
#endif


    bRunApplication = TRUE;
    do
    {
        MainLoop();

    } while (bRunApplication == TRUE);

    HW_Release();
    return 0;
}

Thi is my actual testing main function.

----

If I run it with the device disconnected from EtherCAT the main never exit the first loop.
The print results in:

Start the SSC digital_io example...
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
... forever

----

If I run it with the device connected to EtherCAT/TwinCAT the main do the first loop for a while, then do the second loop for a while (access granted) but after some iteracions the main returns to the first loop forever.

The print results in:

Start the SSC digital_io example...
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
...
reg = 0x00D00000
reg = 0x81D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00D00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C10001
ret = 0x0000
CONTENUTO EEPROM ATTUALE:
80 0c 84 ee 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

ret = 0x0000
CONTENUTO EEPROM ATTUALE:
80 0c 84 ee 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

ret = 0x0000
CONTENUTO EEPROM ATTUALE:
80 0c 84 ee 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

ret = 0x0000
CONTENUTO EEPROM ATTUALE:
80 0c 84 ee 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

ret = 0x0000
CONTENUTO EEPROM ATTUALE:
80 0c 84 ee 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

ret = 0x0000
CONTENUTO EEPROM ATTUALE:
80 0c 84 ee 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

ret = 0x0050
CONTENUTO EEPROM ATTUALE:
00 00 00 00 00 0a 00 00 00 00 00 00 00 00 2a 00
8a 05 00 00 01 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 10 80 00 80 10 80 00 04 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
reg = 0x00C00000
... forever

Re: MIMXRT1189 EtherCAT

Hi

Since the definitions and the function, you intend to implement in the example are not directly implemented in the SDK, could you help me contact the owner of the SSC Tool for further support?

Best Regards,

Pablo

Tags (1)
No ratings
Version history
Last update:
‎04-28-2026 02:56 AM
Updated by: