Delta Tau GEO BRICK LV Manual Do Utilizador
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
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.
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.
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.
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.
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.
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.
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.