Delta Tau GEO PMAC User Manual

Page of 117
Geo PMAC Drive User Manual 
Setting Up Encoders
 
49 
Encoder Conversion Table Setup 
The encoder conversion table provides a pre-processing of the raw SSI feedback data so it can be used by 
the PMAC motor software properly.  The encoder conversion table can be set up through an interactive 
menu in the Setup program (pending) or the Executive program, or by direct memory write commands. 
The Geo PMAC will read the SSI encoder data as “parallel feedback”.  The source data appears in 
register Y:$FF54 for Channel 1 and Y:$FF74 for Channel 2.  Generally, the user should employ the “Y-
word parallel, with filtering” conversion format (method $3).  This is a 3-line entry in the conversion 
table. 
The first line of the entry specifies the method and the source address.  It should be $30FF54 to use 
Channel 1, or $30FF74 to use Channel 2. 
The second line of the entry specifies which bits of the source register are used.  It should be set to 
$000FFF for the 12-bit word length, to $00FFFF for the 16-bit word length, to $0FFFFF for the 20-bit 
word length, or to $FFFFFF for the 24-bit word length. 
The third line of the entry specifies the maximum change in one servo cycle that will be accepted as real.  
It should be set to a value slightly greater (e.g. ~25%) than the maximum true velocity expected, 
expressed in counts per servo cycle. 
The result of the conversion is in the X-register at the address of the last line of the entry.  This address 
will be used by any task that needs to access the result.  In the result register, the LSB from the encoder 
has been shifted left 5 bits – equivalent to a multiplication by 32, so the units of this result register are 
1/32-count. 
If the filtered parallel-read entry is the first entry in the ECT, its result will be in register X:$0722.  If a 
second filtered parallel-read entry immediately follows, its result will be in register X:$0725. 
Direct Memory Write Example 
There is a 24-bit SSI encoder with a maximum speed of 200 LSBs per servo cycle connected to Channel 
1, and a 16-bit SSI encoder with a maximum speed of 100 LSBs per servo cycle connected to Channel 2.  
The following direct memory-write commands could be used to set up the encoder conversion table for 
these sensors: 
WY:$0720,$30FF54,$FFFFFF,256 
; 24-bit read from SSI Channel 1, 256 cts/cycle max 
WY:$0723,$30FF74,$00FFFF,128 
; 16-bit read from SSI Channel 2, 128 cts/cycle max 
 
The result of the first conversion is in X:$0722 (the third line of the first entry); the result of the second 
conversion is in X:$0725 (the third line of the second entry). 
Motor I-Variables 
Ix03, Ix04: Position-Loop and Velocity-Loop Feedback Address 
Ix03 and Ix04 specify the address of the X-register to be read for the feedback for Motor x’s position loop 
and velocity loop, respectively.  Unless dual feedback is used for the motor, these two variables will 
specify the same address and so have the same value.  These variables expect the specified register to 
have data in units of 1/32-count. 
To use SSI feedback for these loops, these variables should specify the address of the result register in the 
encoder conversion table. 
Ix10: Absolute Power-On Position and Format 
Ix10 specifies the address of the register to be read for the absolute power-on position for Motor x, and