Hi,
The Slave Stack Code supports different modes of synchronization which are based on three physical signals: (PDI_)IRQ, Sync0 and Sync1 (Figure 1: ESC Interrupt Signals).
Figure 1: ESC Interrupt Signals
Which of these signals are supported by the stack are based on the following settings.
AL_EVENT_ENABLED: Enable/Disable the (PDI_)IRQ support. The interrupt can be triggered by different event which are controlled by the AL event register (0x220:0x223) and the AL event mask register (0x204:0x207).
DC_SUPPORTED: Enable/Disable the handling of the Sync0/Sync1 signals generated by the DC UNIT.
I have some questions as bellow:
1.) Does TI have implemented the three kinds of physical signals in AM3359 ICE?
2.) We had designed an own hardware based on TI AM3359 ICE. Now the (PDI_)IRQ work correctly(AL_EVENT_ENABLED=1 and DC_SUPPORTED t= 1), and I want to using Sync0 signal to synchronizated my application. In the file ecat_def.h, I have setted both AL_EVENT_ENABLED to 0 and DC_SUPPORTED to 1. When I using TwinCAT to control the slave, it can only reach Preop stage, If I force it to Safeop stage (or activate free run), there will be an error. What result this problem and how can I resolve it? How can I let it work correctly?
Some of Sync0 synchronization parameters are defined in the file(ecat_def.h). The following definition is my setting.
#define AL_EVENT_ENABLED 0
#define DC_SUPPORTED 1
#define MIN_PD_CYCLE_TIME 0x79E0 // 31.2us
#define MAX_PD_CYCLE_TIME 0xC3500000
#define PD_OUTPUT_DELAY_TIME 0x0
#define PD_OUTPUT_CALC_AND_COPY_TIME 0x0
#define PD_INPUT_CALC_AND_COPY_TIME 0x0
#define PD_INPUT_DELAY_TIME 0x0
3.) How to define above parameter value separately?
Please let me know how to solve this issue.
Best regards,
Shian