Can I simply use two (one and a half) DRV8833s to drive a three-phase BLDC? - Page 1
Forum section: electronics / general

author: CircuitBreaker
author_rank: Contributor
timestamp: July 04, 2022, 11:46:28 am
content: The reason for asking is that I can find much cheaper two-phase ICs than three-phase ICs (e.g. DRV8833 vs TMC6300). So even disregarding the second bridge on a second 8833 would still be cheaper than using a single 6300.Disclaimer: I only want to use the H-bridge part of the driver ICs; I will be using a self-made software driver + MCU to do the PWM controlling and positioning - so no HW speed-control needed of the driver ICs.Alternatively, an even cheaper IC that only has three H-bridges is also fine, but couldn't find one - perhaps I used the wrong search terms.

author: Kjelt
author_rank: Super Contributor
timestamp: July 04, 2022, 11:49:46 am
content: Just use standalone fets then if you are going to write your own softwareThat is how the commercial 3 phase drivers also do it. The ones I have seen opened use an TI 320 uC , small levelshifters to quickly drive 6 fets.Also some protection against back-EMF during braking etc.However it is not that easy to write the proper software, good luck.

author: thm_w
author_rank: Super Contributor
timestamp: July 04, 2022, 10:14:41 pm
content: DRV8833 $1.2011V, 1.5A internal FET 2xTMC6300 $3.3011V, 2A internal FET 3xNormally the TMC stuff has a lot higher markup, often justified with complicated features, although this does not have too many.If you are looking for dirt cheap options I'm sure you can browse around on LCSC and find somethinghttps://www.lcsc.com/products/Motor-Drivers_611.htmlOtherwise, how to TIs other options compare on price instead of looking at trinamic?

author: langwadt
author_rank: Super Contributor
timestamp: July 04, 2022, 10:30:50 pm
content: Quote from: thm_w on July 04, 2022, 10:14:41 pmDRV8833 is two full bridges so 8 fetsTMC6300 is three half bridges so 6 fetsI don't see why the DRV8833 couldn't be used to drive a three-phase motor

author: thm_w
author_rank: Super Contributor
timestamp: July 04, 2022, 10:39:27 pm
content: Yeah 2 and 3 full bridges.It can be used, but, like Kjelt says, OP may be misunderestimating the effort needed to implement this in software.Hall or sensorless?Volume of production?Heres one for $1 that does everything, IF you have hall sensorshttps://www.lcsc.com/product-detail/Motor-Driver-ICs_Hangzhou-Ruimeng-Tech-MS8829_C231941.html

