Jump to content
OMRON Forums

SSI Interfacing to Clipper


desai gururaj

Recommended Posts

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Dear All

I am Interfacing SSI FEED back to Power clipper,

 

In user manual given a formulae

SSI=100Mhz/(M+1)X2^N

 

Can You Explain me what is M? and N?

 

They given Example of EnDat,

 

I need to Interface SSI to Clipper.

 

Also see the full description of "Gate3.SerialEncCtrl" in the "Power PMAC Software Reference Manual":

"http://forums.deltatau.com/filedepot/download.php?f=Power PMAC/Manuals/Power PMAC Software Reference Manual.pdf"

Link to comment
Share on other sites

Dear All

I am Interfacing SSI FEED back to Power clipper,

 

In user manual given a formulae

SSI=100Mhz/(M+1)X2^N

 

Can You Explain me what is M? and N?

 

They given Example of EnDat,

 

I need to Interface SSI to Clipper.

 

Also see the full description of "Gate3.SerialEncCtrl" in the "Power PMAC Software Reference Manual":

"http://forums.deltatau.com/filedepot/download.php?f=Power PMAC/Manuals/Power PMAC Software Reference Manual.pdf"

 

 

Thank you for feedbcak,

 

SSI encoder clock frequency is 1Mhz

 

1=100/(M+1)X2^N

 

where N=0;

so (M+1)=100;

M=99;

 

the hex value is 63

 

Clipper[0].SerialEncCtrl=$63010002;

 

while I am writing this ,

 

The controller not accepting this value.

Link to comment
Share on other sites

Did you remember to set Sys.WpKey=$aaaaaaaa befor you tried to change the settings?

 

These are the settings I used in a PowerBrick AC with a 12 bit SSI encoder. If you change the commands to Clipper[0] etc. it should work.

 

Sys.WpKey = $AAAAAAAA;

 

//ssi

 

PowerBrick[0].Chan[0].SerialEncEna = 1;

PowerBrick[0].Chan[1].SerialEncEna = 1;

PowerBrick[0].Chan[2].SerialEncEna = 1;

PowerBrick[0].Chan[3].SerialEncEna = 1;

 

PowerBrick[1].Chan[0].SerialEncEna = 1;

PowerBrick[1].Chan[1].SerialEncEna = 1;

PowerBrick[1].Chan[2].SerialEncEna = 1;

PowerBrick[1].Chan[3].SerialEncEna = 1;

 

PowerBrick[0].SerialEncCtrl = $31200002; // 0.5 MHz serial clock triggered at rising phase clock edge, SSI protocol

PowerBrick[0].Chan[0].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

PowerBrick[0].Chan[1].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

PowerBrick[0].Chan[2].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

PowerBrick[0].Chan[3].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

 

PowerBrick[1].SerialEncCtrl = $31200002; // 0.5 MHz serial clock triggered at rising phase clock edge, SSI protocol

PowerBrick[1].Chan[0].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

PowerBrick[1].Chan[1].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

PowerBrick[1].Chan[2].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

PowerBrick[1].Chan[3].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on

 

EncTable[1].Type = 1;

EncTable[1].pEnc = PowerBrick[0].Chan[0].SerialEncDataA.a;

EncTable[1].index1 = 20; // Shift left 20 bits for 12 bit SSI

EncTable[1].index2 = 0; // No right shift

EncTable[1].index3 = 0;

EncTable[1].index4 = 0;

EncTable[1].index5 = 0;

EncTable[1].index6 = 0;

EncTable[1].ScaleFactor = 1 / EXP2(20); // For 12 bit SSI

 

EncTable[2].Type = 1;

EncTable[2].pEnc = PowerBrick[0].Chan[1].SerialEncDataA.a;

EncTable[2].index1 = 20;

EncTable[2].index2 = 0;

EncTable[2].index3 = 0;

EncTable[2].index4 = 0;

EncTable[2].index5 = 0;

EncTable[2].index6 = 0;

EncTable[2].ScaleFactor = 1 / EXP2(20);

 

EncTable[3].Type = 1;

EncTable[3].pEnc = PowerBrick[0].Chan[2].SerialEncDataA.a;

EncTable[3].index1 = 20; // Shift left 20 bits

EncTable[3].index2 = 0; // No right shift

EncTable[3].index3 = 0;

EncTable[3].index4 = 0;

EncTable[3].index5 = 0;

EncTable[3].index6 = 0;

EncTable[3].ScaleFactor = 1 / EXP2(20);

 

EncTable[4].Type = 1;

EncTable[4].pEnc = PowerBrick[0].Chan[3].SerialEncDataA.a;

EncTable[4].index1 = 20; // Shift left 20 bits

EncTable[4].index2 = 0; // No right shift

EncTable[4].index3 = 0;

EncTable[4].index4 = 0;

EncTable[4].index5 = 0;

EncTable[4].index6 = 0;

EncTable[4].ScaleFactor = 1 / EXP2(20);

 

