Other Parts Discussed in Thread: SYSCONFIG
Dear TI,
in a proprietary design; we are using ICSSG0 on core R5F0_0 for EtherCat node (Beckhoff slave implementation). We took over the sample design, with modifications for use of ICSSG0 instead of ICSSG1. The EtherCat slave is stable in our design. We use the default clock values (200MHz) from the sample :
SOC_ModuleClockFrequency gSocModulesClockFrequency[] = { { TISCI_DEV_PRU_ICSSG0, TISCI_DEV_PRU_ICSSG0_CORE_CLK, 200000000 }, { TISCI_DEV_PRU_ICSSG0, TISCI_DEV_PRU_ICSSG0_UCLK_CLK, 192000000 }, { TISCI_DEV_PRU_ICSSG0, TISCI_DEV_PRU_ICSSG0_IEP_CLK, 200000000 }, { SOC_MODULES_END, SOC_MODULES_END, SOC_MODULES_END }, };
On core R5F1_0 we have a realtime application which is using ICSSG1. It is time critical and 200MHz is not sufficient, so we use 300MHz clock.
SOC_ModuleClockFrequency gSocModulesClockFrequency[] = { { TISCI_DEV_PRU_ICSSG1, TISCI_DEV_PRU_ICSSG1_CORE_CLK, 300000000 }, { TISCI_DEV_PRU_ICSSG1, TISCI_DEV_PRU_ICSSG1_UCLK_CLK, 192000000 }, { TISCI_DEV_PRU_ICSSG1, TISCI_DEV_PRU_ICSSG1_IEP_CLK, 300000000 }, { TISCI_DEV_UART3, TISCI_DEV_UART3_FCLK_CLK, 48000000 }, { SOC_MODULES_END, SOC_MODULES_END, SOC_MODULES_END }, };
Whenever ICSSG1 is set to 300MHz, then the EtherCat function breaks. The program starts normal, but Twincat doesn't see the Ethercat slave.
When I change ICSSG1 to 200MHz, then EtherCat works fine.
Is there any dependency between the clocks of both PRUs? Why does the Ethercat function break?
kind regards,
Marc Schouteeten