User's Manual
PMAC2 User Manual
70 Using PMAC2 with MACRO Interface
Flag Address I-variables: Ix25
When bit 18 of Ix25 is set to 1, PMAC2 will expect that the flag register be a MACRO auxiliary register.
If a MACRO auxiliary node n is used for the flag register, then bit n of I1000 must be set so PMAC2
performs auxiliary node update functions for the node. Bit n of I1002 must specify whether node n is
using Type 0 protocol, in which the 24-bit register holds the flag information, or it is using Type 1
protocol, in which the third 16-bit register holds the flag information.
Also, bit 23 of Ix25 must be set to 1 to designate a high-true amplifier fault, which is the MACRO standard.
This makes the first two hex digits of Ix25 equal to $84. (Other bits of bit 16-23 may also be set.
When using a MACRO auxiliary register for the flags, the address part of Ix25 should contain the address
of a holding register in RAM, not the actual Type 0 or Type 1 MACRO register. The address of the
holding register is $0F7n for node n. PMAC2 firmware automatically copies between the holding
registers and the MACRO registers as enabled by I1000 and I1002.
When the flag information uses MACRO nodes, the following settings of Ix25 should be used (both Type
0 and Type 1 MACRO protocols):
Node Address Node Address
Node 0: $840F70 Node 8: $840F78
Node 1: $840F71 Node 9: $840F79
Node 2: $840F72 Node 10: $840F7A
Node 3: $840F73 Node 11: $840F7B
Node 4: $840F74 Node 12: $840F7C
Node 5: $840F75 Node 13: $840F7D
Node 6: $840F76 Node 14: $840F7E
Node 7: $840F77 Node 15: $840F7F
Commutation Position Feedback Address: Ix83
If PMAC2 is performing commutation for the motor (Ix01=1), Ix83 must specify the address where it
reads the position feedback for the commutation. When commutating across the MACRO ring, only
nodes that appear in PMAC2 Y-registers can be used for commutation (nodes 0, 1, 4, 5, 8, 9, 12, and 13).
If bit 19 of Ix83 is set to 1, PMAC2 uses a Y-register for commutation feedback. The values of Ix83 to
be used when commutating with MACRO are:
Node # Type 0 Phase
Current Mode
Type 0 Direct PWM
Mode
Type 1:
Either Mode
0 $8C0A2 $8C0A3 $8C0A0
1 $8C0A6 $8C0A7 $8C0A4
4 $8C0AA $8C0AB $8C0A8
5 $8C0AE $8C0AF $8C0AC
8 $8C0B2 $8C0B3 $8C0B0
9 $8C0B6 $8C0B7 $8C0B4
12 $8C0BA $8C0BB $8C0B8
13 $8C0BE $8C0BF $8C0BC
Commutation Cycle Size: Ix70, Ix71
When commutating across the MACRO ring with Type 0 protocol, the commutation position feedback
appears in the upper 16 bits of a 24-bit word. Therefore it appears to PMAC2 to be 256 times bigger than
it really is. The commutation cycle size is specified on PMAC2 as the ratio Ix71/Ix70. For a motor
commutated across MACRO with Type 0 protocol, the value of these variables should produce a ratio
256 times bigger than the number of counts in the commutation cycle. For example, for a two-pole motor
(one commutation cycle per revolution) with 4096 counts per revolution, Ix70 should be set to 1 and Ix71
should be set to 4096 * 256 = 1,048,576.