Hi,
I have here a BOOSTXL-DRV8323RX and a own designed power board with a DRV8300DI, where I implemented the same low side CSA setup
and I'm using the universal motor control lab. The only adjustment was to invert the EPWM polarity for INx_L, since the DRV8300DI is inverted:
Changed
EPWM_setDeadBandDelayPolarity(obj->pwmHandle[cnt],
EPWM_DB_FED,
EPWM_DB_POLARITY_ACTIVE_LOW);
to
EPWM_setDeadBandDelayPolarity(obj->pwmHandle[cnt],
EPWM_DB_FED,
EPWM_DB_POLARITY_ACTIVE_HIGH);
in hal.c
With the BOOSTXL-DRV8323RX board, the motor runs fine and I also did the identification with this board. When I try out my own board and want to run the motor,
it immediately triggers an overcurrent failure and the motor seems to make a small movement of maybe 5°. Since the calibration for the offsets works fine on both boards,
I further investigated the CSA at startup and found the following behaviour:
On the BOOSTXL-DRV8323RX (Note, that the yellow graph is the interrupt triggering of the current controller (where the current is measured) at change and the blue one is the phase U current measurement):
On my own board:
So, it seems that the current measurement is too slow or somehow the trigger is wrong, I'm not sure about it. Since the DRV8300DI is inverted and so the INLx needs to be high and low at the same time like INHx, there might be another setting necessary?For my own board I oriented at the DRV8300DIPW-EVM for the CSA part, so I really don't see what is wrong here.
Edit: I could solve it, the current sensing was inverted.