The DRV8830 device provides an integrated motor driver solution for battery-powered toys, printers, and other low-voltage or battery-powered motion control applications. The device has one H-bridge driver, and can drive one DC motor or one winding of a stepper motor, as well as other loads like solenoids. The output driver block consists of N-channel and P-channel power MOSFETs configured as an H-bridge to drive the motor winding.
Provided with sufficient PCB heatsinking, the DRV8830 can supply up to 1-A of DC/RMS or peak output current. It operates on power supply voltages from 2.75 V to 6.8 V.
To maintain constant motor speed over varying battery voltages while maintaining long battery life, a PWM voltage regulation method is provided. The output voltage is programmed through an I2C-compatible interface, using an internal voltage reference and DAC.
Internal protection functions are provided for over current protection, short-circuit protection, undervoltage lockout, and overtemperature protection.
The DRV8830 is available in a tiny 3-mm × 3-mm 10-pin VSON package and HVSSOP package with PowerPAD™ (Eco-friendly: RoHS & no Sb/Br).
PART NUMBER | PACKAGE | BODY SIZE (NOM) |
---|---|---|
DRV8830 | HVSSOP (10) | 3.00 mm × 3.00 mm |
VSON (10) |
Changes from F Revision (February 2012) to G Revision
PIN | TYPE(1) | DESCRIPTION | EXTERNAL COMPONENTS OR CONNECTIONS |
|
---|---|---|---|---|
NAME | NO. | |||
A0 | 7 | I | Address set 0 | Connect to GND, VCC, or open to set I2C base address. See serial interface description. |
A1 | 8 | I | Address set 1 | |
FAULTn | 6 | OD | Fault output | Open-drain output driven low if fault condition present |
GND | 5 | — | Device ground | |
ISENSE | 2 | IO | Current sense resistor | Connect current sense resistor to GND. Resistor value sets current limit level. |
OUT1 | 3 | O | Bridge output 1 | Connect to motor winding |
OUT2 | 1 | O | Bridge output 2 | |
SCL | 10 | I | Serial clock | Clock line of I2C serial bus |
SDA | 9 | IO | Serial data | Data line of I2C serial bus |
VCC | 4 | — | Device and motor supply | Bypass to GND with a 0.1-μF (minimum) ceramic capacitor. |
MIN | MAX | UNIT | |||
---|---|---|---|---|---|
VCC | Power supply voltage | –0.3 | 7 | V | |
Input pin voltage | –0.5 | 7 | V | ||
Peak motor drive output current(3) | Internally limited | A | |||
Continuous motor drive output current(3) | –1 | 1 | A | ||
Continuous total power dissipation | See Thermal Information | ||||
TJ | Operating virtual junction temperature | –40 | 150 | °C | |
Tstg | Storage temperature | –60 | 150 |
VALUE | UNIT | |||
---|---|---|---|---|
V(ESD) | Electrostatic discharge | Human body model (HBM), per ANSI/ESDA/JEDEC JS-001(1) | ±2000 | V |
Charged-device model (CDM), per JEDEC specification JESD22-C101(2) | ±1000 |
MIN | MAX | UNIT | ||
---|---|---|---|---|
VCC | Motor power supply voltage | 2.75 | 6.8 | V |
IOUT | Continuous or peak H-bridge output current(1) | 0 | 1 | A |
THERMAL METRIC(1) | DRV8830 | UNIT | ||
---|---|---|---|---|
DGQ (HVSSOP) | DRC (VSON) | |||
10 PINS | 10 PINS | |||
RθJA | Junction-to-ambient thermal resistance | 69.3 | 50.2 | °C/W |
RθJC(top) | Junction-to-case (top) thermal resistance | 63.5 | 78.4 | °C/W |
RθJB | Junction-to-board thermal resistance | 51.6 | 18.8 | °C/W |
ψJT | Junction-to-top characterization parameter | 1.5 | 1.1 | °C/W |
ψJB | Junction-to-board characterization parameter | 23.2 | 17.9 | °C/W |
RθJB | Junction-to-case (bottom) thermal resistance | 9.5 | 5.1 | °C/W |
PARAMETER | TEST CONDITIONS | MIN | TYP | MAX | UNIT | |
---|---|---|---|---|---|---|
POWER SUPPLIES | ||||||
IVCC | VCC operating supply current | VCC = 5 V | 1.4 | 2 | mA | |
IVCCQ | VCC sleep mode supply current | VCC = 5 V, TA = 25°C | 0.3 | 1 | μA | |
VUVLO | VCC undervoltage lockout voltage | VCC rising | 2.575 | 2.75 | V | |
VCC falling | 2.47 | |||||
LOGIC-LEVEL INPUTS | ||||||
VIL | Input low voltage | 0.25 × VCC | 0.38 × VCC | V | ||
VIH | Input high voltage | 0.46 × VCC | 0.5 × VCC | V | ||
VHYS | Input hysteresis | 0.08 × VCC | V | |||
IIL | Input low current | VIN = 0 | –10 | 10 | μA | |
IIH | Input high current | VIN = 3.3 V | 50 | μA | ||
LOGIC-LEVEL OUTPUTS (FAULTn) | ||||||
VOL | Output low voltage | IOL = 4 mA, VCC = 5 V | 0.5 | V | ||
H-BRIDGE FETS | ||||||
RDS(ON) | HS FET on resistance | VCC = 5 V, I O = 0.8 A, TJ = 85°C | 290 | 400 | mΩ | |
VCC = 5 V, I O = 0.8 A, TJ = 25°C | 250 | |||||
RDS(ON) | LS FET on resistance | VCC = 5 V, I O = 0.8 A, TJ = 85°C | 230 | 320 | mΩ | |
VCC = 5 V, I O = 0.8 A, TJ = 25°C | 200 | |||||
IOFF | Off-state leakage current | –20 | 20 | μA | ||
MOTOR DRIVER | ||||||
tR | Rise time | VCC = 3 V, load = 4 Ω | 50 | 300 | ns | |
tF | Fall time | VCC = 3 V, load = 4 Ω | 50 | 300 | ns | |
fSW | Internal PWM frequency | 44.5 | kHz | |||
PROTECTION CIRCUITS | ||||||
IOCP | Overcurrent protection trip level | 1.3 | 3 | A | ||
tOCP | OCP deglitch time | 2 | μs | |||
TTSD | Thermal shutdown temperature | Die temperature(1) | 150 | 160 | 180 | °C |
VOLTAGE CONTROL | ||||||
VREF | Reference output voltage | 1.235 | 1.285 | 1.335 | V | |
ΔVLINE | Line regulation | VCC = 3.3 V to 6 V, VOUT = 3 V,(1)
IOUT = 500 mA |
±1% | |||
ΔVLOAD | Load regulation | VCC = 5 V, VOUT = 3 V, IOUT = 200 mA to 800 mA(1) |
±1% | |||
CURRENT LIMIT | ||||||
VILIM | Current limit sense voltage | 160 | 200 | 240 | mV | |
tILIM | Current limit fault deglitch time | 275 | ms | |||
RISEN | Current limit sense resistance (external resistor value) | 0 | 1 | Ω |
STANDARD MODE | FAST MODE | UNIT | ||||||
---|---|---|---|---|---|---|---|---|
MIN | NOM | MAX | MIN | NOM | MAX | |||
fscl | I2C clock frequency | 0 | 100 | 0 | 400 | kHz | ||
tsch | I2C clock high time | 4 | 0.6 | µs | ||||
tscl | I2C clock low time | 4.7 | 1.3 | µs | ||||
tsp | I2C spike time | 0 | 50 | 0 | 50 | ns | ||
tsds | I2C serial data setup time | 250 | 100 | ns | ||||
tsdh | I2C serial data hold time | 0 | 0 | ns | ||||
ticr | I2C input rise time | 1000 | 20+0.1Cb(2) | 300 | ns | |||
ticf | I2C input fall time | 300 | 20+0.1Cb(2) | 300 | ns | |||
tocf | I2C output fall time | 300 | 20+0.1Cb(2) | 300 | ns | |||
tbuf | I2C bus free time | 4.7 | 1.3 | µs | ||||
tsts | I2C Start setup time | 4.7 | 0.6 | µs | ||||
tsth | I2C Start hold time | 4 | 0.6 | µs | ||||
tsps | I2C Stop setup time | 4 | 0.6 | µs | ||||
tvd (data) | Valid data time (SCL low to SDA valid) | 1 | 1 | µs | ||||
tvd (ack) | Valid data time of ACK (ACK signal from SCL low to SDA low) | 1 | 1 | µs |
The DRV8830 is an integrated motor driver solution used for brushed motor control. The device integrates one H-bridge, current regulation circuitry, and a PWM voltage regulation method.
Using the PWM voltage regulation allows the motor to maintain the desired speed as VCC changes. Battery operation is an example of using this feature. When the battery is new or fully charged VCC will be higher than when the battery is old or partially discharged. The speed of the motor will vary based on the voltage of the battery. By setting the desired voltage across the motor at a lower voltage, a fully charged battery will use less power and spin the motor at the same speed as a battery that has been partially discharged.
The DRV8830 provides the ability to regulate the voltage applied to the motor winding. This feature allows constant motor speed to be maintained even when operating from a varying supply voltage such as a discharging battery.
The DRV8830 uses a pulse-width modulation (PWM) technique instead of a linear circuit to minimize current consumption and maximize battery life.
The circuit monitors the voltage difference between the output pins and integrates it, to get an average DC voltage value. This voltage is divided by 4 and compared to the output voltage of the VSET DAC, which is set through the serial interface. If the averaged output voltage (divided by 4) is lower than VSET, the duty cycle of the PWM output is increased; if the averaged output voltage (divided by 4) is higher than VSET, the duty cycle is decreased.
During PWM regulation, the H-bridge is enabled to drive current through the motor winding during the PWM on time. This is shown in Figure 8 as case 1. The current flow direction shown indicates the state when IN1 is high and IN2 is low.
Note that if the programmed output voltage is greater than the supply voltage, the device will operate at 100% duty cycle and the voltage regulation feature will be disabled. In this mode the device behaves as a conventional H-bridge driver.
During the PWM off time, winding current is recirculated by enabling both of the high-side FETs in the bridge. This is shown in Figure 8.
The DRV8830 includes an internal reference voltage that is connected to a DAC. This DAC generates a voltage which is used to set the PWM regulated output voltage as described in Voltage Regulation.
The DAC is controlled by the VSET bits from the serial interface. The commanded output voltage is shown in Table 1.
VSET[5..0] | OUTPUT VOLTAGE | VSET[5..0] | OUTPUT VOLTAGE |
---|---|---|---|
0x00h | Reserved | 0x20h | 2.57 |
0x01h | Reserved | 0x21h | 2.65 |
0x02h | Reserved | 0x22h | 2.73 |
0x03h | Reserved | 0x23h | 2.81 |
0x04h | Reserved | 0x24h | 2.89 |
0x05h | Reserved | 0x25h | 2.97 |
0x06h | 0.48 | 0x26h | 3.05 |
0x07h | 0.56 | 0x27h | 3.13 |
0x08h | 0.64 | 0x28h | 3.21 |
0x09h | 0.72 | 0x29h | 3.29 |
0x0Ah | 0.80 | 0x2Ah | 3.37 |
0x0Bh | 0.88 | 0x2Bh | 3.45 |
0x0Ch | 0.96 | 0x2Ch | 3.53 |
0x0Dh | 1.04 | 0x2Dh | 3.61 |
0x0Eh | 1.12 | 0x2Eh | 3.69 |
0x0Fh | 1.20 | 0x2Fh | 3.77 |
0x10h | 1.29 | 0x30h | 3.86 |
0x11h | 1.37 | 0x31h | 3.94 |
0x12h | 1.45 | 0x32h | 4.02 |
0x13h | 1.53 | 0x33h | 4.1 |
0x14h | 1.61 | 0x34h | 4.18 |
0x15h | 1.69 | 0x35h | 4.26 |
0x16h | 1.77 | 0x36h | 4.34 |
0x17h | 1.85 | 0x37h | 4.42 |
0x18h | 1.93 | 0x38h | 4.5 |
0x19h | 2.01 | 0x39h | 4.58 |
0x1Ah | 2.09 | 0x3Ah | 4.66 |
0x1Bh | 2.17 | 0x3Bh | 4.74 |
0x1Ch | 2.25 | 0x3Ch | 4.82 |
0x1Dh | 2.33 | 0x3Dh | 4.9 |
0x1Eh | 2.41 | 0x3Eh | 4.98 |
0x1Fh | 2.49 | 0x3Fh | 5.06 |
The voltage can be calculated as 4 x VREF x (VSET +1) / 64, where VREF is the internal 1.285-V reference.
A current limit circuit is provided to protect the system in the event of an overcurrent condition, such as what would be encountered if driving a DC motor at start-up or with an abnormal mechanical load (stall condition).
The motor current is sensed by monitoring the voltage across an external sense resistor. When the voltage exceeds a reference voltage of 200 mV for more than approximately 3 µs, the PWM duty cycle is reduced to limit the current through the motor to this value. This current limit allows for starting the motor while controlling the current.
If the current limit condition persists for some time, it is likely that a fault condition has been encountered, such as the motor being run into a stop or a stalled condition. An overcurrent event must persist for approximately
275 ms before the fault is registered. After approximately 275 ms, a fault signaled to the host by driving the FAULTn signal low and setting the FAULT and ILIMIT bits in the serial interface register. Operation of the motor driver will continue.
The current limit fault condition is cleared by setting both IN1 and IN2 to zero to disable the motor current, by putting the device into the shutdown state (IN1 and IN2 both set to 1), by setting the CLEAR bit in the fault register, or by removing and re-applying power to the device.
The resistor used to set the current limit must be less than 1 Ω. Its value may be calculated as follows:
where
If the current limit feature is not needed, the ISENSE pin may be directly connected to ground.
The DRV8830 is fully protected against undervoltage, overcurrent and overtemperature events. A FAULTn pin is available to signal a fault condition to the system, as well as a FAULT register in the serial interface that allows determination of the fault source.
An analog current limit circuit on each FET limits the current through the FET by removing the gate drive. If this analog current limit persists for longer than the OCP time, all FETs in the H-bridge will be disabled, the FAULTn signal will be driven low, and the FAULT and OCP bits in the FAULT register will be set. The device will remain disabled until the CLEAR bit in the FAULT register is written to 1, or VCC is removed and re-applied.
Overcurrent conditions are sensed independently on both high and low side devices. A short to ground, supply, or across the motor winding will all result in an overcurrent shutdown. Note that OCP is independent of the current limit function, which is typically set to engage at a lower current level; the OCP function is intended to prevent damage to the device under abnormal (for example, short circuit) conditions.
If the die temperature exceeds safe limits, all FETs in the H-bridge will be disabled, the FAULTn signal will be driven low, and the FAULT and OTS bits in the serial interface register will be set. Once the die temperature has fallen to a safe level operation will automatically resume.
If at any time the voltage on the VCC pins falls below the undervoltage lockout threshold voltage, all FETs in the H-bridge will be disabled, the FAULTn signal will be driven low, and the FAULT and UVLO bits in the FAULT register will be set. Operation will resume when VCC rises above the UVLO threshold.
FAULT | CONDITION | ERROR REPORT | H-BRIDGE | INTERNAL CIRCUITS | RECOVERY |
---|---|---|---|---|---|
VCC undervoltage (UVLO) | VCC < VUVLO | FAULTn | Disabled | Disabled | VCC > VUVLO |
Overcurret (OCP) | IOUT > IOCP | FAULT n | Disabled | Operating | Power cycle VCC |
Thermal shutdown (TSD) | TJ > TTSD | FAULTn | Disabled | Operating | TJ > TTSD – THYS |
The DRV8830 is active when either IN1 or IN2 are set to a logic high. Sleep mode is entered when both IN1 and IN2 are set to a logic low. When in sleep mode, the H-bridge FETs are disabled (Hi-Z).
FAULT | CONDITION | H-BRIDGE | INTERNAL CIRCUITS | |
---|---|---|---|---|
Operating | IN1 or IN2 high | Operating | Operating | |
Sleep mode | IN1 or IN2 low | Disabled | Diabled | |
Fault encountered | Any fault condition met | Disabled | See Table 2 |
The IN1 and IN2 control bits in the serial interface register enable the H-bridge outputs. Table 4 shows the logic:
IN1 | IN2 | OUT1 | OUT2 | FUNCTION |
---|---|---|---|---|
0 | 0 | Z | Z | Standby / coast |
0 | 1 | L | H | Reverse |
1 | 0 | H | L | Forward |
1 | 1 | H | H | Brake |
When both bits are zero, the output drivers are disabled and the device is placed into a low-power shutdown state. The current limit fault condition (if present) is also cleared.
At initial power up, the device will enter the low-power shutdown state. Note that when transitioning from either brake or standby mode to forward or reverse, the voltage control PWM starts at zero duty cycle. The duty cycle slowly ramps up to the commanded voltage. This can take up to 12 ms to go from standby to 100% duty cycle.
The I2C interface allows control and monitoring of the DRV8830 by a microcontroller. I2C is a two-wire serial interface developed by Philips Semiconductor (see I2C – Bus Specification, Version 2.1, January 2000). The bus consists of a data line (SDA) and a clock line (SCL) with off-chip pull-up resistors. When the bus is idle, both SDA and SCL lines are pulled high.
A master device, usually a microcontroller or a digital signal processor, controls the bus. The master is responsible for generating the SCL signal and device addresses. The master also generates specific conditions that indicate the START and STOP of data transfer.
A slave device receives and/or transmits data on the bus under control of the master device. This device operates only as a slave device.
I2C communication is initiated by a master sending a start condition, a high-to-low transition on the SDA I/O while SCL is held high. After the start condition, the device address byte is sent, most-significant bit (MSB) first, including the data direction bit (R/W). After receiving a valid address byte, this device responds with an acknowledge, a low on the SDA I/O during the high of the acknowledge-related clock pulse.
The lower three bits of the device address are input from pins A0 - A1, which can be tied to VCC (logic high), GND (logic low), or left open. These three address bits are latched into the device at power up, so cannot be changed dynamically.
The upper address bits of the device address are fixed at 0xC0h, so the device address is as follows:
A1 PIN | A0 PIN | A3..A0 BITS (as below) |
ADDRESS (WRITE) | ADDRESS (READ) |
---|---|---|---|---|
0 | 0 | 0000 | 0xC0h | 0xC1h |
0 | open | 0001 | 0xC2h | 0xC3h |
0 | 1 | 0010 | 0xC4h | 0xC5h |
open | 0 | 0011 | 0xC6h | 0xC7h |
open | open | 0100 | 0xC8h | 0xC9h |
open | 1 | 0101 | 0xCAh | 0xCBh |
1 | 0 | 0110 | 0xCCh | 0xCDh |
1 | open | 0111 | 0xCEh | 0xCFh |
1 | 1 | 1000 | 0xD0h | 0xD1h |
The DRV8830 does not respond to the general call address.
A data byte follows the address acknowledge. If the R/W bit is low, the data is written from the master. If the R/W bit is high, the data from this device are the values read from the register previously selected by a write to the subaddress register. The data byte is followed by an acknowledge sent from this device. Data is output only if complete bytes are received and acknowledged. A stop condition, which is a low-to-high transition on the SDA I/O while the SCL input is high, is sent by the master to terminate the transfer.
A master bus device must wait at least 60 μs after power is applied to VCC to generate a START condition.
I2C transactions are shown in the timing diagrams Figure 9 and Figure 10:
REGISTER | SUB ADDRESS (HEX) | REGISTER NAME | DEFAULT VALUE | DESCRIPTION |
---|---|---|---|---|
0 | 0x00 | CONTROL | 0x00h | Sets state of outputs and output voltage |
1 | 0x01 | FAULT | 0x00h | Allows reading and clearing of fault conditions |
The CONTROL register is used to set the state of the outputs as well as the DAC setting for the output voltage. The register is defined as follows:
D7 - D2 | D1 | D0 |
---|---|---|
VSET[5..0] | IN2 | IN1 |
VSET[5..0]: | Sets DAC output voltage. Refer to Voltage Setting above. |
IN2: | Along with IN1, sets state of outputs. Refer to Bridge Control above. |
IN1: | Along with IN2, sets state of outputs. Refer to Bridge Control above. |
The FAULT register is used to read the source of a fault condition, and to clear the status bits that indicated the fault. The register is defined as follows:
D7 | D6 - D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|
CLEAR | Unused | ILIMIT | OTS | UVLO | OCP | FAULT |
CLEAR: | When written to 1, clears the fault status bits |
ILIMIT: | If set, indicates the fault was caused by an extended current limit event |
OTS: | If set, indicates that the fault was caused by an overtemperature (OTS) condition |
UVLO: | If set, indicates the fault was caused by an undervoltage lockout |
OCP: | If set, indicates the fault was caused by an overcurrent (OCP) event |
FAULT: | Set if any fault condition exists |
NOTE
Information in the following applications sections is not part of the TI component specification, and TI does not warrant its accuracy or completeness. TI’s customers are responsible for determining suitability of components for their purposes. Customers should validate and test their design implementation to confirm system functionality.
The DRV8830 is used in brushed DC applications to provide a constant motor speed over varying voltages. The following design procedure can be used to configure the DRV8830 for a system with a VCC variance of 4 to 6 V.
Figure 11 is a common application of the DRV8830.
Table 9 lists the design parameters of the DRV8830.
DESIGN PARAMETER | REFERENCE | EXAMPLE VALUE | |||
---|---|---|---|---|---|
Motor voltage | VCC | 5 V | |||
Motor RMS current | IRMS | 0.3 A | |||
Motor start-up | ISTART | 1.3 A | |||
Motor current trip point | ILIMIT | 0.9 A |
The motor voltage to use will depend on the ratings of the motor selected and the desired RPM. A higher voltage spins a brushed DC motor faster with the same PWM duty cycle applied to the power FETs. A higher voltage also increases the rate of current change through the inductive motor windings.
For the DRV8830, TI recommends to set a motor voltage at the lowest system VCC. This will maintain a constant RPM across varying VCC conditions.
For example if the VCC voltage can vary from 4.5V to 5.5V, setting the VSET voltage to 1.125 V will compensate for power supply variation. The DRV8830 will set the motor voltage at 4.5 V, even if VCC is 5.5 V.
When the voltage on pin ISENSE exceeds VILIM (0.2 V), overcurrent is detected. The RSENSE resistor should be sized to set the desired ILIMIT level.
To set IILIMIT to 0.5 A, RISENSE = 0.2 V / 0.9 A = 0.22 Ω.
To prevent false trips, ILIMIT must be higher than regular operating current. Motor current during start-up is typically much higher than steady-state spinning, because the initial load torque is higher, and the absence of back-EMF causes a higher voltage and extra current across the motor windings.
It can be beneficial to limit start-up current by using series inductors on the DRV8830 output, as that allows ILIMIT to be lower, and it may decrease the system’s required bulk capacitance. Start-up current can also be limited by ramping the forward drive duty cycle.
For optimal performance, it is important for the sense resistor to be:
The power dissipated by the sense resistor equals IRMS2 × R. For example, if peak motor current is 1 A, RMS motor current is 0.7 A, and a 0.4-Ω sense resistor is used, the resistor will dissipate 0.7 A2 × 0.4 Ω = 0.2 W. The power quickly increases with higher current levels.
Resistors typically have a rated power within some ambient temperature range, along with a de-rated power curve for high ambient temperatures. When a PCB is shared with other components generating heat, margin should be added. It is always best to measure the actual sense resistor temperature in a final system, along with the power MOSFETs, as those are often the hottest components.
Because power resistors are larger and more expensive than standard resistors, it is common practice to use multiple standard resistors in parallel, between the sense node and ground. This distributes the current and heat dissipation.
Under normal operation, using sleep mode to minimize supply current should be sufficient.
If desired, power can be removed to the DRV8830 to further decrease supply current. TI recommends to remove power to the FAULTn pullup resistor when removing power to the DRV8830. Removing power from the FAULTn pullup resistor will eliminate a current path from the FAULTn pin through an ESD protection diode to VCC. TI recommends to set both IN1 and IN2 as a logic low when power is removed.
An undervoltage event may cause the address to be re-evaluated. If this occurs, the I2C interface may stop working until power is cycled.
The following scope captures show how the output duty cycle changes to as VCC increases. This allows the motor to spin at a constant speed as VCC changes. At VCC = 3.9 V, the output duty cycle is 100% on. As the VCC voltage increases to greater than 4 V, the output duty cycle begins to decrease. The output duty cycle is shown at VCC = 4.5 V, VCC = 5 V and VCC = 5.5 V.