Tool/software:
Hello!
We have tested the evaluation board with a BLDC motor from Maxon (283828) connected to two different planetary gears (1:29 and 1:84 reduction). We want to control this motor using a PID position controller, and therefore we need to be able to change the direction of the motor if the controller output causes an overshoot in position.
When direction is changed sometimes a fault is triggered. We have been able to reproduce this fault using the following procedure:
1. Run the motor at low speed (20 of max 255 PWM output).
2. Stop the motor for 1 second (same behaviour without this pause)
3. Change direction using DIR pin
4. Run the motor at any speed (e.g. 120 of max 255 PWM output). -> Motor will not start, after 1 second the fault LED will light up for 0.5 seconds, and then the motor will start.
Somehow using the following procedure will not produce a fault:
1. Run the motor at normal/medium speed (120 of max 255 PWM output).
2. Stop the motor for 1 second (same behaviour without this pause)
3. Change direction using DIR pin
4. Run the motor at any speed (e.g. 120 of max 255 PWM output). -> Motor starts immediately without problem.
One workaround we found by coincidence is that if DRVOFF is toggled on/off for a short period (tested with 30 us) after changing the DIR pin state, the motor will start fine without any fault being triggered (just a small blink in the LED when the DRVOFF signal is high).
Is there any explanation to this behaviour? Is there anything we can do to avoid pulsing the DRVOFF pin when changing direction?
We use an Arduino Nano ESP32 to supply the PWM signal, using the LEDC library (docs.espressif.com/.../ledc.html). The PWM signal has a frequency of 50 kHz, and the resolution is set to 8 bit.