I am looking for a way to control DC motor( Pololu 12V 100:1 z encoder 64 CPR 37Dx73L mm) through Pololu Driver 36v4. I have found in datasheet:
“Direct PWM mode is selected by setting the PWMMODE bit in the OFF register.”
And setting PWM into STEP/AIN1 and DIR/AIN2 low from ArduinoMEGA.
Is it all what should be done?
I have problem because at full PWM I have only 1/10th of nominal speed (at 12V) of the motor.
-Even when I use just digitalWrite(STEP,HIGH) it looks the same.
-By the way, when I plugged motor straight into 12V, it works fine about 100 RPM (with current around 250mA).
Could You help me with some specified informaction about setting of driver?
You should not need to do anything else to use the 36v4 in external PWM mode. Can you post some pictures of your setup and scope captures showing what is going on? What is your power supply, and are you modifying the TORQUE or ISGAIN bits from their defaults?
By the way, the 36v4 is optimized for driving stepper motors, and while it is possible to use it to drive DC motors, there are generally other choices that are easier to use and more cost effective. Is there a particular reason you want to use this driver?
Thank You for answer and all information. For default We use it for stepper motor(and it works), but we need new feature for using stepper and DC motor - interchangeably, so that is why I assume whole SPI and power connection is ok.
Ok, all clear the reason was low Current (TORQUE), I set 250mA like in motor datasheet when I set more then 850mA all start to drive well. I get lower RPM with lower PWM.
Thank You for leading me in this direction.
But do You know why the current must be so high? What is going on in range 250mA - 800mA), when I was setting 250mA +50mA in iterations to 800mA nothing was changing (the current was still around 0.07A) and RPM still low (the same as in 250mA).
Laboratory Voltage supply DF1743005C, I don’t get Over load protection:).
I am glad to hear you got it working! I suspect your having to increase the current limit has to do with the motor requiring more current when it starts up. However, we have not tested these drivers as extensively with brushed DC motors, so I am not sure why you are seeing different results when you test with your driver and your power supply. If you would like to investigate that further, my recommendation would be to take a look at what is happening in each case with an oscilloscope (though the ideal tool to use would probably be a current probe which is a pretty expensive tool and might be hard to find unless you are at a university or electronics company).
Thank You for all Your help, I will try to check the current settings.
Meanwhile I would like to ask about the short circuit protection.
We are changing direction quite often so I would like to secure the motor from short circuit(opening both Mosfets at same time).
Of course I have delays in my software, but You never know:).
Is there anything I can do with settting of the drive to protect motor from short circuit while changing AIN/BIN 1 to AIN/BIN 2? (any delay?).
I recommend reading section 7.3.7 of the DRV8711 datasheet which discusses this topic. The most relevant part is this:
The predriver circuits include enforcement of a dead time in analog circuitry, which prevents the high-side and
low-side FETs from conducting at the same time. Additional dead time is added with digital delays. This delay
can be selected by setting the DTIME bits in the CTRL register.
In general, I do not think shorts from changing direction should be a problem, but you can try looking at things with an oscilloscope and increasing the dead time if you think it is necessary.
Thank You one more, time. It looks fine.
I am trying to use the tic 36v4 in order to run a DC motor.
Can you please help me out understanding how to set the PWMMODE bit in the OFF register ?
I went over all the Tic’s manual and I can seem to find the right way to tweak with the 8711 registers.
I responded to this question in the thread you started here.