Hello there. I am developing a board with DRV8332, and need help. The hardware works just fine however I am not sure the board is being driven correctly by SimpleFoc. I know everyone is very busy and this type of help requires actual commitment. If anyone is willing to dedicate some time and effort it would be great. If you are, please let me know and I’ll post the details.
P.S. the board will be MIT license, and I’ll open it up with full schematics and design, if that make any difference in your decision.
Hi @Valentine ,
I am interested in learning more about your issue, and may have time to help out.
Thank you. It’s a medium-low powered board —10A— with peak —13A—, with the goal to make it “stackable” and as dense as possible. First iteration will be DRV8332, gate power section and inline current sense with ACS711. I am aiming at 4 to 6 layers copper. The board is not “arduino footprint compatible”, that is, the leads and inputs will be completely custom.
Second iteration will include stm32f4x section for the MCU, probably 405, 407, 411 or whatever else is in stock, two-stage power section and a lead-out for stacking with an external controller, communication probably CAN bus since I will need anywhere between 6 to 12 boards per controller which will be a much larger one, perhaps 767 or similar.
I am at a breadboard stage and have a hardware engineer working on the overall design and copper.
The help I need is advice only and if anyone is really interested I can ship a prototype however it is not realistic to expect people to alpha-test a board simply out of curiosity.
I need someone to list test cases I can perform to make sure I am not missing anything and if I get stuck perhaps give me some input. Also on features that could be developed and I am not thinking at that point, such as “nice to have”.
This is not a commercial effort, as in I am not planning to sell this as an end product, it’s an internal private development effort (not a hobby).
When the hardware engineer is at some stage reasonable I will post the design.
At that point any of your questions or inputs are appreciated.
The issue I was having was that the output didn’t seem to properly form from the PWM signal. If you are familiar with the expected 3PWM waveform let me know Ill post the oscilloscope waveform.
Hey, I’m just starting with the development of a drv8332 board.
Previously I used odrive but I let the magic smoke escape and I actually found the user experience way more complicated than simplefoc.
I’m going to drive 250w hoverboard motors with the drv8332 in voltage or current controlled mode.
If you could post some oscilloscope screenshots from the MCU pwm output and from the drv8332 output I could look over them, I previously looked at the simplefoc output on my oscilloscope out of interest.
I will, later today. Thank you very much for the help!
A side note, not to be a spoilsport but running a power motor on this driver will be a problem. Anything over 50w will smoke the chip. The silicon is rated at 10a with a 13a spike. At 12v, that’s 100w at most. or may be I am wrong.
That is hilarious… and expensive.
I had the same experience and dropped odrive. I am sure it’s a great board but not suited for what I needed.
Here’s a link to a video of the SimpleFOC driver board PWM outputs (two out of three, limited by my scope channel count) to drive a motor at a constant speed. The center of the square waves align, and the duty cycle changes with time (as we know, to effectively generate 120 degree out of phase sine waves across the phases of the motor).
What does the PWM output for your setup look like?
Btw, I’m not using an Arduino, my MCU is the STM32H743.
Same story here with the Odrive - tried it, but gave up after I couldn’t quite make heads or tails of the firmware code. Although, I appreciate that writing code that is generalizes across many hardware setups is super hard.
I am using stm32f103, however I will also test with a few other STM32 boards I have lined up. This is the first test just to sanity check the test setup.
Thank you for the input. This is the pwm of the second setup. The first one — details at the end
I am a bit embarrassed to say that I found the problem. Apparently when I re-flowed the original chip I either exceeded the temperature or didn’t properly dry the ceramics and the chip was just damaged enough to work but produce a very strange waveform. I wish I recorded the waveform as a learning tool, however eventually the chip was so damaged that after I finished signal testing and connected a motor the silicon simply shunted. Luckily it didn’t explode, because I had a heatsink mounted on it and could have really done some damage.
I just re-flowed a second chip on the setup and the above is the correct waveform.
Lesson, temperature specs and drying cycles matter, and always test in a cage to avoid shrapnels.
I would appreciate if you suggest certain tests I could perform to ensure the boards behaves under load, under certain stress, etc.
I would also appreciate if you suggest a motor (or motors) to perform some of the tests. The board is rated at 10A.
Good lesson to learn - glad you got to the bottom of it.
Do you have an end use-case/application in mind for the driver board you are designing?
Thank you. Yes, a non-linear (elastic) many degrees of freedom joint. A single joint is modeled as a pivot point (the servo) driving a payload attached to an elastic coupling (e.g. a spring). We have three telemetry sensors per joint, one for the motor itself (rotational), another for the pivot (angular) and another for the payload (3D coordinates and gravitometry). The goal is to deliver the payload in a most efficient trajectory from point A to point B. In a 3-joint system the problem is computationally so intensive that a run-of-the-mill MCU cannot calculate the trajectory AND run the servo, therefore the problem must be decoupled. Naive me, I thought I could find a servo that does this, buy a few, hook them up and focus on solving the actual problem — the algorithm—, little I knew I will end up designing a servo board from scratch. That’s definitely not where I wanted to be. I’m not in the servo business. The servos I found were either closed solution, too small, too big, too expensive (we are talking $10k+ per servo), too inefficient, wrong driver configuration, consumed too much power or lacked certain features (most important, non-back-drivability). Now I’m stuck and my only way out is down the rabbit hole of custom design. You’d think with all recent robotic advances these types of problems would be solved. Big surprise.
OK, rant off.
Maybe use a motor from a hoverboard, 250w max at 36v at least thats my usecase.
Was a Chinese one, only 80€ instead of 140€, actually I’m glad I don’t have to use it anymore.
I see. The chip is rated at 40v, running it at 36v will introduce voltage spikes which will break down the mosfets. I believe 24v is the most you could get out without some pretty extensive protection on the output. There is only one way to test of course, by actually running it.
If you are at a paper design stage why don’t you get a more powerful driver? There are plenty of cost efficient IGBT drivers that can pump out up to 75A at 400V, that’s over 10kW in a pretty small package? You can run it the same way as the 8332 but never worry about exceeding the specs.
Yes, I had the same issue when considering TVS diode. You can get diodes with a working voltage of 24v which garantie 38.5 clamping voltage. The diode i chose to implement can clamp like 300 amp, so driving Nema23 steppers I think it will cap the spikes before 38.5v. I do have a part which is 36v rated (38v Absolute MAX), so there might be a risk. The diode will begin to conduct in reverse at around 26.5v, so logically it should be able to clamp spikes in the 10amp range before it reaches 38.5v. A lightning strike might do some damage, but considering that the PSU in most cases has a overvoltage protection, I hope it will cut the power. Any thoughts on this? I know it´s a worst case scenario, but still. In modern houses the relays will also cut of in the event of a lightning strike. With large capacitors you can somewhat dampen the spikes, since the voltage spike happens there.
I know most people will find this a hyperbole but it’s a real concern, I worked in a part of the world where lightning strikes were a normal everyday occurrence. I am not talking a movie effect lightning strike which splits a tree open — those were happening at higher elevations where you don’t go unless you got a death wish, but a continuous stream of EMF shocks that really mess up the equipment at low elevations. At night you can see the St. Elmo’s on the lightning rods everywhere. Eerie.
I need to consult with the engineer I work with. Probably in a few days I’ll post my schematics.
i just came to a similiar conclusion, but not because of voltage (as far as i can tell the drv8332 absolute max is rated at 70 in the datasheet) i looked at basically copying the odrive but thats to much hastle for me and now im looking for somthing drv8332 like but with 30a +
edit: this looks intersting: https://www.mouser.de/ProductDetail/STMicroelectronics/STIB1560DM2T-L?qs=byeeYqUIh0OEkxGDHOKcFA%3D%3D
This is a 50A / 650V (30A/400V per leg) fully integrated driver, independent high and low sides, temperature sensor, bootstrap diodes, and IGBT power stage with independent power ground for current sensing, with peak at 75A. You only need to wire up the bootstrap capacitors, and some minimal circuitry to feed the drivers and the power stage. This is NFAM5065L4BT (Fairchild, they got acquired by On Semi). It’s $30 retail. I took a photo compared to the 8332.
This is the minimal circuitry, just connect an external MCU like the blue pill.