Delta Tau GEO BRICK LV User Manual

Page of 440
 
Turbo PMAC User Manual 
410 
Writing a Host Communications Program 
Enabling: To start operation of this buffer: 
1.  Write the starting location of the second part of the buffer into register 0x104E (X:$060413). This 
location is expressed as a Turbo PMAC address offset from the start of DPRAM’s variable-buffer 
space at $060450, and it must be between $0000 and $0BAF for the 8k x 16 DPRAM, or between 
$0000 and $3BAF for the 32k x 16 DPRAM. 
2.  Starting at the DPRAM location specified in the above step, write the Turbo PMAC addresses of the 
registers to be copied, and the register types.  The first 16-bit word contains the low 16 bits of the 
Turbo PMAC address of the first register to be copied.  The second 16-bit word takes a value of 0 to 
65535 to specify the type, width, offset, and high 3 bits of address for this target Turbo PMAC 
register.  The third, fourth, fifth, and sixth words specify the data to be written. 
Note:   
If you specify address 0, you will terminate the writing operation.  No write 
operations further down in the buffer will be executed. 
3.  Write a number representing the size of the buffer into register 0x104C (Y:$060413).  This value 
must be between 1 and 32.  When Turbo PMAC sees that this value is greater than zero, it is ready to 
start copying the registers you have specified into Turbo PMAC.  When it is finished it will change 
the value in this register to a 0. 
4.  Set I55 to 1.  This enables both the background variable data read function and the background 
variable data write function. 
Procedure: In operation, Turbo PMAC will copy the data from the buffer into Turbo PMAC during the 
background cycle whenever 0x104C (Y:$060413) is a not zero.  If this register is 0 it will assume that the 
host has not finished placing the data in the buffer and will not write to Turbo PMAC.  Once this register 
is set to a number from 1 to 32 it will copy that many registers, starting at the start of the header start 
address information, from the DPRAM to Turbo PMAC.   
When Turbo PMAC is done copying the specified registers, it sets register 0x104C (Y:$060413) to zero 
to let the host know that it has completed a cycle. 
When the host wants to update this buffer, it should check to see that 0x104C (Y:$060413) is zero.  When 
it is done, it should set up the address/data structure.  Then set 0x104C (Y:$060413) to the number of 
registers to copy to Turbo PMAC to let Turbo PMAC know that it can perform another cycle. 
Data Format: Turbo PMAC X and Y registers will use the long 32-bit data 1word.  The 32-bit data 2 
word is not used in this case.  The high 8 bits are sign-extension bits.   
For a 48-bit Turbo PMAC integer or float point value, The L (Long) format should be used.  L-format 
will have the lower 32 bits of the total 48 bits in the long 32-bit data 1 word and the upper 16 bits in the 
lower 32-bit data 2 word.  This data starts immediately after the last address specification register. 
Disabling: To disable this function, simply leave 0x104C (Y:$060413) set to zero. 
DPRAM Binary Rotary Program Transfer Buffers 
The binary rotary program transfer buffers in Turbo PMAC’s DPRAM permit the host computer to send 
motion program commands to Turbo PMAC in its internal binary storage format for the fastest possible 
transmission of these commands.  Each of the 16 possible coordinate systems in the Turbo PMAC can 
have its own binary rotary transfer program buffer in DPRAM. 
Each coordinate system for which this feature is used must also have a rotary motion program buffer 
defined in Turbo PMAC’s internal RAM.  This is done with the &n DEFINE ROTARY {size} 
command.  These internal rotary motion program buffers are not retained through a power-down or board 
reset, so they must be defined after every board power-up/reset.  If multiple internal rotary program 
buffers are defined, they must be defined from the highest-numbered coordinate system to the lowest.