So I took some time and created a generic driver for EL2502 that works for me. I can control frequency and duty cycle with two seperate 16bit integers. This has been tested only in one channel but for second channel, PDOs should be 1603 with the same sub indexes as for the first.
SDO index 02 is to set control number from SINT16 to UINT16 and index 07 to change operation mode to frequency AND duty cycle.
I hope this helps you.
Code:
<slave idx="4" type="generic" vid="00000002" pid="09c63052" configPdos="true">
<sdoConfig idx="8000" subIdx="02">
<sdoDataRaw data="01"/>
</sdoConfig>
<sdoConfig idx="8000" subIdx="07">
<sdoDataRaw data="01"/>
</sdoConfig>
<syncManager idx="2" dir="out">
<pdo idx="1602">
<pdoEntry idx="1602" subIdx="01" bitLen="16" halPin="Duty-ch1" halType="u32"/>
<pdoEntry idx="1602" subIdx="02" bitLen="16" halPin="PWM-out-ch1" halType="u32"/>
</pdo>
</syncManager>
</slave>