tweekzilla Posted April 9, 2013 Share Posted April 9, 2013 Is it possible to input an external timebase pulse into an ACC-24E3 sinusoidal feedback input or do we need a digital feedback card? Cheers Ross Link to comment Share on other sites More sharing options...
curtwilson Posted April 10, 2013 Share Posted April 10, 2013 The analog (sinusoidal) encoder card can take 5V digital signals and process them properly. Link to comment Share on other sites More sharing options...
tweekzilla Posted April 10, 2013 Author Share Posted April 10, 2013 The analog (sinusoidal) encoder card can take 5V digital signals and process them properly. Thanks Curt - I now know it's possible! I've been trying to setup the pulse counter by inputting it into SENCDAT+- and trying to use it as a quadrature encoder (30khz 50% duty cycle)- The following have been set but I do not see ACC24E3[1].Chan[2].ServoCapt increasing. //setup pulse on Chan[2] for external timebase ACC24E3[1].SerialEncCtrl = 0; //Quadrature interface ACC24E3[1].Chan[2].EncCtrl = 0; Acc24E3[1].Chan[2].TimerMode = 0; ACC24E3[1].Chan[2].SerialEncCmd = 0; Acc24E3[1].Chan[2].SerialEncEna = 1; //External timebase setup EncTable[3].type=1; //Single-register read conversion EncTable[3].pEnc = Acc24E3[1].Chan[2].ServoCapt.a; //Combind pos reg EncTable[3].index1 = 0; //No left shift EncTable[3].index2 = 0; //No right shift EncTable[3].index3=0; EncTable[3].MaxDelta=0; EncTable[3].ScaleFactor = 1/(256*30) //for 1ms timebase I'm not even sure you can input a single pulse in the quadrature encoder for it to start counting incrementally. Also the manual hinted that you should be able to do this through the SIN/COS inputs but I have not worked that out yet. Link to comment Share on other sites More sharing options...
curtwilson Posted April 10, 2013 Share Posted April 10, 2013 A few points: The main encoder interface on a hardware channel has the ability to accept and count a single pulse train instead of quadrature. This can be done with Gate3.Chan[j].EncCtrl, setting a value for either pulse-and-direction or pulse-up/pulse-down input instead of the default quadrature setting. The serial encoder input for the channel can be used for quadrature if SerialEncEna is 0 (note that you did not do this), but not for single pulse counting. You would see the count value toggling back and forth a single count (in SerialEncDataA, not ServoCapt) if you fed it a single toggling pulse. As to signal levels: the sine encoder inputs on these cards use the same differential line driver input ICs as the serial encoder inputs, and as the quadrature encoder inputs on other cards. The sine encoder input lines do not have pullup resistors, and the lines also drive A/D converters through op-amp networks. Even at the 1Vpp analog levels, the receivers create digital quadrature signals into the ASIC counter. If you feed it 5V digital pulses, these will pass through the receivers properly into the ASIC as well. The A/D converter circuits will be saturated, but not damaged. Link to comment Share on other sites More sharing options...
tweekzilla Posted April 10, 2013 Author Share Posted April 10, 2013 Thanks - I got it working (almost) - The signal was placed on the SIN input and the following register set: Acc24E3[1].Chan[2].EncCtrl = 13 1) It would not count using a TTL/CMOS square wave - I suspect the 220 Ohm termination packs may have something to do with this but I need to think about that - I possibly need a driver before the PMAC. 2) Using a standard 50 Ohm output on a function generator (1Vpp square wave) worked fine. I also wanted to clarify the serial encoder settings as the manual differs to your suggested settings - Can I confirm that if you wanted to use the serial encoder input as a supplemental quadrature encoder then as per the manual gate.SerialEncCtrl = 0 gate.chan[j].SerialEncEna = 1 //difference here Link to comment Share on other sites More sharing options...
curtwilson Posted April 10, 2013 Share Posted April 10, 2013 Ah, the Acc-24E3 manual is incorrect in this regard. (The main Power PMAC manuals are correct.) My apologies. The choice of disabling the serial encoder interface and using the pins for quadrature interface is done on a per-channel basis by setting Gate3.Chan[j].SerialEncEna to 0. Link to comment Share on other sites More sharing options...
Recommended Posts