Hello,
This is my setup:
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
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
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