desai gururaj Posted January 31, 2018 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.
Richard Naddaf Posted January 31, 2018 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.
steve.milici Posted January 31, 2018 Posted January 31, 2018 Please note that I have moved this thread to the appropriate Forum.
steve.milici Posted January 31, 2018 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"
desai gururaj Posted February 2, 2018 Author 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.
Faraday MC - Tony Posted February 2, 2018 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;
Recommended Posts