author: CircuitBreaker
author_rank: Contributor
timestamp: July 05, 2022, 09:54:59 am
content: Thanks for the suggestions.Couple of remarks:I thought the bridges on 8833 and 6300 are the same? (i.e. not the 6300's bridges being less functional?)Regarding own software: This is a hobby project, in which I will try to achieve haptic control for BLDC motors (with obviously a knob on top of it). So my requirements are quite different from "regular" uses of BLDC: absolute positioning and the feel of adjustable "holding torque".I have seen people use a certain simpleFOC library, but I'm unsure I'd like to put the effort in removing it from the Arduino-ecosystem (I use STM32). Instead, currently I'm leaning to a new implementation directly in STM32 ecosystem - also as a learning project to understand the concepts of SVM / FOC / etc. better.Regarding position assessment: I currently plan on either use a hall-effect sensor, or two (90 degrees shifted) endless pot meters (edit: shaftless obviously).QuoteYes, yes, I might... But that's part of the fun, isn't it?(I must add a disclaimer at this point, that my background is in embedded software, not in electronics. So I'm less daunted by the prospect of writing software, than to get the electronics side of driving BLDCs correctly)QuoteThanks a lot!! These kinds of hints were what I was looking for. If I google "three phase BLDC driver IC", I only can find Renesas hits (a lot), a couple of TI and the Trinamic ones and false hits (2-phase). And they are all much pricier than this example (or two 8833s).

author: CircuitBreaker
author_rank: Contributor
timestamp: July 05, 2022, 10:07:01 am
content: Oh wait,Just looked at the 8833 datasheet again, it indeed has 2 bridgepairs, correct? So I can use only AOUT1, AOUT2, BOUT1 and ignore BOUT2 to fully functionally drive a 3-phase BLDC, correct?If so, I'm even happier

author: langwadt
author_rank: Super Contributor
timestamp: July 05, 2022, 10:27:05 am
content: Quote from: CircuitBreaker on July 05, 2022, 10:07:01 amafaict, correct

author: thm_w
author_rank: Super Contributor
timestamp: July 05, 2022, 11:39:26 pm
content: If you want to understand the concepts of FOC then yeah, valid reason to do it yourself.User here is claiming they couldn't get it to work with simpleFOChttps://community.simplefoc.com/t/communitys-list-of-tested-off-the-shelf-drivers/345/2As the logic limits PWM input to A1 or A2 only at a time. So true FOC doesn't seem possible with only one of those.I'm sure you've seen this project:https://hackaday.com/2022/03/13/haptic-smart-knob-does-several-jobs/As its using TMC6300, ESP32, and MT6701.Maybe something like twoSC8900, but thats only 5V output, and very small package.There is probably an option with 3 of a simpler H-bridge IC as well, as there are lots for pennies, its just tough to dig through LCSC's selection.

author: CircuitBreaker
author_rank: Contributor
timestamp: July 06, 2022, 05:57:21 am
content: Yes, I read the second post mentioned (the first one I hadn't seen though).I glanced over the FOC library, but I seem to recall that you can only instruct the motor to gotoa certain position (or speed) using P(I)D control. But I also would like to have the possibility to keep it in place - just by keeping the current belonging to the current electrical position of the motor.I don't believe the FOC library provides that fine-grained control. But I could be wrong...So... Now the happy-hobby-tinkering and -learning starts

author: thm_w
author_rank: Super Contributor
timestamp: July 06, 2022, 08:53:25 pm
content: PID control, when we are talking about position, is going to mean that the motor will keep itself in place when not moving to a new position.For SimpleFOC, if you are using an angular sensor then this should be possible, to the degree of accuracy of the sensor. As people are using it for robot arms, etc.https://docs.simplefoc.com/position_sensorsIf you were using only hall sensors, you'll have 6 distinct hall states, so an angular resolution of only 60 or 30 degrees say. Which is not enough for fine positional control.https://docs.simplefoc.com/hall_sensors

author: langwadt
author_rank: Super Contributor
timestamp: July 07, 2022, 06:41:42 am
content: Quote from: thm_w on July 05, 2022, 11:39:26 pmyeh, I see it can only do LL,HL,LH,ZZ - HH is missing so it's not quite as straight forward

author: CircuitBreaker
author_rank: Contributor
timestamp: July 07, 2022, 10:08:06 am
content: With Hall sensor, I mean the kind that measures a rotational position. At least that's what I understood. Something like:https://ams.com/AS5600. So it would function as a rotational position sensor.QuoteWhat I understood regarding this is the following:If the motor deviates from the desired position, there will be a force applied proportional to the difference (disregarding the ID components for the moment)If, however, the motor is stationary at its desired location, there will be no force appliedWhat I want, however, is that when the motor (i.e. "knob") is stationary and I then try to move the knob, I can _immediately_ feel a programmable-adjustable resistance that is constant during turning the knob.I had hoped to achieve this by enabling a "holding torque" simply by applying a variable amount of the (correct) currents for that specific electrical position the knob is currently in.QuoteAh. That _is_ a problem indeed. So I'm gonna have to find an IC that has HH instead of ZZ for that combination. Pity. But thanks for noticing Do I understand correctly, that - as an example - an 8876 would be usable?In the Datasheet (https://www.ti.com/lit/ds/symlink/drv8876.pdf) I seem to read that you can use it in an "independent H-bridge control mode" - where you can independently select HI / LO / Z per H-bridge...

author: thm_w
author_rank: Super Contributor
timestamp: July 07, 2022, 10:15:27 pm
content: Quote from: CircuitBreaker on July 07, 2022, 10:08:06 amYeah, that one is 12-bit, 4096 steps per rotation. Real world you get less than that due to noise, etc.QuoteThere is not holding torque like you have in a stepper motor. You sense the position change then react to that.A typical stepper might have 1.8 degree step due to large number of poles (100 poles), a BLDC might have 4. If you have the motor in front of you, try shorting two of the phases together and turning it."Immediate" is relative, AS5600 sample rate is around 6kHz, you could detect a change in rotation and react within a matter of milliseconds.If you want the simplicity of: hold at x location, with y current, then use a stepper motor.For DRV8876 you'd need 2 of those at ~$1.70 each. I don't know enough to say whether that would work or not.

author: Siwastaja
author_rank: Super Contributor
timestamp: July 09, 2022, 02:56:09 pm
content: You would likely want to add current sense (for e.g. FOC). DRV8833's current sense is just for protection and the measurement signal is not available to the user.Consider doing it with just bootstrap gate drivers (3), discrete N MOSFETs (6), low-side shunts (2) and current sense amplifier IC(s). This gives you the most flexibility (also in PCB routing) and least amount of nasty surprises, for example I remember fighting against a misbehaving TI's DRVxxxx something 3-phase gate driver + current sense chip.

author: CircuitBreaker
author_rank: Contributor
timestamp: July 15, 2022, 12:59:48 pm
content: QuoteIn understand that everybodydoes itthe way described in the latter part of the quote.What I don't understand is why you wouldn't have a holding torque if you just continuously apply the (3-way sinusoidal PWM) 'static' current as defined for a particular electrical position. Why wouldn't that hold the motor in place to that specific electrical position as defined by the PWM configuration?

author: langwadt
author_rank: Super Contributor
timestamp: July 15, 2022, 02:04:23 pm
content: Quote from: CircuitBreaker on July 15, 2022, 12:59:48 pmthe point of FOC is to keep the electric magnetic position 90 degrees to the mechanical magnetic position for max torque

author: thm_w
author_rank: Super Contributor
timestamp: July 16, 2022, 01:12:54 am
content: I suppose you could calculate the holding torque given that static current. I don't know how to do that, but if its anything like a stepper microstepping, you'll have a miniscule amount of torque away from the poles (full steps).But as langwadt points out, as soon as you sense a specific deviation in position you'd want FOC to take over and move the electric field.Sort of a hybrid control system. A lot of the high end servo drives have all of this hybrid control for various purposes, not sure how many of them FOC eliminates the need for.Found these while looking around, not relevant here though (sensorless only for fans):https://www.allegromicro.com/en/products/motor-drivers/bldc-drivers/a89301https://www.allegromicro.com/en/products/motor-drivers/bldc-drivers/amt49406https://electronics.stackexchange.com/questions/509895/how-to-electrically-brake-a-brushless-motor

author: ConKbot
author_rank: Super Contributor
timestamp: August 05, 2022, 03:50:26 pm
content: Cap your maximum commanded torque and you'll have a "springy" knob. Command it to go to where it was 100ms ago constantly (with capped torque), and you'll have a "draggy" knob, where if the user holds it there for 100ms or longer, it stays put. Seems like FOC control would be pretty much ideal for this.