Recommended way to implement 6-step BLDC commutation with LCU complementary PWM and dead time? Hi everyone, I am working on a 3-phase BLDC 6-step commutation project on S32K311 using: eMIOS for PWM generation TRGMUX LCU GD3000 gate driver RTD 5.0.0 My phase mapping is: U_HS = eMIOS ch0 U_LS = eMIOS ch1 V_HS = eMIOS ch2 V_LS = eMIOS ch3 W_HS = eMIOS ch4 W_LS = eMIOS ch5 I use the following LUT values: #define LCU_LUT_OFF 0x0000U #define LCU_LUT_PWM 0xAAAAU #define LCU_LUT_INV_PWM 0x5555U #define LCU_LUT_ON 0xFFFFU Initially I implemented commutation by dynamically changing the LUTs every sector using: Lcu_Ip_SetSyncOutputLutControl(LCU_LutList, 6U); Example for V+ / W-: Emios_Pwm_Ip_SetDutyCycle(EMIOS_INSTANCE, PWM_CHANNEL_V_HS, activeDuty); LCU_LutList[PWM_CHANNEL_V_HS].Value = LCU_LUT_PWM; LCU_LutList[PWM_CHANNEL_V_LS].Value = LCU_LUT_INV_PWM; LCU_LutList[PWM_CHANNEL_W_LS].Value = LCU_LUT_ON; Lcu_Ip_SetSyncOutputLutControl(LCU_LutList, 6U); A strange issue occurs: If I configure V_HS once before the loop, PWM is present. After entering the commutation loop and repeatedly calling Lcu_Ip_SetSyncOutputLutControl(), V_HS stops switching, while the other channels continue to work. This made me wonder whether dynamic synchronized LUT updates are the correct approach for motor commutation. My main question For S32K311 + GD3000, what is the recommended architecture for: 3 complementary PWM pairs dead-time insertion 6-step commutation safe switching Should I: Keep the LCU LUTs static (PWM / INV_PWM) and perform commutation only by changing LCU output enable/override states? Use Lcu_Ip_SetOutputLutControl() (immediate update) instead of Lcu_Ip_SetSyncOutputLutControl()? Avoid dynamic LUT rewriting completely? Dead-time question I would like to generate complementary PWM with dead time using the LCU. Is the intended method to: Generate only 3 base PWMs with eMIOS (U, V, W), Route them through TRGMUX to the LCU, Use fixed LUTs: HS = 0xAAAA LS = 0x5555 Configure dead time in the LCU output/filter settings, And then change only the output enable/override for each commutation sector? If there is an NXP example (RTD or MBDT) that demonstrates 6-step BLDC with LCU complementary PWM and dead-time insertion, I would greatly appreciate a reference. Thank you! Re: Recommended way to implement 6-step BLDC commutation with LCU complementary PWM and dead time? Hi@Esakki
you can refer to out motor solution in the link below, you can find the demo code and application node in this page:
https://www.nxp.com/design/design-center/development-boards-and-designs/MCSPTE1AK344
For example, in the six-step method for BLDC, changing the rotation direction of the motor is usually not achieved by updating the state of the LCU, you can take a look at our demo code and application node.
記事全体を表示