Go Down

### Topic: Is there a loss in voltage to motor through motor driver? (Read 286 times)previous topic - next topic

#### DryRun

##### Jul 17, 2019, 06:19 pmLast Edit: Jul 17, 2019, 06:27 pm by DryRun
Hello,

I'm using 2 DC motors, each rated at 6V which means that they will give optimal performance at 6 V.

To control these two motors at optimal performance, i am using a TB6612 motor driver and two 18650 batteries which give about 7.4 V through a 6V step-down voltage regulator which is then connected to the VMOT pin of the motor driver.

My question: does this mean that exactly 6 V reaches the motors, through the AO1, AO2, BO1 and BO2 pins? Is there no voltage drop when the voltage goes through the TB6612 driver?

This is the TB6612 driver: https://www.pololu.com/product/713 and it has a schematic on that same page, but i can't figure it out:

#### slipstick

#1
##### Jul 17, 2019, 07:45 pm
Like every other semiconductor switching device a TB6612 will drop some voltage depending on the current the motor is taking. The specification says 0.5V at 1A which is reasonable.

Steve

#### DryRun

#2
##### Jul 17, 2019, 09:19 pmLast Edit: Jul 17, 2019, 09:22 pm by DryRun
Like every other semiconductor switching device a TB6612 will drop some voltage depending on the current the motor is taking. The specification says 0.5V at 1A which is reasonable.

Steve
Thanks for the reply. To solidify my understanding, did you obtain these values from the Output saturating voltage of the TB6612 datasheet?
IO = 1 A, VCC = VM = 5 V
Datasheet: https://www.pololu.com/file/0J86/TB6612FNG.pdf

#### slipstick

#3
##### Jul 17, 2019, 10:51 pm
That's the one. Though I started from the headline features which gives Output Resistance as 0.5 Ohms and therefore 0.5V @ 1A.

Steve

#### MarkT

#4
##### Jul 20, 2019, 02:37 pm
Specifically the output upper and lower FETs total on-resistance is quoted as 0.5 ohms (typical) in the datasheet,
and from the saturation spec its clear worst-case is 0.7 ohms.

So for a motor pulling 0.5A at 7.4V supply, it should see about 7V worst case (drop of 0.35V).

Do not use a regulator for Vmot, take the 7.4V straight from the battery pack.  Power electronics
is all about switching, not linear regulation.  You'll only create lots of unwanted heat and waste
power using a regulator (as well as need more components).  Use lots of decoupling (220uF or more)
on the Vmot if possible to reduce switching noise.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

#### DryRun

#5
##### Jul 20, 2019, 04:48 pm
Specifically the output upper and lower FETs total on-resistance is quoted as 0.5 ohms (typical) in the datasheet,
and from the saturation spec its clear worst-case is 0.7 ohms.

So for a motor pulling 0.5A at 7.4V supply, it should see about 7V worst case (drop of 0.35V).

Do not use a regulator for Vmot, take the 7.4V straight from the battery pack.  Power electronics
is all about switching, not linear regulation.  You'll only create lots of unwanted heat and waste
power using a regulator (as well as need more components).  Use lots of decoupling (220uF or more)
on the Vmot if possible to reduce switching noise.
Thank you for your advice. I am actually aiming to obtain a linear variation between the voltage supplied to the motors (PWM from my Arduino UNO) and the torque/speed produced by the motors. So, that's the reason why i think that although you are right, i will still need to provide a regulated voltage to the Vmot pin on the TB6612 motor driver.

#### Slumpert

#6
##### Jul 21, 2019, 03:01 am
I am actually aiming to obtain a linear variation between the voltage supplied to the motors.
To be clear, the only "vary" that driver can supply to your motors is On/Off.

To supply the motors with variable voltage you would need to adjust the supply voltage going to the driver or add a variable resistance between the driver and the motor.

#### jremington

#7
##### Jul 21, 2019, 03:20 amLast Edit: Jul 21, 2019, 03:28 am by jremington
Quote
i will still need to provide a regulated voltage to the Vmot pin on the TB6612 motor driver.
Doing so will waste considerable energy and gain you nothing.

#### DryRun

#8
##### Jul 21, 2019, 03:54 amLast Edit: Jul 21, 2019, 04:04 am by DryRun
To be clear, the only "vary" that driver can supply to your motors is On/Off.

To supply the motors with variable voltage you would need to adjust the supply voltage going to the driver or add a variable resistance between the driver and the motor.
I am controlling the power to the 2 DC motors via the motor driver connected to my Arduino UNO. I am using the PWM pins on the Arduino to send a value between 0 and 255 to control the speed and hence torque of the motors.

Doing so will waste considerable energy and gain you nothing.
If i take 7.4 V directly from the battery, then there are at least 2 main problems that i can think of, assuming that i am correct:
1. The motors are rated at 6 V, which means that they have optimal performance at 6 V and supplying any other voltage would mean that the performance is not going to be linear.
2. As the battery voltage drops with time, the voltage to the motors will also drop (unless a voltage regulator is used to maintain the voltage at a fixed value) and this will cause the torque to drop. For example, if i am getting a specific torque value for a PWM of 150 sent by my Arduino UNO to the motor driver, then as the voltage naturally drops with time due to using the motors, the torque at PWM=150 will be less. And my goal is to have a fixed torque for a PWM value, so that i do not have to constantly adjust the PWM value. I want to make a graph of average voltage sent to the motor (set by the PWM value from Arduino) against torque, and have this graph be valid over time, since it will not be possible without always making sure that a fixed voltage is being sent to the motor. For example, initially, when the battery is fully charged, it has 7.4 V, and a PWM of 255 would give the motors 7.4V, but after maybe 15mins of using the robot, the battery is now 6.5V and the same PWM of 255 from the Arduino would be giving a voltage of 6.5V, etc. So, that's the reason why i am considering to include a voltage regulator to supply voltage to the motors.

#### jremington

#9
##### Jul 21, 2019, 04:30 amLast Edit: Jul 21, 2019, 04:37 am by jremington
1. You have some unusual misconceptions and a lot to learn about motors. Do continue this journey by taking the time to experiment with some.

2. If the torque drops due to battery voltage drop, increase the PWM percentage to compensate, like everyone else does.

Aside: you seem to have chosen an appropriate user name. This is all purely theoretical, right?

#### DryRun

#10
##### Jul 21, 2019, 04:51 amLast Edit: Jul 21, 2019, 04:56 am by DryRun
1. You have some unusual misconceptions and a lot to learn about motors. Do continue this journey by taking the time to experiment with some.

2. If the torque drops due to battery voltage drop, increase the PWM percentage to compensate, like everyone else does.

Aside: you seem to have chosen an appropriate user name. This is all purely theoretical, right?
Well, i'm just looking for help... This is actually all for my project at school. I appreciate any help although i would rather not be looked down upon, as i just want to learn.

If the PWM is already at 255, then when the battery voltage drops, it's not possible to increase the PWM further...?

P.S. My username is more of a 'feeling' and also about the fact that there is not enough time to read whole books to learn leisurely about every single component in just one semester, so lots of online research and self-learning by doing (and failing often) involved but it's definitely not purely theoretical since i am using all the hardware mentioned in my posts and i'm trying hard to get things to work as expected but i just need guidance...

#### jremington

#11
##### Jul 21, 2019, 05:28 amLast Edit: Jul 21, 2019, 05:32 am by jremington
Quote
it's not possible to increase the PWM further...?
Obviously. If you need more torque and power than that, the robot design is inadequate for the task.