Controlling 16 micro motors from a micro controller

Thread Starter

David_1550777393

Joined Feb 21, 2019
4
Hi everyone!
This is quite specific but I'm having trouble trying address all my requirements individually.

I need to drive and control the polarity of 16 micro motors (3.5v 286mA) via a micro controller.
Only 1 motor needs to be active at a time and only for short bursts (500ms).

I need to have a very small form factor for this and most motor drivers seem a bit overkill for my needs and physically large in design.

Is it possible to control these motors using a shift register and multiplexing 4x4 considering I only need to run 1 at a time? Will this work if I need to control polarity?

Link to the motor in question.
https://www.ebay.co.uk/itm/DC-Micro...eld-Miniature-Coreless-Vibration/222926176653


Any advice or information would be greatly appreciated!

Many Thanks
David
 

sghioto

Joined Dec 31, 2017
5,390
Depending on how many I/O ports you have available something like a 4 to 16 line decoder will work.
The L293 is a dual motor controller chip. So you would need 8 drivers and 6 I/O ports
SG
EDIT: Schematic on 3/17/19
EEE motor driver 1 of 16.PNG
 
Last edited:

danadak

Joined Mar 10, 2018
4,057
Do you need to route a PWM to go to active channel to control speed ?

Here is a one chip solution (power stuff external, eg. the actual motor switches,
h bridge), rest all on chip. Done in low end PSOC 4.

upload_2019-3-16_20-36-53.png

Look at resource window to right, a lot of onchip resources still left.

Regards, Dana.
 

pmd34

Joined Feb 22, 2014
527
Hi David, its actually quite a lot of current needed for those, so I am not sure you will get away without using some form of driver as you need to be able to switch reasonable currents, but also really it needs to be back emf proof for when you switch off the power to the motor. (To prevent a voltage spike damaging whatever is controlling it.) You can do that all with descrete parts, protection diodes mosfets etc. but it starts taking up lots of room.

I think sdhioto is on to the best idea (I dont know if Dana'c IC can cope with that amount of current (?))- using a logic multiplexer and then a specific motor driver. I had a look for "sot-23 motor driver" and there were a few options available. This:
http://www.amtek-semi.com/en/products/detail/23
Looked quite nice. You still have to have 16 of them.. but they are not tooooo big! If you could find one with an enable pin then it would simplify the multiplexing as you can use the same direction signals A&B for all, just enable a particular chip.
 

mvas

Joined Jun 19, 2017
539
What if you arrange the Motors into a 4 x 4 Matrix ?
Connect one Half H-Bridge on each each of the four (4) Column Lines
Connect one Half H-Bridge on each each of the four (4) Row Lines
This would significantly reduce the "Chip Count" down to only two IC's - maybe even just one IC ?

To energize a single motor in the 4x4 matrix, the CPU would ...
a) enable & energize one (1) Column Half H-Bridge and
b) enable & energize one (1) Row Half H-Bridge
The motor at the intersection of the row and column would spin FWD or REV

This can be done with just two (2) x Quad Half H-Bridge IC's
Could this be done with a single IC ?
I think, each Half H-Bridge must have its own enable.

Quad Half H-Bridge with 4 Enables = TI DRV8844 ( or equiv ) - Two required
 
Last edited:

danadak

Joined Mar 10, 2018
4,057
I think sdhioto is on to the best idea (I dont know if Dana'c IC can cope with that amount of current (?))
The PSOC DeMux is just a logic level CMOS output at the pins, so
not high current in any sense, just a few mA.

mvas idea quite interesting. The PSOC could drive the matrix as well versus
the demux approach. And also supply PWM if so desired.

Regards, Dana.
 

mvas

Joined Jun 19, 2017
539
The goal in message #1 was "... very small form factor... "
Can we design without any extra chips, just the uC, and 2 @ Quad Half H-Bridge Motor DrIve IC's, and a 4x4 Matrix of Motors?
If two @ 8 Bit ports are available on the uC then connect the I/O Pins directly to the 2 @ TI Motor Drive IC's ...
a) Use one 8 Bit Port for the 8 Direction Signals ( 4 Rows x 4 Cols )
b) Use one 8 Bit Port for the 8 Enable Signals ( 4 Rows x 4 Cols )

If 16 I/O Pins are not available then use a simple 16 Bit Shift Register IC.

I don't see where PWM was required, just one motor ON ( Forward or Reverse ) at a time.
 

danadak

Joined Mar 10, 2018
4,057
The PWM was only a thought, speed / ramp control, otherwise not needed if
not desired. PSOC can give you a SR or the byte ports, all that stuff internal.
In fact if the motors all part of a known sequence PSOC with its DMA and
user customize-able HW internal blocks and LUTs could create an autonomous
controller with no software involved. Depends on what TS total system require-
ments are beyond this section for motor control.

Regards, Dana.
 

mvas

Joined Jun 19, 2017
539
How about a matrix of small solid-state relays to enable an individual motor from a single H-bridge driver?
Great idea!
Most DC-SSR's are designed for resistive loads only.
Must verify that the DC-SSR explicitly states it can handle inductive type / motor loads.

a) Two Quad Half H-Bridge IC's require ( 65 mm^2 each x 2 ) = ~130 mm^2 total.
b) One H-Bridge and 8 x DC-SSR's requires ~300 mm^2
 
Last edited:
Top