EncTable[5].Type = 1;

EncTable[5].pEnc = PowerBrick[1].Chan[0].SerialEncDataA.a;

EncTable[5].index1 = 20; // Shift left 6 bits

EncTable[5].index2 = 0; // No right shift

EncTable[5].index3 = 0;

EncTable[5].index4 = 0;

EncTable[5].index5 = 0;

EncTable[5].index6 = 0;

EncTable[5].ScaleFactor = 1 / EXP2(20);

 

EncTable[6].Type = 1;

EncTable[6].pEnc = PowerBrick[1].Chan[1].SerialEncDataA.a;

EncTable[6].index1 = 20; // Shift left 20 bits

EncTable[6].index2 = 0; // No right shift

EncTable[6].index3 = 0;

EncTable[6].index4 = 0;

EncTable[6].index5 = 0;

EncTable[6].index6 = 0;

EncTable[6].ScaleFactor = 1 / EXP2(20);

 

EncTable[7].Type = 1;

EncTable[7].pEnc = PowerBrick[1].Chan[2].SerialEncDataA.a;

EncTable[7].index1 = 20; // Shift left 20 bits

EncTable[7].index2 = 0; // No right shift

EncTable[7].index3 = 0;

EncTable[7].index4 = 0;

EncTable[7].index5 = 0;

EncTable[7].index6 = 0;

EncTable[7].ScaleFactor = 1 / EXP2(20);

 

EncTable[8].Type = 1;

EncTable[8].pEnc = PowerBrick[1].Chan[3].SerialEncDataA.a;

EncTable[8].index1 = 20; // Shift left 20 bits

EncTable[8].index2 = 0; // No right shift

EncTable[8].index3 = 0;

EncTable[8].index4 = 0;

EncTable[8].index5 = 0;

EncTable[8].index6 = 0;

EncTable[8].ScaleFactor = 1 / EXP2(20);

 

 

Motor[1].ServoCtrl=1;

Motor[1].pEnc=EncTable[1].a;

Motor[1].pEnc2=EncTable[1].a;

 

Motor[1].pAbsPos=PowerBrick[0].Chan[0].SerialEncDataA.a;

Motor[1].AbsPosFormat=$00000c00; //For 12 bit

Motor[1].AbsPosSF=1;

 

 

Motor[2].ServoCtrl=1

Motor[2].pEnc=EncTable[2].a

Motor[2].pEnc2=EncTable[2].a

 

Motor[2].pAbsPos=PowerBrick[0].Chan[1].SerialEncDataA.a;

Motor[2].AbsPosFormat=$00000c00; //For 12 bit

Motor[2].AbsPosSF=1;

 

 

Motor[3].ServoCtrl=1

Motor[3].pEnc=EncTable[3].a

Motor[3].pEnc2=EncTable[3].a

 

Motor[3].pAbsPos=PowerBrick[0].Chan[2].SerialEncDataA.a;

Motor[3].AbsPosFormat=$00000c00; //For 12 bit

Motor[3].AbsPosSF=1;

 

 

Motor[4].ServoCtrl=1

Motor[4].pEnc=EncTable[4].a

Motor[4].pEnc2=EncTable[4].a

 

Motor[4].pAbsPos=PowerBrick[0].Chan[3].SerialEncDataA.a;

Motor[4].AbsPosFormat=$00000c00; //For 12 bit

Motor[4].AbsPosSF=1;

 

 

Motor[5].ServoCtrl=1

Motor[5].pEnc=EncTable[5].a

Motor[5].pEnc2=EncTable[5].a

 

Motor[5].pAbsPos=PowerBrick[1].Chan[0].SerialEncDataA.a;

Motor[5].AbsPosFormat=$00000c00; //For 12 bit

Motor[5].AbsPosSF=1;

 

 

Motor[6].ServoCtrl=1

Motor[6].pEnc=EncTable[6].a

Motor[6].pEnc2=EncTable[20].a

 

Motor[6].pAbsPos=PowerBrick[1].Chan[1].SerialEncDataA.a;

Motor[6].AbsPosFormat=$00000c00; //For 12 bit

Motor[6].AbsPosSF=1;

 

 

Motor[7].ServoCtrl=1

Motor[7].pEnc=EncTable[7].a

Motor[7].pEnc2=EncTable[7].a

 

Motor[7].pAbsPos=PowerBrick[1].Chan[2].SerialEncDataA.a;

Motor[7].AbsPosFormat=$00000c00; //For 12 bit

Motor[7].AbsPosSF=1;

 

 

Motor[8].ServoCtrl=1

Motor[8].pEnc=EncTable[8].a

Motor[8].pEnc2=EncTable[8].a

 

Motor[8].pAbsPos=PowerBrick[1].Chan[3].SerialEncDataA.a;

Motor[8].AbsPosFormat=$00000c00; //For 12 bit

Motor[8].AbsPosSF=1;

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...