Other Parts Discussed in Thread: LAUNCHXL-F28379D, , DRV8305, BOOSTXL-3PHGANINV, DRV8312, BOOSTXL-DRV8301
Hi,
I'm working with LaunchXL-F28379D + BoostXL-DRV8305EVM to implement PMSM-FOC.
I wish to stop and start the motor from software, with PVDD "ON" (24V) at all times. The expected behavior is as follows:
STOP: Put all MOSFETs in high impedance state.
START: Start switching MOSFETs as per PWM duty cycles generated from the LaunchXL-f28379D.
So far, I've used "EN_GATE" pin of DRV8305 by toggling GPIO124 of LaunchXL-f28379D to stop and start the motor as required.
However, recently I noticed that the EN_GATE is probably not the best way to implement this functionality.
This is because DRV8305 has its own internal start-up sequence for charge-pump for upper MOSFETs.
So, it'd be incorrect to "START" the switching via EN_GATE as
- The MOSFETs might not switch properly for first few cycles (upto 1 ms as per section 7.3.3 of DRV8305 datasheet)
- The Current Sense amplifiers outputs (and in turn ADC inputs) will be affected for first few cycles, until DRV8305 is ready.
This leaves me with the question: What is the recommended way to implement this functionality?
Notes:
1) The DRV8305 is in 6 PWM mode for now.
2) I am also using 3 PWM mode for a separate project. I need solution for both 6 PWM mode & 3 PWM modes.
3) A generic solution will be much appreciated, as I'm also working with BOOSTXL-DRV8301, BOOSTXL-3PHGANINV and DRV8312 C2 KIT (Will post separate question, if needed for these boards).
4) I thought of applying 0% PWM duty, but that'll turn "ON" bottom MOSFETs as I'm generating PWM in complimentary switching mode. This is not recommended as it'll appear as a "Short-circuit" to motor's back-emf if it spins via external torque. High impedance states of the MOSFETs ensures that motor sees "Open circuit" in case of external motion.