MC33926 ISSUE.

bernard

Well-known member
Hi.
First note that i did not use the mow motor from shop but a similar one.

When the mow motor stop it brake immediatly and very hard.
In the past i use the mow motor at PWM=200 and the sense is between 200 and 800ma without any issue during 2 years.
Yesterday i made a test at PWM=255 and no particular problem before i stop it (it brake immediatly) and the driver crash.

Now always mow error (if i change with the driver wheel motor it's right motor error) so certainly the MC33926 is dead.

Why did the brake is so hard and how did it work to stop immediatly the DC motor ???
Maybe the 2 output in parallel ?

Maybe it's better to brake only on safety and not on normal OFF (reduce the PWM slowly for 2 second)

By.
 
Hi Bernard,

I had the same experiance in my software. I think, that when the motor stops too fast, the back current the motor produces is too high. When I Stop the motor now, I do it in steps.
 
Hi,
maybe its the motor bearings or brushes. I have changed my mow motor bearings 2 years ago, and this year one drive motor(old Ambrogio one) has given up on me. For testing I have connected it to a bench powersupply 29v 3A, the voltage drops to 8v, and the motor only turns very slow. When I remove the gears its the same.

Did you test the motor without driver? Is it also breaking hard?
 
Hi.
Thanks Roland i will do the change also into Azurit and post the code when finish.
Maybe it's better to keep the hard stop on tilt for safety.
By.
 
Currently I have the same issue again. When the driver goes in fault state, the motor runs a long time. When I reset the fault, the motor stops.
I have changed the PWM frequency to 20000Hz.
At the moment no clue what to do better.

Bernard, did you solved the problem?
 
Hi Roland.
I don't understand this :
When the driver goes in fault state, the motor runs a long time. When I reset the fault, the motor stops.
I think it's with Raindancer .
Into Azurit the reset simply disable and enable the motor imediatly after :

Code:
if (digitalRead(pinMotorMowFault) == LOW) {
    digitalWrite(pinMotorMowEnable, LOW);
    digitalWrite(pinMotorMowEnable, HIGH);
    Console.println(F("Reset motor mow fault"));[code]
[/code]

If i understand correctly, Here what's append to me:
2 pins are read from driver : M1_FB,and M1_SF ,so 2 errors are managed by Azurit:

1 the sense error
#define pinMotorMowSense A3 // M1_FB mower motor current sense
When the sense if over limit the mowing motor stop during 30 secondes and try to start again, if the current is high again the error occur.

2 The driver fault.
#define pinMotorMowFault 26 // M1_SF mower motor fault
It's what append to my driver (M1_SF is always LOW) and i don't know if it's possible to reset the driver itself???
When i skip the test the motor never work.
With a new MC33926 all is working correctly.

But remember that i only have this issue with my motor (24V DC 4.5 Amperes so bigger than ardumower motor) at full speed and on stop.

At PWM=200 i use the motor without issue during lot of time.

Other possibility is that the grass was very high (it's why i put PWM=255) so the sense was also near the max for a long duration and on hard stop the driver crash.

Please tell me if i understand correctly the working mode of the driver because i'am not really sure of what's happen.
In all case this week i work on the soft stop of the motor.

By.
 
I found the bug. When I drive in the chargingstation, I slow down the motor speed. When I switch to manual mode I set speed to zero. I will fix this.

When the driver goes in fault state, the motor runs a long time. When I reset the fault, the motor stops.
I think, if a fault is pending, the output of the driver goes on high impedance. The motor can not get rid of the energy and rotates a long time until it stops.


Thats how I solved it in my software:

The routine will be called each 198ms. Therfore I reduce the PWM each call by 29,7. The motor need 1.7second to stop.


case STMM_STOP:
speedCurr -= (float)interval * 0.15f; //= reduce pwm by 29,7 at 198 ms interval
if (speedCurr < 50)
speedCurr = 0;
mowMotorDriver.motor(motorNo, speedCurr);
break;



Please tell me if i understand correctly the working mode of the driver because i'am not really sure of what's happen.
In all case this week i work on the soft stop of the motor.

SF is low active: Status flag output: an over-current (short circuit) or over-temperature event will cause SF to be latched LOW. If either of the disable pins (D1 or D2) are disabling the outputs, SF will also be LOW. Otherwise, this pin is weakly pulled high. This allows the SF pins of multiple units to connected to a single input

The only way I know to reset the fault is by toggeling the enable pin.

The question is, why is SF always low. Maybe the driver is boken?
 
Hi Bernard,

did you solve this. Sometimes I get an error when I stop in manual mode also I ramp down the motor. I think the difference between your hardware and my is, that I have disconnected one driver for the mow motor from the output to get better current readings.
 
Hi Roland
Not for the moment i use the motor at PWM=200 and now the grass is not very high so no particular issue.
For the ramp when i have time i did it.
Certainly if you use one side of the driver the sense is not enough (only 3A) and the motor drain certainly more when brake immediatly so be carrefull.
What is strange is my driver crash at the brake moment and only one side (but like i tell you it was 4.5A motor at PWM=255 and in a lot spirale mowing and safety sense stop 3 or 4 times).

The MC33926 is very good driver for wheel motor but certainly to small for my mow motor.

It 's why i work on the Raspberry Pi soft side because i want to fast debug and record data for a long delay(many hour) so i can check more easily the value on particular sensor.
I read some post on PI but i want to use it as local to manage and record without permanent WIFI connection.

By.
 
Oben