Page 1 of 1

TinyCircuits TinyLily Motor Board (HCTICI0017)

Posted: Tue Mar 18, 2014 2:17 pm
by admin
Image

See our Tiny Circuits Range Here.


Description:

Based around the 2mm x 2mm TI DRV8837 Motor Driver (H-Bridge) IC, this board is incredibly tiny at only 10mm in diameter, yet can drive a 5V 1.8Amp motor! The DRV8837 is extremely easy to use and interface to your favourite processor board (such as a TinyDuino, TinyLily or a standard Arduino), and uses a simple PWM to control motor speed, direction, coasting and braking. The board includes a bypass capacitors and all the I/O of the DRV8837 brought out to sewtabs, as well as heatsinking the chip to a large plane on the bottom side of the board to help with heat dissipation.

The TI DRV8837 has one H-bridge driver consisting of N-channel power MOSFETs to drive a DC motor or one winding of a stepper motor, or other devices like solenoids. An internal charge pump generates needed gate-drive voltages. There are internal shutdown functions for overcurrent protection, short-circuit protection, undervoltage lockout and over temperature. The DRV8837 can supply up to 1.8 A of output current. It operates on a motor power-supply voltage from 1.8 V to 11 V, and a device power-supply voltage of 1.8 V to 7 V. There is also a extremely low power sleep mode with 120nA sleep current.


Specification:

Model number: ASL2001
Washable
Eight Sewtabs – 1.2mm in diameter, easy to use with standard conductive thread and needles
Robust Gold Finish – makes soldering easy and is non-corrosive
Ultra compact size and weight
Dimensions: 10mm diameter (0.394 inches)
Max Height: 1.41mm (0.056 inches)
Ultra-thin 0.61mm (0.024 inches) PCB
Weight: TBD grams (TBD ounces)
TI DRV8837 H-bridge motor driver
Low MOSFET On-Resistance: HS + LS 280mOhm
1.8A Max Drive Current
1.8V to 11V Motor Operating Supply Voltage Range
Seperate Motor and Logic Power Supply Pins
PWM (IN/IN) Interface
Dedicated Sleep Pin


Pinout:

VM - Motor Voltage Input
This supplies the voltage to the motor and can range from 1.8 to 11 Volts.
High Current Connection

GND - Ground Connection
This is the Ground return and needs to connect to the Ground for both the VM supply and the VCC supply.
High Current Connection

VCC - Logic Voltage Input
This is the logic voltage input, and needs to be the same voltage as the system driving the motor controller (like the TinyLily Mini or a standard Arduino).
This will be 3 to 5 Volts if connected to an Arduino based systems (like the TinyLily Mini or the TinyDuino), although the full possible voltage range is from 1.8 to 7 Volts

SLP - Sleep Input
This signal can put the motor controller into a low-power “Sleep Mode”.
A logic-low “0″ will put the motor controller into sleep mode, a logic-high “1″ will put the motor controller into normal operating mode. If sleep mode is not needed, connect SLP to VCC to allow normal operation.

NOTE: This must be connected in order for the motor controller to work.

IN1 - Input 1
This signal controls the Output 1 driver. A logic-low “0″ will set Output 1 to low, a logic-high “1″ will set Output 1 to high. If left unconnected, this signal is pulled down to a low-logic “0″ with an internal resistor
For motor speed control, we recommend using this as the motor speed control signal (Using a PWM signal), and IN2 as the motor direction signal.

IN2 - Input 2
This signal controls the Output 2 driver. A logic-low “0″ will set Output 2 to low, a logic-high “1″ will set Output 2 to high. If left unconnected, this signal is pulled down to a low-logic “0″ with an internal resistor
For motor speed control, we recommend using this as the direction speed control signal, and IN1 as the motor speed control signal.

O1 - Output 1
This is the Output 1 driver and connects to on side of the motor winding
High Current Connection

O2 - Output 2
This is the Output2 driver and connects to on side of the motor winding
High Current Connection


Example Sketch:

Code: Select all

int motorDirPin = 2;      // Motor direction connected to digital pin 2
int motorSpeedPin = 3;    // Motor speed connected to analog pin 3

void setup()
{
  pinMode(motorDirPin, OUTPUT);       // sets the pin as output
  pinMode(motorSpeedPin, OUTPUT);     // sets the pin as output

  digitalWrite(motorDirPin, LOW);     // sets the default dir to be forward
  digitalWrite(motorSpeedPin, LOW);   // sets the default speed to be off
}

void loop()
{
  // Set the motor direction to forward
  digitalWrite(motorDirPin, LOW);     

  // Ramp the motor speed up
  analogWrite(motorSpeedPin, 0);    // Min speed forward (motor off)
  delay(500);  
  analogWrite(motorSpeedPin, 63);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500); 
  analogWrite(motorSpeedPin, 191);   
  delay(500); 
  analogWrite(motorSpeedPin, 255);   // Max speed forward
  delay(500); 

  // Ramp the motor speed down
  analogWrite(motorSpeedPin, 191);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500);  
  analogWrite(motorSpeedPin, 63);   
  delay(500); 
  analogWrite(motorSpeedPin, 0);     // Min speed forward (motor off)
  delay(500); 


  // Set the motor direction to reverse
  digitalWrite(motorDirPin, HIGH);   

  // Ramp the motor speed up
  analogWrite(motorSpeedPin, 255);    // Min speed reverse (motor off)
  delay(500); 
  analogWrite(motorSpeedPin, 191);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500);  
  analogWrite(motorSpeedPin, 63);   
  delay(500); 
  analogWrite(motorSpeedPin, 0);      // Max speed reverse
  delay(500); 

  // Ramp the motor speed down
  analogWrite(motorSpeedPin, 63);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500); 
  analogWrite(motorSpeedPin, 191);   
  delay(500); 
  analogWrite(motorSpeedPin, 255);    // Min speed reverse (motor off)
  delay(500); 
}

Downloads:
ASL2001_Rev1.pdf
drv8837.pdf