Delta Tau GEO BRICK LV User Manual

Page of 440
Turbo PMAC User Manual 
Motor Compensation Tables and Constants 
145 
Examples: 
These first three 3-line entries process 3 16-bit inputs on a 48-bit Acc-14D/V card 
I8000=$378A00 
; Filtered parallel Y-data from first Acc-14D/V 
I8001=$010000 
; Use 16 bits starting at bit 0 
I8002=256 
; Max change of 256 LSBs per servo cycle 
I8003=$378A00 
; Filtered parallel Y-data from first Acc-14D/V 
I8004=$010010 
; LSB from bit 16, use 16 bits (high 8 bits from next address) 
I8005=256 
; Max change of 256 LSBs per servo cycle 
I8006=$378A01 
; Filtered parallel Y-data from first Acc-14D/V 
I8007=$010008 
; LSB from bit 8, use 16 bits 
I8008=256 
; Max change of 256 LSBs per servo cycle 
These next several examples read MACRO registers unshifted 
I8000=$2F8420 
; Unshifted unfiltered read of IC 0 Node 0 Reg 0 (address $078420) 
I8001=$018000 
; Use 24 bits starting at bit 0 
I8002=$2F8424 
; Unshifted unfiltered read of IC 0 Node 1 Reg 0 (address $078424) 
I8003=$018000 
; Use 24 bits starting at bit 0 
This next example reads data in byte-wide pieces from an Acc-14E 
I8000=$F78C00 
; Read from $78C00 
I8001=$314000 
; Filtered parallel Y-data 20 bits, low byte, start at bit 0 
I8002=150 
; Max change of 150 LSBs per servo cycle 
This example reads a timer register as parallel data for MLDT feedback 
I8003=$378000 
; Filtered parallel read from Servo IC 0 Channel 1 
I8004=$013000 
; Read 19 bits starting at bit 0 
I8005=75 
; Max valid change of 75 LSBs per servo cycle 
Exponential Filter 
The conversion table can perform filtering functions on incoming data by executing the exponential-filter 
entry.  This entry implements a low-pass (single-pole IIR) filter on the source data.  It is mainly useful for 
master position data; its use for feedback data can be problematic because of the delays it introduces and 
the resulting stability problems in the feedback loop. 
This is a three-line entry.  The first line uses a $D method digit, followed by the address.  The source data 
must be in the X-register of this address, and usually is the result of a previous entry in the conversion 
table (addresses $3501 - $35C0). 
The second line contains the maximum change in the source data that will be permitted in a single servo 
cycle.   
The third line contains the filter gain.  Essentially, this is an inverse time constant; the gain term is set to 
2
23
/(T
f
+1), where T
f
 is the filter time constant expressed in servo cycles. 
Example: 
I8004=$07820C 
; 1/T interpolation of Servo IC 2 Encoder 4 
I8005=$D03504 
; Exponential filter of I8004 result 
I8006=4000 
; Max permitted change (LSBs/servo cycle) 
I8007=524288 
; Filter gain for 15-servo-cycle time constant [2
23
/(15+1)] 
I1205=@I8007 
; Use filtered value as master position for Motor 12 
Sum and Difference 
A sum and difference entry in the conversion table can be used to do many useful tasks: 
• 
Adding or subtracting two results in the table 
• 
Changing the sign of a result in the table 
• 
Integrating the value of a result in the table 
• 
Integrating the sum or difference of two results in the table