IgH DC设置

  1. IgH设置DC接口说明

应用程序设置DC周期、偏移量、使能控制字。

void ecrt_slave_config_dc(

        ec_slave_config_t *sc,                                /**< Slave configuration. */

        uint16_t assign_activate,                              /**< AssignActivate word. */

        uint32_t sync0_cycle,                                 /**< SYNC0 cycle time [ns]. */

        int32_t sync0_shift,                                   /**< SYNC0 shift time [ns]. */

        uint32_t sync1_cycle,                                 /**< SYNC1 cycle time [ns]. */

        int32_t sync1_shift                                   /**< SYNC1 shift time [ns]. */

        );

ecrt_slave_config_dc(_G_pScServo[i], 0x300, PERIOD_NS, 1000000, 0, 0);

assign_activate一般为0x0300,设置的是0x980~0x981寄存器,使能DC-SYNC0同步信号输出。

IgH DC设置_第1张图片

图 1.1 同步信号寄存器

sync0_cycle即为sync0的循环周期,和主栈的周期任务的循环周期保持一致。

sync0_shift为启动sync0同步信号的偏移时间。

一般不使用sync1同步信号,可设置为0。

  1. sync0启动时间计算

在从站间的系统时间同步后,还需要设置sync0产生的相位一致,从站间的sync0信号才能保持同步。

设置sync启动时间在fsm_slave_config.c文件的 void ec_fsm_slave_config_enter_dc_cycle ()函数中。

IgH DC设置_第2张图片

图 2.1 设置sync循环周期

计算sync0启动时间在fsm_slave_config.c文件的ec_fsm_slave_config_state_dc_sync_check()函数中。

你可能感兴趣的:(SylixOS)