SLVSJZ0 October 2025 MCF8316D-Q1
PRODUCTION DATA
Table 8-14 lists the memory-mapped registers for the Algorithm_Control registers. All register offset addresses not listed in Table 8-14 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 | Section 8.4.1 |
| EEh | ALGO_DEBUG2 | Algorithm Control Register | Section 8.4.2 |
| F0h | CURRENT_PI | Current PI Controller used | Section 8.4.3 |
| F2h | SPEED_PI | Speed PI controller used | Section 8.4.4 |
| F4h | DAC_1 | DAC1 Control Register | Section 8.4.5 |
| F6h | DAC_2 | DAC2 Control Register | Section 8.4.6 |
| F8h | EEPROM_SECURITY | EEPROM Security Control Register | Section 8.4.7 |
Complex bit access types are encoded to fit into small table cells. Table 8-15 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 8-8 and described in Table 8-16.
Return to the Summary Table.
Algorithm control register for debug
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| OVERRIDE | DIGITAL_SPEED_CTRL | ||||||
| R/W-0h | R/W-0h | ||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DIGITAL_SPEED_CTRL | |||||||
| R/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 | RESERVED | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R-0h | |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||
| R-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | OVERRIDE | R/W | 0h | Use to control the reference input mode.
If OVERRIDE = 0x1, speed command can be written by the user through I2C interface irrespective of SPEED_MODE setting.
|
| 30-16 | DIGITAL_SPEED_CTRL | R/W | 0h | Reference input when OVERRIDE is set 0x1 or SPEED_MODE is set to 0x2. Reference input = (DIGITAL_SPEED_CTRL/32768 *100)% |
| 15 | CLOSED_LOOP_DIS | R/W | 0h | Use to disable closed loop operation
|
| 14 | FORCE_ALIGN_EN | R/W | 0h | Enable force align state
|
| 13 | FORCE_SLOW_FIRST_CYCLE_EN | R/W | 0h | Enable force slow first cycle
|
| 12 | FORCE_IPD_EN | R/W | 0h | Enable force IPD
|
| 11 | FORCE_ISD_EN | R/W | 0h | Enable force ISD
|
| 10 | FORCE_ALIGN_ANGLE_SRC_SEL | R/W | 0h | Select force align angle source
|
| 9-0 | RESERVED | R | 0h | Reserved |
ALGO_DEBUG2 is shown in Figure 8-9 and described in Table 8-17.
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 | |||
| R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FORCE_VD_CURRENT_LOOP_DIS | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| FORCE_VQ_CURRENT_LOOP_DIS | |||||||
| R/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 | |
| R/W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | W-0h | |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | RESERVED | R | 0h | Reserved |
| 30-28 | FORCE_RECIRCULATE_STOP_SECTOR | R/W | 0h | Select the specific sector for recirculation stop if FORCE_RECIRCULATE_STOP_EN is set to 0x1
|
| 27 | FORCE_RECIRCULATE_STOP_EN | R/W | 0h | Enable force recirculate stop
|
| 26 | CURRENT_LOOP_DIS | R/W | 0h | Use to control the FORCE_VD_CURRENT_LOOP_DIS and FORCE_VQ_CURRENT_LOOP_DIS.
If CURRENT_LOOP_DIS = 0x1, Current loop and speed loop are disabled
|
| 25-16 | FORCE_VD_CURRENT_LOOP_DIS | R/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 | R/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 (MPET) routine when set to 0x1 |
| 4 | MPET_R | W | 0h | Enables motor resistance measurement during motor parameter measurement routine
|
| 3 | MPET_L | W | 0h | Enables motor inductance measurement during motor parameter measurement routine
|
| 2 | MPET_KE | W | 0h | Enables motor BEMF constant measurement during motor parameter measurement routine
|
| 1 | MPET_MECH | W | 0h | Enables motor mechanical parameter measurement during motor parameter measurement routine
|
| 0 | MPET_WRITE_SHADOW | W | 0h | Write measured parameters to shadow register when set to 0x1 |
CURRENT_PI is shown in Figure 8-10 and described in Table 8-18.
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 value for current loop Ki Same Scaling as CURR_LOOP_KI |
| 15-0 | CURRENT_LOOP_KP | R | 0h | 10 bit value for current loop Kp Same Scaling as CURR_LOOP_KP |
SPEED_PI is shown in Figure 8-11 and described in Table 8-19.
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 value for Speed loop Ki Same Scaling as SPD_LOOP_KI |
| 15-0 | SPEED_LOOP_KP | R | 0h | 10 bit value for Speed loop Kp Same Scaling as SPD_LOOP_KP |
DAC_1 is shown in Figure 8-12 and described in Table 8-20.
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 | R/W-8h | R/W-8h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DACOUT1_SCALING | DACOUT1_UNIPOLAR | DACOUT1_VAR_ADDR | |||||
| R/W-8h | R/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 | R/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 0x0 |
| 16-13 | DACOUT1_SCALING | R/W | 8h | Scaling factor for DACOUT1
Algorithm Variable extracted from the address contained in DACOUT1_VAR_ADDR scaled with DACOUT1_SCALING. Actual voltage depends on DACOUT1_UNIPOLAR.
If DACOUT1_UNIPOLAR = 0x1, Actual Value= ((DAC Voltage*Base Value) )/((3* DACOUT1_SCALING))
If DACOUT1_UNIPOLAR = 0x0, Actual Value= (((DAC Voltage-1.5)*Base Value) )/((1.5* DACOUT1_SCALING))
Base Current is 10/8 A, Base Speed is MAX_SPEED in Hz, Base Voltage for DC Bus Voltage is 60V, Base voltage for phase voltages is 60V/Sqrt(3)
Note: For currents recommended DACOUT1_SCALING is 2/8, for Voltages 8/8 and for Speed 7/8
|
| 12 | DACOUT1_UNIPOLAR | R/W | 0h | Configures output of DACOUT1
If DACOUT1_UNIPOLAR = 0x1, Actual Value= ((DAC1 Voltage*Base Value) )/((3* DACOUT1_SCALING))
If DACOUT1_UNIPOLAR = 0x0, Actual Value= (((DAC2 Voltage-1.5)*Base Value) )/((1.5* DACOUT1_SCALING))
Base Current is 10/8 A, Base Speed is MAX_SPEED in Hz, Base Voltage for DC Bus Voltage is 60V, Base voltage for phase voltages is 60V/Sqrt(3)
|
| 11-0 | DACOUT1_VAR_ADDR | R/W | 0h | 12-bit address of variable to be monitored on DACOUT1 |
DAC_2 is shown in Figure 8-13 and described in Table 8-21.
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 | R/W-Xh | R/W-8h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| DACOUT2_SCALING | DACOUT2_UNIPOLAR | DACOUT2_VAR_ADDR | |||||
| R/W-8h | R/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 | R/W | Xh | 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 0x0 |
| 18-15 | DACOUT2_SCALING | R/W | 8h | Scaling factor for DACOUT2
Algorithm Variable extracted from the address contained in DACOUT2_VAR_ADDR scaled with DACOUT2_SCALING . Actual voltage depends on DACOUT2_UNIPOLAR.
If DACOUT2_UNIPOLAR = 0x1, Actual Value= ((DAC2 Voltage*Base Value) )/((3* DACOUT2_SCALING))
If DACOUT2_UNIPOLAR = 0x0, Actual Value= (((DAC2 Voltage-1.5)*Base Value) )/((1.5* DACOUT2_SCALING))
Base Current is 10/8 A, Base Speed is MAX_SPEED in Hz, Base Voltage for DC Bus Voltage is 60V, Base voltage for phase voltages is 60V/Sqrt(3)
Note: For currents recommended DACOUT1_SCALING is 2/8, for Voltages 8/8 and for Speed information 7/8
|
| 14 | DACOUT2_UNIPOLAR | R/W | 0h | Configures output of DACOUT2
If DACOUT2_UNIPOLAR = 0x1, Actual Value= ((DAC2 Voltage*Base Value) )/((3* DACOUT2_SCALING))
If DACOUT2_UNIPOLAR = 0x0, Actual Value= (((DAC2 Voltage-1.5)*Base Value) )/((1.5* DACOUT2_SCALING))
Base Current is 10/8 A, Base Speed is MAX_SPEED in Hz, Base Voltage for DC Bus Voltage is 60V, Base voltage for phase voltages is 60V/Sqrt(3)
Note: For currents recommended DACOUT1_SCALING is 2/8, for Voltages 8/8 and for Speed information 7/8
|
| 13-0 | DACOUT2_VAR_ADDR | R/W | 0h | 14-bit address of variable to be monitored on DACOUT2 |
EEPROM_SECURITY is shown in Figure 8-14 and described in Table 8-22.
Return to the Summary Table.
EEPROM Security Control Register
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | USER_EEPROM_KEY | ||||||
| R-0h | R/W-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| USER_EEPROM_KEY | |||||||
| R/W-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 15 | RESERVED | R | 0h | Reserved |
| 14-0 | USER_EEPROM_KEY | R/W | 0h | User input key to unlock EEPROM for read/writes. Value in EEPROM_LOCK_KEY should be written here for unlocking EEPROM when EEPROM_LOCK_MODE = 0x1, 0x2 |