TB9051FTG as an MC33926 replacement but 5V

The TB9051FTG is listed on the Pololu site as a MC33926 replacement but VCC is 5V. Looking at the data sheet I can drive the PWM and logic input pins at 3.3V but the DIAH, OCM and OCC pins would all be 5V. Is there an actual MC33926 alternative product that runs 3.3V? I could use this product with a level shifter but the OCM output would require an op-amp voltage follower circuit that’s just making it all too complex.

Let’s see if Pololu team members suggest any direct alternative. By the way, I think if you use a logic level converter to solve this voltage level problem.


While the TB9051FTG drivers requires a 5V logic supply, it can accept logic signals from 3.3 V microcontrollers. The Dual TB9051FTG Motor Driver Shield uses the voltage from the Arduino’s IOREF pin for its onboard pull-ups. If your Arduino doesn’t have an IOREF pin, you can connect the shield’s IOREF pin to the 3V3 pin.

For the pins you mentioned, there shouldn’t be any problems with using them with a 3.3V microcontroller since they behave as follows on the shield:

  • DIAG: driven low when a fault occurs (or when the driver is disabled by EN or ENB inputs), otherwise pulled up to IOREF.
  • OCM: outputs 500mV per amp (when H-bridge is driving). So it would take a current of 6.6A to reach higher than 3.3V, which should not be a concern since it is higher than the driver’s peak output current.
  • OCC: this pin is an input to configure how the driver responds to an over-current condition, so it should never be driven high by the driver.

However, please note that if you are referring to our single-channel TB9051FTG carrier, the DIAG pin on that board is pulled up to VCC (which requires 5V), so you should not connect it directly to a controller that is not 5V compliant. To use this pin safely with a 3.3V controller, you could use a level shifter or a simple voltage divider, or you could remove the onboard pull-up (I can give you instructions for doing so if you are interested).