PDA

View Full Version : MC33926 Pololu Dual Motor Controller - Low DutyCycle = High Motor Speed ?



brobotic
01-16-2012, 02:26 AM
I just hooked up a MC33926 Dual Motor Controller and I am finding that when I send a low dutycycle (10%) the wheels spin very fast. If I send a high dutycycle (90%) the wheels spin slowly. Anyone know what might be causing this? I am new to this, so I could be missing something obvious. My current configuration is the following:

D1 and D2 are inactive (jumpered)
SLEW (Jumpered)
IN1 and IN2 is used for PWM

Thanks in advance,

erco
01-16-2012, 03:49 AM
Sounds backwards to me. Per Pololu, http://www.pololu.com/catalog/product/1213, Since this board is a carrier for the Freescale Semiconductor MC33926 H-bridge, we recommend careful reading of the MC33926 datasheet (1MB pdf).




Are you sure your disable lines aren't active? This sounds much like what you describe:
Disable input: when D1 is high, OUT1 and OUT2 are set to high impedance. A D1 PWM duty cycle of 70% gives a motor duty cycle of 30%. Typically, only one of the two disable pins is used, but the default is for both disable pins to be active.

GordonMcComb
01-16-2012, 03:52 AM
Your PWM signal is inverted. You don't mention the microcontroller you're using, how you've interfaced it to the controller, etc. The specifics would be helpful in this case.

-- Gordon

brobotic
01-16-2012, 04:13 AM
Erco, Gordon, - Thanks for the responses. Based on the documentation you should be able to just use IN1 and IN2 for control (to use less pins), by setting both disable lines to inactive. I placed jumpers on both disable lines thinking that would do the trick, but that may be where my problem is?


I'm using a gangster gadget - Propeller board, and I have the following setup:

IN1 IN2 (motor2) = pin 5 and 6
IN1 IN2 (motor1) = pin 7 and 8
VDD and GND is connected to the MCU


I'm using the PWM_32_v4.spin object, with the following example:



'repeat DutyCycle from 0 to 1
PWM.Duty(7,DutyCycle,5000) '' Ramp Duty cycle up from 0 to 100
repeat 10000
repeat 1000000 '' Hold at 100% for a little bit

'repeat DutyCycle from 1 to 0
PWM.Duty(7,DutyCycle,5000) '' Ramp Duty cycle down from 100 to 0
repeat 10000
repeat 1000000 '' Hold at 0% for a little bit


Thanks again