JAJSR16 august 2023 MCF8316C-Q1
PRODUCTION DATA
Table 7-55 lists the memory-mapped registers for the Algorithm_Control registers. All register offset addresses not listed in Table 7-55 should be considered as reserved locations and the register contents should not be modified.
Offset | Acronym | Register Name | Section |
---|---|---|---|
ECh | ALGO_DEBUG1 | Algorithm Control Register | Go |
EEh | ALGO_DEBUG2 | Algorithm Control Register | Go |
F0h | CURRENT_PI | Current PI Controller used | Go |
F2h | SPEED_PI | Speed PI controller used | Go |
F4h | DAC_1 | DAC1 Control Register | Go |
F6h | DAC_2 | DAC2 Control Register | Go |
Complex bit access types are encoded to fit into small table cells. Table 7-56 shows the codes that are used for access types in this section.
Access Type | Code | Description |
---|---|---|
Read Type | ||
R | R | Read |
Write Type | ||
W | W | Write |
Reset or Default Value | ||
-n | Value after reset or the default value |
ALGO_DEBUG1 is shown in Figure 7-83 and described in Table 7-57.
Return to the Summary Table.
Algorithm control register for debug
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
OVERRIDE | DIGITAL_SPEED_CTRL | ||||||
W-0h | W-0h | ||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
DIGITAL_SPEED_CTRL | |||||||
W-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
CLOSED_LOOP_DIS | FORCE_ALIGN_EN | FORCE_SLOW_FIRST_CYCLE_EN | FORCE_IPD_EN | FORCE_ISD_EN | FORCE_ALIGN_ANGLE_SRC_SEL | FORCE_IQ_REF_SPEED_LOOP_DIS | |
W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
FORCE_IQ_REF_SPEED_LOOP_DIS | |||||||
W-0h | |||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | OVERRIDE | W | 0h | Use to control the SPD_CTRL bits.
If OVERRIDE = '1', speed command can be written by the user through serial interface.
0h = SPEED_CMD using Analog/PWM mode 1h = SPEED_CMD using DIGITAL_SPEED_CTRL |
30-16 | DIGITAL_SPEED_CTRL | W | 0h | Digital Speed Control If OVERRIDE = 0b1, then SPEED_CMD is control using DIGITAL_SPEED_CTRL |
15 | CLOSED_LOOP_DIS | W | 0h | Use to disable Closed loop
0h = Enable Closed Loop 1h = Disable Closed loop, motor commutation in open loop |
14 | FORCE_ALIGN_EN | W | 0h | Force Align State Enable
0h = Disable Force Align state, device comes out of align state if MTR_STARTUP is selected as ALIGN or DOUBLE ALIGN 1h = Enable Force Align state, device stays in align state if MTR_STARTUP is selected as ALIGN or DOUBLE ALIGN |
13 | FORCE_SLOW_FIRST_CYCLE_EN | W | 0h | Force Slow First Cycle Enable
0h = Disable Force Slow First Cycle state, device comes out of slow first cycle state if MTR_STARTUP is selected as SLOW FIRST CYCLE 1h = Enable Force Slow First Cycle state, device stays in slow first cycle state if MTR_STARTUP is selected as SLOW FIRST CYCLE |
12 | FORCE_IPD_EN | W | 0h | Force IPD Enable
0h = Disable Force IPD state, device comes out of IPD state if MTR_STARTUP is selected as IPD 1h = Enable Force IPD state, device stays in IPD state if MTR_STARTUP is selected as IPD |
11 | FORCE_ISD_EN | W | 0h | Force ISD enable
0h = Disable Force ISD state, device comes out of ISD state if ISD_EN is set 1h = Enable Force ISD state, device stays in ISD state if ISD_EN is set |
10 | FORCE_ALIGN_ANGLE_SRC_SEL | W | 0h | Force Align Angle State Source Select
0h = Force Align Angle defined by ALIGN_ANGLE 1h = Force Align Angle defined by FORCED_ALIGN_ANGLE |
9-0 | FORCE_IQ_REF_SPEED_LOOP_DIS | W | 0h | Sets IQ Ref (% of BASE_CURRENT) when speed loop is disabled If SPEED_LOOP_DIS = 0b1, then Iq_ref is control using IQ_REF_SPEED_LOOP_DIS iqRef = (FORCE_IQ_REF_SPEED_LOOP_DIS /500) * BASE_CURRENT if FORCE_IQ_REF_SPEED_LOOP_DIS < 500 (FORCE_IQ_REF_SPEED_LOOP_DIS - 1024)/500 * BASE_CURRENT if FORCE_IQ_REF_SPEED_LOOP_DIS > 512 Valid values are 0 to 500 and 512 to 1000 |
ALGO_DEBUG2 is shown in Figure 7-84 and described in Table 7-58.
Return to the Summary Table.
Algorithm control register for debug
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | FORCE_RECIRCULATE_STOP_SECTOR | FORCE_RECIRCULATE_STOP_EN | CURRENT_LOOP_DIS | FORCE_VD_CURRENT_LOOP_DIS | |||
W-0h | W-0h | W-0h | W-0h | W-0h | |||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
FORCE_VD_CURRENT_LOOP_DIS | |||||||
W-0h | |||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
FORCE_VQ_CURRENT_LOOP_DIS | |||||||
W-0h | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
FORCE_VQ_CURRENT_LOOP_DIS | MPET_CMD | MPET_R | MPET_L | MPET_KE | MPET_MECH | MPET_WRITE_SHADOW | |
W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31 | RESERVED | W | 0h | Reserved |
30-28 | FORCE_RECIRCULATE_STOP_SECTOR | W | 0h | use to do the recirculation at specific sector during force motor stop condition
0h = The last sector before stop condition 1h = Sector1 2h = Sector2 3h = Sector3 4h = Sector4 5h = Sector5 6h = Sector6 7h = The last sector before stop condition |
27 | FORCE_RECIRCULATE_STOP_EN | W | 0h | Force recirculate stop Enable
0h = Enable Force recirculate stop 1h = Disable Force recirculate stop |
26 | CURRENT_LOOP_DIS | W | 0h | Use to control the FORCE_VD_CURRENT_LOOP_DIS and FORCE_VQ_CURRENT_LOOP_DIS.
If CURRENT_LOOP_DIS = '1', Current loop and speed loop is disabled
0h = Enable Current Loop 1h = Disable Current Loop |
25-16 | FORCE_VD_CURRENT_LOOP_DIS | W | 0h | Sets Vd when current loop speed loop are disabled If CURRENT_LOOP_DIS = 0b1, then Vd is control using FORCE_VD_CURRENT_LOOP_DIS mdRef = (FORCE_VD_CURRENT_LOOP_DIS /500) if FORCE_VD_CURRENT_LOOP_DIS < 500 (FORCE_VD_CURRENT_LOOP_DIS - 1024)/500 if FORCE_VD_CURRENT_LOOP_DIS > 512 Valid values: 0 to 500 and 512 to 1000 |
15-6 | FORCE_VQ_CURRENT_LOOP_DIS | W | 0h | Sets Vq when current loop speed loop are disabled If CURRENT_LOOP_DIS = 0b1, then Vq is control using FORCE_VQ_CURRENT_LOOP_DIS mqRef = (FORCE_VQ_CURRENT_LOOP_DIS /500) if FORCE_VQ_CURRENT_LOOP_DIS < 500 (FORCE_VQ_CURRENT_LOOP_DIS - 1024)/500 if FORCE_VQ_CURRENT_LOOP_DIS > 512 Valid values: 0 to 500 and 512 to 1000 |
5 | MPET_CMD | W | 0h | Initiates motor parameter measurement routine when set to 1 |
4 | MPET_R | W | 0h | Enables motor resistance measurement during motor parameter measurement routine
0h = Disables Motor Resistance measurement during motor parameter measurement routine 1h = Enable Motor Resistance measurement during motor parameter measurement routine |
3 | MPET_L | W | 0h | Enables motor inductance measurement during motor parameter measurement routine
0h = Disables Motor Inductance measurement during motor parameter measurement routine 1h = Enable Motor Inductance measurement during motor parameter measurement routine |
2 | MPET_KE | W | 0h | Enables motor BEMF constant measurement during motor parameter measurement routine
0h = Disables Motor BEMF constant measurement during motor parameter measurement routine 1h = Enable Motor BEMF constant measurement during motor parameter measurement routine |
1 | MPET_MECH | W | 0h | Enables motor mechanical parameter measurement during motor parameter measurement routine
0h = Disables Motor mechanical parameter measurement during motor parameter measurement routine 1h = Enable Motor mechanical parameter measurement during motor parameter measurement routine |
0 | MPET_WRITE_SHADOW | W | 0h | Write measured parameters to shadow register when set to 1 |
CURRENT_PI is shown in Figure 7-85 and described in Table 7-59.
Return to the Summary Table.
Current PI controller used
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CURRENT_LOOP_KI | CURRENT_LOOP_KP | ||||||||||||||||||||||||||||||
R-0h | R-0h | ||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-16 | CURRENT_LOOP_KI | R | 0h | 10 bit for current loop ki Same Scaling as CURR_LOOP_KI |
15-0 | CURRENT_LOOP_KP | R | 0h | 10 bit for current loop kp Same Scaling as CURR_LOOP_KP |
SPEED_PI is shown in Figure 7-86 and described in Table 7-60.
Return to the Summary Table.
Speed PI controller used
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
SPEED_LOOP_KI | SPEED_LOOP_KP | ||||||||||||||||||||||||||||||
R-0h | R-0h | ||||||||||||||||||||||||||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-16 | SPEED_LOOP_KI | R | 0h | 10 bit for Speed loop ki Same Scaling as SPD_LOOP_KI |
15-0 | SPEED_LOOP_KP | R | 0h | 10 bit for Speed loop kp Same Scaling as SPD_LOOP_KP |
DAC_1 is shown in Figure 7-87 and described in Table 7-61.
Return to the Summary Table.
DAC1 Control Register
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | DACOUT1_ENUM_SCALING | DACOUT1_SCALING | |||||
R-0h | W-8h | W-8h | |||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
DACOUT1_SCALING | DACOUT1_UNIPOLAR | DACOUT1_VAR_ADDR | |||||
W-8h | W-0h | R/W-0h | |||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DACOUT1_VAR_ADDR | |||||||
R/W-0h | |||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-21 | RESERVED | R | 0h | Reserved |
20-17 | DACOUT1_ENUM_SCALING | W | 8h | Multiplication Factor for DACOUT1 Algorithm Variable extracted from the address contained in DACOUT1_VAR_ADDR multiplied with 2DACOUT1_ENUM_SCALING. DACOUT1_ENUM_SCALING comes into effect only if DACOUT1_SCALING is zero |
16-13 | DACOUT1_SCALING | W | 8h | Scaling factor for DACOUT1
Algorithm Variable extracted from the address contained in DACOUT1_VAR_ADDR scaled with DACOUT1_SCALING / 8. Actual voltage depends on DACOUT1_UNIPOLAR.
If DACOUT1_UNIPOLAR = 1, 0V == 0pu of algorithmVariable * DACOUT1_SCALING / 8, 3V == 1pu of algorithmVariable * DACOUT1_SCALING / 8
If DACOUT1_UNIPOLAR = 0, 0V == -1pu of algorithmVariable * DACOUT1_SCALING / 8, 3V == 1pu of algorithmVariable * DACOUT1_SCALING / 8
0h = Treated as Enum with max value being 31 1h = 1 / 8 2h = 2 / 8 3h = 3 / 8 4h = 4 / 8 5h = 5 / 8 6h = 6 / 8 7h = 7 / 8 8h = 8 / 8 9h = 9 / 8 Ah = 10 / 8 Bh = 11 / 8 Ch = 12 / 8 Dh = 13 / 8 Eh = 14 / 8 Fh = 15 / 8 |
12 | DACOUT1_UNIPOLAR | W | 0h | Configures output of DACOUT1
If DACOUT1_UNIPOLAR = 1, 0V == 0pu of algorithmVariable * DACOUT1_SCALING / 16, 3V == 1pu of algorithmVariable * DACOUT1_SCALING / 16
If DACOUT1_UNIPOLAR = 0, 0V == -1pu of algorithmVariable * DACOUT1_SCALING / 16, 3V == 1pu of algorithmVariable * DACOUT1_SCALING / 16
0h = Bipolar (Offset of 1.5 V) 1h = Unipolar (No Offset) |
11-0 | DACOUT1_VAR_ADDR | R/W | 0h | 12-bit address of variable to be monitored |
DAC_2 is shown in Figure 7-88 and described in Table 7-62.
Return to the Summary Table.
DAC2 Control Register
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
RESERVED | |||||||
R-0h | |||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
RESERVED | DACOUT2_ENUM_SCALING | DACOUT2_SCALING | |||||
R-0h | W-X | W-8h | |||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
DACOUT2_SCALING | DACOUT2_UNIPOLAR | DACOUT2_VAR_ADDR | |||||
W-8h | W-0h | R/W-0h | |||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DACOUT2_VAR_ADDR | |||||||
R/W-0h | |||||||
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
31-23 | RESERVED | R | 0h | Reserved |
22-19 | DACOUT2_ENUM_SCALING | W | X | Multiplication Factor for DACOUT2 Algorithm Variable extracted from the address contained in DACOUT2_VAR_ADDR multiplied with 2DACOUT2_ENUM_SCALING. DACOUT2_ENUM_SCALING comes into effect only if DACOUT2_SCALING is zero |
18-15 | DACOUT2_SCALING | W | 8h | Scaling factor for DACOUT2
Algorithm Variable extracted from the address contained in DACOUT2_VAR_ADDR scaled with DACOUT2_SCALING / 8. Actual voltage depends on DACOUT2_UNIPOLAR.
If DACOUT2_UNIPOLAR = 1, 0V == 0pu of algorithmVariable * DACOUT2_SCALING / 8, 3V == 1pu of algorithmVariable * DACOUT2_SCALING / 8
If DACOUT2_UNIPOLAR = 0, 0V == -1pu of algorithmVariable * DACOUT2_SCALING / 8, 3V == 1pu of algorithmVariable * DACOUT2_SCALING / 8
0h = Treated s Enum with max value being 31 1h = 1 / 8 2h = 2 / 8 3h = 3 / 8 4h = 4 / 8 5h = 5 / 8 6h = 6 / 8 7h = 7 / 8 8h = 8 / 8 9h = 9 / 8 Ah = 10 / 8 Bh = 11 / 8 Ch = 12 / 8 Dh = 13 / 8 Eh = 14 / 8 Fh = 15 / 8 |
14 | DACOUT2_UNIPOLAR | W | 0h | Configures output of DACOUT2
If DACOUT2_UNIPOLAR = 1, 0V == 0pu of algorithmVariable * DACOUT2_SCALING / 16, 3V == 1pu of algorithmVariable * DACOUT2_SCALING / 16
If DACOUT2_UNIPOLAR = 0, 0V == -1pu of algorithmVariable * DACOUT2_SCALING / 16, 3V == 1pu of algorithmVariable * DACOUT2_SCALING / 16
0h = Bipolar (Offset of 1.5 V) 1h = Unipolar (No Offset) |
13-0 | DACOUT2_VAR_ADDR | R/W | 0h | 14-bit address of variable to be monitored |