desai gururaj Posted January 31, 2018 Share Posted January 31, 2018 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. Link to comment Share on other sites More sharing options...
Richard Naddaf Posted January 31, 2018 Share Posted January 31, 2018 Check out the Power Brick Controller manual, it has a pretty good description for configuring SSI. Since it is going to Gate3, all settings should be compatible. Just use Gate3[] structure elements. Link to comment Share on other sites More sharing options...
steve.milici Posted January 31, 2018 Share Posted January 31, 2018 Please note that I have moved this thread to the appropriate Forum. Link to comment Share on other sites More sharing options...
steve.milici Posted January 31, 2018 Share Posted January 31, 2018 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 More sharing options...
desai gururaj Posted February 2, 2018 Author Share Posted February 2, 2018 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 More sharing options...
Faraday MC - Tony Posted February 2, 2018 Share Posted February 2, 2018 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 More sharing options...
Recommended Posts