Electronics » Motion Control Modules » Brushless DC Motor Controllers »
A89301-Based Sensorless Brushless Motor Controller, 50V, 11A (Soldered Connectors)
This discrete MOSFET brushless motor controller is based on Allegro’s A89301 BLDC driver and enables sensorless control of one brushless DC motor. It supports a wide 5.5 V to 48 V operating voltage range and can continuously deliver up to 11 A motor current without a heat sink or forced air. The A89301 supports four control interfaces: analog voltage, PWM duty cycle, pulse frequency, and I²C. The I²C interface also allows configuration of various settings on the A89301, and we provide a configuration utility for Windows that simplifies setup with one of our USB-to-I²C adapters. This version ships with soldered header pins and terminal blocks.
Alternatives available with variations in these parameter(s): connectors? Select variant…
Compare all products in Brushless DC Motor Controllers or
Products with components from Allegro Microsystems.
Description | Specs (13) | Pictures (8) | Resources (6) | FAQs (0) | On the blog (0) | Distributors (0) |
---|
Overview
![]() |
![]() |
![]() |
This board combines the the A89301 brushless DC motor controller IC from Allegro with external MOSFETs to enable sensorless control of 3-phase BLDC motors at operating voltages from 5.5 V to 48 V. We are offering this board with support from Allegro Microsystems as an easy way to use or evaluate the A89301; we therefore recommend careful reading of the A89301 datasheet (1MB pdf) before using this product. Allegro’s A89301 Evaluation Board User Guide (4MB pdf) also contains important information about configuring the A89301.
The controller’s power performance is a function of the three external half-bridges, which allow the controller to continuously deliver phase currents up to 11 A (sinusoidal amplitude) without additional cooling such as heat sinks or forced air flow. See the Power dissipation considerations section below for more information, including important information about using this product safely.
Key features
- Wide 5.5 V to 48 V operating voltage range (50 V absolute maximum)
- Fully-integrated, code-free sensorless control: no low-level motor control software needed
- Field-oriented control (FOC) algorithm uses sinusoidal waveforms and optimizes efficiency and noise
- High-power: can continuously deliver up to 11 A phase currents without extra cooling
- Adjustable current limit
- Highly configurable through I²C interface
- JST SH-style 4-pin connector works with our 4-pin JST SH-style cables and is compatible with SparkFun’s Qwiic and Adafruit’s STEMMA QT
- Configuration software for Windows simplifies motor controller setup with a Pololu USB-to-I²C Adapter (available separately)
- Settings can be saved to non-volatile memory (internal EEPROM)
- Four control options: analog voltage, PWM (duty cycle), clock input (pulse frequency), and I²C
- Open-loop or closed-loop speed control
- Multiple startup options including zero reverse rotation modes and Soft-On Soft-Off (SOSO)
- Configurable lock (stall) detection
- Under-voltage lockout, short circuit protection, and reverse-voltage protection (up to 40 V)
- Compact size: 1.5″ × 1.0″ (38.1 mm × 25.4 mm)
Note: The A89301 has a maximum commutation frequency of about 1 kHz, so it might not be suitable for use with brushless motors with very high rotational speeds. See the Speed limitations section below for more information.
Details for item #5356
|
|
|
This version of the A89301-based brushless motor controller comes with connectors soldered as shown above (a 1×10-pin 0.1″ male header for the logic connections and 5 mm terminal blocks for the power and motor connections), so no soldering is necessary to use it. A 0.1″ shorting block is provided for optionally connecting IOREF to the neighboring 2V8 pin.
A version without through-hole connectors is also available.
Using the controller
Connections
The motor and motor power connections are on one side of the board, and the control connections (2.5 V to 5 V logic) are on the other side. The motor supply should be capable of supplying high current. There are two options for making the high-power connections (VIN, GND, SA, SB, SC): large holes spaced 5 mm apart, which are populated with terminal blocks on the version with soldered connectors, and pairs of 0.1″-spaced holes that are compatible with 0.1″ perfboards and solderless breadboards and can be populated with 0.1″ male headers on the version without soldered connectors .
The through-holes for the control connections are also spaced with a 0.1″ pitch, and these are populated with 0.1″ male headers on the version with soldered connectors. On the version without connectors, male header pins can optionally be soldered to the other side of the board for plugging into a breadboard.
For good performance at high currents, it is very important to install a large capacitor across the motor supply and ground close to the motor controller. We generally recommend using a capacitor of at least a few hundred μF and rated well above the maximum supply voltage; the required capacitance will be greater if the power supply is poor or far (more than about a foot) from the controller, and it will also depend on other factors like motor characteristics and operating conditions. A through-hole capacitor can be installed directly on the board in the holes labeled '+' and '−' (connected to VM and GND, respectively). The controller includes an on-board 100 µF capacitor, which might be sufficient for brief tests and lower-power operation (less than 5 A), but adding a bigger capacitor is strongly recommended for most applications.
Pinout
![]() |
Pin | Default State | Description |
---|---|---|
VIN | 5.5 V to 48 V board power supply connection (50 V absolute max). | |
VM | This pin gives access to the motor power supply after the reverse-voltage protection circuit (see the board schematic at the bottom of this page). It can be used to supply reverse-protected power to other components in the system. | |
+, − | These pads are intended for a power supply capacitor (they are connected to VM and GND, respectively). | |
GND | Ground connection points for the motor power supply and control ground reference. The control source and the motor controller must share a common ground. | |
SA | Motor output: phase A. | |
SB | Motor output: phase B. | |
SC | Motor output: phase C. | |
2V8 (OUT) | Regulated 2.8 V output: this pin gives access to the voltage from the internal regulator of the A89301. The regulator can only provide up to 10 mA, so it is primarily only useful for hard-wiring board inputs high and powering pull-ups for the board’s open-drain outputs. It is generally not intended for powering external devices. | |
IOREF | FG/SDA and FAULT are pulled up to IOREF, so this pin should be supplied with the logic voltage of the controlling system (e.g. 3.3 V for use in 3.3 V systems). For convenience, it can be connected to the neighboring 2V8 (OUT) pin when it is being used in a system that will read 2.8 V as logic high. IOREF voltage must also be supplied for the fault indicator LED to function. | |
SPD/SCL | FLOATING | Speed input: analog voltage (default), PWM duty cycle, or pulse frequency. A 2.5 V analog input corresponds to maximum speed, but this pin is 5 V tolerant (as all of the control inputs are). Note: This pin is also used as the I²C clock line (SCL), and the board has no pull-up on this pin (to avoid interfering with analog control). Adding an external SCL pull-up resistor is required for I²C communication if the controlling device does not already have one. (An external SCL pull-up resistor is not required when using this board with a Pololu USB-to-I²C Adapter.) |
DIR | LOW | Direction input; controls the order in which the motor phases are driven. The direction can also be controlled through the I²C interface. |
BRAKE | LOW | Brake input: when BRAKE is high, the controller drives all of the motor outputs low to electrically brake the motor. |
FG/SDA | HIGH | I²C data line (SDA); pulled up to IOREF. This pin can optionally be configured as a motor speed output (FG). |
FAULT | HIGH | Fault indicator: This open-drain output is normally pulled up to IOREF, but the A89301 drives it low in one of several repeating patterns to indicate a fault or abnormal condition. An on-board red LED connected to FAULT blinks to display the pattern visibly. The A89301 datasheet lists the possible faults and the patterns that correspond to them. |
For more information about these pins, please refer to the A89301 datasheet (1MB pdf).
Warning: Connecting or disconnecting a motor while the controller is powered can destroy the controller. (More generally, rewiring anything while it is powered is asking for trouble.)
I²C configuration and control
By default, the motor controller reads an analog voltage on the SPD/SCL pin to set the speed of the motor. However, to switch to a different control mode or make use of all of the A89301 IC’s features and settings, it is necessary to configure it via its I²C interface.
Warning: The SPD/SCL pin is configured as a analog voltage speed input by default, but it doubles as the I²C clock line and must be pulled up for that purpose. The A89301 must also be receiving motor power (VIN) for I²C communication to work. Therefore, it is possible for the controller to immediately and unexpectedly start driving the motor if the controller is connected to I²C and power is applied while a motor is connected.
To prevent this, we recommend that you either disconnect the motor or drive the controller’s BRAKE pin high (such as by connecting it to 2V8 or IOREF) to stop the motor from running before applying power and configuring the A89301 with I²C. (If you want to use the I²C interface for motor control in your application, you can configure the A89301 to always set the motor speed via I²C instead of using SPD/SCL as a speed input.)
We provide the Pololu A89301 Configuration Utility software for Windows, which is designed to simplify configuration and control of the A89301 board when connected to a computer with a Pololu USB-to-I²C adapter and a 4-pin JST SH-style cable (both available separately). You can use either version of our adapter with the A89301 board:
- The Pololu Isolated USB-to-I²C Adapter does not deliver logic power to the A89301 board, so you will need to provide IOREF separately. You can do this either by shorting IOREF to the adjacent 2V8 pin (the version that comes with soldered connectors includes a shorting block for this purpose, as shown in the picture below) or by connecting IOREF to another suitable (2.5 V to 5 V) supply.
- The Pololu Isolated USB-to-I²C Adapter with Isolated Power provides either 5 V or 3.3 V (either setting will work) to IOREF on the A89301 board through the 4-pin I²C connector. You should not connect another voltage supply to IOREF (with the shorting block or otherwise) while this adapter is connected.
The A89301 datasheet lists most of its configuration settings, but we strongly recommend also referring to Allegro’s A89301 Evaluation Board User Guide (4MB pdf) for detailed instructions on tuning various parameters. This application note is primarily written for Allegro’s own APEK89301 evaluation board, but the information applies to our A89301-based controller board as well.
![]() |
The Pololu A89301 Configuration Utility software. |
---|
![]() |
An A89301-Based Sensorless Brushless Motor Controller connected to a computer with a Pololu Isolated USB-to-I²C Adapter (IOREF shorted to 2V8). |
---|
Speed limitations
The A89301 has a maximum commutation frequency of about 1 kHz (the exact limit is very close to 1085 Hz). This translates to a maximum motor speed in RPM as follows:
``\text(Maximum RPM) = {\text(1085) \times 60} / \text(pole pairs)``
For example, a 14-pole brushless motor (with 7 pole pairs) would be limited to 1085 × 60 / 7 = 9300 RPM. Trying to exceed the 1085 Hz limit can lead to unexpected behavior from the A89301, such as causing it to abruptly stop the motor. As a result, please note that this controller might not be suitable for certain brushless motors, particularly ones intended to spin at very high speeds (like small RC drone motors).
Power dissipation considerations
This brushless motor controller can continuously deliver up to 11 A motor current under typical conditions. The motor current is defined as the amplitude (peak) of the sinusoidal current waveforms in each phase, and it is generally equivalent to the Q-axis current (or Q-current) measured by the A89301 and displayed in the configuration utility.
The actual current the board can deliver will depend on how well you can keep the module cool. The controller’s printed circuit board is designed to draw heat out of the MOSFETs, but performance can be improved by adding a heat sink or forced air flow. (Conversely, performance will be reduced in applications that limit heat dissipation, such as high ambient temperatures or operation in enclosures.)
The A89301 has a configurable current limit (or rated current setting) that can be set through its I²C interface; on this board, it is set to 11 A by default. The A89301 actively limits the controller’s output voltage amplitude to regulate the motor current at this level. Please note that measuring the current draw at the power supply will generally not provide an accurate measure of the motor current. Since the input voltage to the controller can be significantly higher than the phase voltage, the measured current on the power supply can be much lower than the phase current (the controller and motor coils basically act like a switching step-down power supply).
Warning: This motor controller has no meaningful over-temperature shut-off (while the A89301 IC has a thermal shutdown function, it is the external MOSFETs that will overheat first). An over-temperature condition can cause permanent damage to the motor controller. We strongly recommend you do not increase the current limit setting beyond 11 A (or lower in applications with reduced heat dissipation) unless you can first confirm that the temperature of the MOSFETs will stay under 140°C.
This product can get hot enough to burn you long before the chip overheats. Take care when handling this product and other components connected to it.
Schematic diagram
![]() |
Schematic diagram of the A89301-Based Sensorless Brushless Motor Controller, 50V, 11A. |
---|