Controlling 16 micro motors from a micro controller

Discussion in 'Analog & Mixed-Signal Design' started by David_1550777393, Mar 16, 2019 at 4:40 PM.

  1. David_1550777393

    Thread Starter New Member

    Feb 21, 2019
    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.

    Any advice or information would be greatly appreciated!

    Many Thanks
  2. sghioto

    Active Member

    Dec 31, 2017
    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
    EDIT: Schematic on 3/17/19
    EEE motor driver 1 of 16.PNG
    Last edited: Mar 17, 2019 at 11:35 AM
    David_1550777393 likes this.
  3. danadak

    Well-Known Member

    Mar 10, 2018
    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.


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

    Regards, Dana.
    David_1550777393 likes this.
  4. pmd34

    Active Member

    Feb 22, 2014
    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:
    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.
    David_1550777393 likes this.
  5. mvas


    Jun 19, 2017
    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: Mar 17, 2019 at 11:12 AM
    David_1550777393 likes this.
  6. danadak

    Well-Known Member

    Mar 10, 2018
    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.
    David_1550777393 likes this.
  7. mvas


    Jun 19, 2017
    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.
    David_1550777393 likes this.
  8. danadak

    Well-Known Member

    Mar 10, 2018
    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.
    David_1550777393 likes this.
  9. Sensacell


    Jun 19, 2012
    How about a matrix of small solid-state relays to enable an individual motor from a single H-bridge driver?
    David_1550777393 likes this.
  10. mvas


    Jun 19, 2017
    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: Mar 18, 2019 at 10:19 AM