This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi all,
I'm in a dilly of a pickle - I just finished populating my 'proper' board (based on a prototype I posted here for anyone that remembers) and, no surprises, it didn't work. The problem is TZ2 is tripped:
There is no fault - in fact, I can watch GPIO28 go from high to low when I deliberately set the supply voltage to <5.5V. So that all seems to be working and OCTW is also not reporting a fault. Both GPIO28&29 are high.
Interestingly, I can turn the PWMs on by manually turning off en_gate - by that I mean toggling the register... At this point TZ2 flag remains high but I can now clear it (manually setting the bit in clear register)... When I turn en_gate back on, TZ2 latches again... turning off the PWMs.
Half my ADC results are 0x00, (the bottom half) pretty sure this is not the cause, but the result of the problem as they are the phase currents?
So, what, besides OCTW and FAULT (GPIO 29/28), can cause TZ2 to trip on the BOOSTDRV8301?
Thanks
Hi again all, an update before TI opens its doors for the week....
Re half my ADC results being bolted to zero - thought about this and it didn't make sense, even a solid short to ground should show some bit movement... Investigated and it turns out that Int1TriggersSOC is not firing at all...The results (8-15) do not seem critical - maybe they are not firing because of TZ2 latch? Although I couldn't find this either in the code or documentation? The other ADC results seem fine - bus voltage is good and the rest are small because there is no phase current.
Watching the GPIOs over several minutes, there is in fact some jitter and the fault GPIO28 will flick on (low) (PWMs start) and then immediately off (back to high) again. The fault line is in fact not going low at all, I have spent hours with a scope on it and it is a very constant 3v3? This does not make any sense to me....
I started looking into the possibility that I may be destroying the internals of the DRV8301 with hot air... I have looked into the reflow profile provided in the powerpad pdf and I do not think this is the case (full disclosure, I am half-assing it as we don't have a re-flow oven - hot air at 250-300C to melt solder past, drop chip in place and hold heat on for maybe one minute and watch the chip centre itself)... Additionally, I lost patience with trouble shooting and replaced the pre-driver to no avail... exact same problem persists (I also reflowed the passives and am reasonably confident there is no short or things where they shouldn't be.)
I have yet to properly look into the SPI - they are talking though... Does any reported (show-stopper) fault on SPI also send OCTW low?
***************************************************************************************************************************
One more non-new-forum worthy question if whomever responds wouldn't mind/
Why would I not be able to reach the rated Kv of any of my tested motors - yet commercial controllers can? For instance, I can get my eflite420 up to 41kRPM using the parameters provided in motorware from a 13.8V source using both my working prototype and the BOOSTXL... This is a 3800kV motor, so it should get to >50kRPM...
The same is true for my other motors although they are slower - my propdrive 1200kV will get to 13kRPM with InstaSPIN and 16.8kRPM with commercial 6-steps////etc
I am confident that identified values are accurate where used. - Unloaded obviously.
Thanks
Hi Patrick,
Let's see if we can try and find out the issue.
If I understand the issue correctly TZ2 is triggering as soon as the PWMs start? This sounds as if there is an issue with one of the external half-bridges and a FAULT is asserting. The DRV8301 will not latch overcurrent events in certain modes so if it reporting a FAULT and then the PWMs are removed you will not be able to see it.
You mentioned that you see the FAULT/OCTW line going low. Can you catch this on a scope with the PWM signals? This may help to tell us the issue. I have soldered many of these chips down with hot air (quick reworks) and not had any isssues. So I am less worried here.
So steps to take (this is just my best guess at the moment):
-Can you bring EN_GATE high initially with no problem
-Does the TZ2 assert after appling PWM? Catch this event on a scope.
-Possibly debug a solder defect/blown FET in the half-bridges
to the first part of your post, the TZ2 is getting set from the nFAULT of the DRV8301....so it has to be something with the driver / inverter. I sent this over to the DRV830x guys.
On the topic of full speed
1. have you applied over modulation from proj_lab10? Off the shelf ESCs are mostly using block BLDC, so you need to do the same with InstaSPIN-FOC if you want to use all the voltage to get maximum speed.
2. You will also get slighly more speed if you take out the speed loop and just provide a torque input (like in proj_lab05a. You can take proj_lab10 and update it to just use a torque reference like 5a.
3. The more I look at these motors the more I'm convinced that IS-FOC (or any FOC technique) will have a limit....one of the limits relates to the Max Hz * 8 (for good current control and estimation). For the 60 MHz F2802x, that is probably 16 KHz control loops so a Max Hz of 2 KHz. Motors that need to run beyond this really won't be possible....even if you move up to a 90 MHz (very expensive for this application) F2806x you might be able to get to 24 kHz / 8 = 3 KHz max motors.
The other limit is the fact that we are trying to take shunt current samples of these motors with ridiculously high short circuit currents...in normal motors with higher inductances when the lower leg is switched on you get a reasonably linear change in current, and taking a sample at the midpoint gives you a nice average current reading. With these ultra low Ls motors it's really tough to get accurate measurements....that's why no ESCs do this. They have a slower control loop running on the I-total to ground, but aren't trying to get the type of current information out of the motor that we are.
Thanks Chris & Nick,
Nick said:-Can you bring EN_GATE high initially with no problem
Yes, no TZ problems until PWM starts/
I have also removed the 10R gate resistors to take the FETs out of circuit-made no difference whatsoever. I also checked all the FETs and they are all fine.
As for catching the Fault going low on a scope - no luck. It sits at a solid 3V3, again makes no sense because my scope is considerably faster than even a GPIO interrupt?
I might try a logic analyzer with a 'proper' high/low trigger (scopes doesn't work) to see that the line is in fact going low.... Also thought there may be a dodgy connection from fault line to MCU so I re-soldered the MCU.. I now have lead-poisoning but the problem persists.
Chris,
ChrisClearman said:1. have you applied over modulation from proj_lab10? Off the shelf ESCs are mostly using block BLDC, so you need to do the same with InstaSPIN-FOC if you want to use all the voltage to get maximum speed.
WOW! InstaSPIN is truly outstanding.... Documentation not so much:-P...
Some over-modulation and the motor outstripped its own kV rating!!! Thought I was going to have to explain a shortcoming//
I have no clue what is going on here as there is nothing in the lab write-up? -I'm still in motorware 11 so maybe this has been fixed in 12? I don't want to move to 12 since I'd have to port my drv to HAL (as I understand it) and I have some I2C and PWM 'read' stuff done in drv...
I can no-doubt find some literature on over-modulation, but do you have anything instaSPIN specific on it? Also on the lab? I am just increasing the overModulation and the speed keeps going up - is this dangerous at all? I have yet to hit a limit - I just chickened out at +10% rated kV. Using the motor that I had so much trouble identifying when I first started no less (validates identified parameters). -The commercial controllers hit the kV rating to the digit so it's not a manufacturer kV underrating per se -
Also, block BLDC? The only thing I could find on this is a youtube silent video which showed it as identical to 6-step? Is it just six-step by any other name?
Thanks
EDIT: Chris, would you be able to attach the version of lab 10 that just uses a torque reference please - or the changes required (the torque controller seems to get up to speed faster and gives me a nicer current/speed graph.)... I couldn't get it to play nicely when I tried to update it.
As far as I know nothing else triggers the TZ2. Chris can comment furthur here. If there is no FAULT or OCTW being reported, I am stumped.
Can you disable it in the firmware and see if the driver responds properly?
Patrick Fisher2 said:WOW! InstaSPIN is truly outstanding.... Documentation not so much:-P...
yes...we haven't finished the lab write-ups for 9 or 10 yet...I've asked to have them complete for the next update. This post has information on using 9 and 10:
http://e2e.ti.com/support/microcontrollers/c2000/f/902/p/335340/1177174.aspx#1177174
Patrick Fisher2 said:I am just increasing the overModulation and the speed keeps going up - is this dangerous at all?
The over modulation is not dangerous. You are just increasing the amount of voltage to the motor, up to the bus level.
Patrick Fisher2 said:Also, block BLDC? The only thing I could find on this is a youtube silent video which showed it as identical to 6-step? Is it just six-step by any other name?
yes, block = 6-step = trapezoidal.
Patrick Fisher2 said:EDIT: Chris, would you be able to attach the version of lab 10 that just uses a torque reference please - or the changes required (the torque controller seems to get up to speed faster
in proj_lab5a you'll note
// Dis-able the Library internal PI. Iq has no reference now
CTRL_setFlag_enableSpeedCtrl(ctrlHandle, false);
and then it calls
// update Iq reference
updateIqRef(ctrlHandle);
you'll note in this function that it is using the user variable gMotorVars.IqRef_A to set the value in per unit to the controller. This function also automatically handles setting the speed reference to match the sign of the IqRef command. This is required for the direction capability of FAST to work correctly.
Great Success!
2nd iteration of my custom speed controller is now spinning and IDing motors!
However, ADC results 8 through 15 are bolted to zero which is strange... I thought that I may have messed with the code and then forgot about it as IntNumber_2 is not acknowledged like DRV_acqAdcInt(drvHandle,ADC_IntNumber_1);.... However, after swapping out for another controller this is not the case - ADC results 8-15 are small (~dec 13) and don't change regardless of what the controller is doing but they are not bolted to zero like mine are... I can't see how this is hardware related as the ADCs results that do read a value are the same physical dye as the ones that don't. But, it also can't be software as I have swapped out the controllers without adjusting the software at all?
*What do ADC_Results 8 through 15 actually do, if anything... And, why would my 8 through 15 read 0x00;?
Nick,
I may have asked this before (can't remember but I was definitely curious), Is the BOOSTXL rated at 10A continuous main Bus Current or 10A 'Continuous' through a single shunt resistor?
I was getting data from the BOOSTXL today and accidentally set my IQ REF to 105 instead of 10.5 - while I had my high side current sense logging... The board ran like this for 11s... When I looked at the BUS current it topped out at 22A - I figured this must be what the active current limiting was aiming for - bit much for a coincidence? I should note that the power supply I am using is rated for 13.8V 12A continuous and the voltage did drop to about 8V so this may be why the board didn't blow up? -Still a lot more juice than it is rated for, (unless the rating is different from standard ESC ratings?).
Thanks!
****************************No Questions - Just Pics/Vid of Board******************************************************
Nick, if you're curious as to the cause of my initial issue, the gates of my FETs did not solder properly. Everything else on them did though so I am guessing that it was a result of the Gate being on a small pad of its own... Not sure if you are supposed to tin pads when using hot air and solder paste? but I definitely will be for the next three boards.... Oh, and it was OCTW that was faulting not Fault which is why it (fault) was a solid 3v3 when I was scoping it... Evidently I was tripping... no sleep:-/
Board will definitely be getting a revision after I graduate, still some pretty crappy layout choices in it... Also, was a lot neater before I started reflowing stuff....But it works very well!
Patrick Fisher2 said:I was getting data from the BOOSTXL today and accidentally set my IQ REF to 105 instead of 10.5 - while I had my high side current sense logging... The board ran like this for 11s... When I looked at the BUS current it topped out at 22A - I figured this must be what the active current limiting was aiming for - bit much for a coincidence? I should note that the power supply I am using is rated for 13.8V 12A continuous and the voltage did drop to about 8V so this may be why the board didn't blow up?
You can command all the amps you want, but if your load won't demand it and your supply won't source it, you won't hit it!
Your supply saved your butt in this case, but your motor still wouldn't have pulled 105A either...what is it rated for under full load?
Patrick Fisher2 said:However, ADC results 8 through 15 are bolted to zero which is strange...
I think this is that something isn't initialized correctly for the other ADC samples...since we only use the first bank of 7 results in our control solutions we haven't tested taking more....I'm guessing many customers have run into this, fixed themselves, and moved on...we need to look at getting any SW update into MotorWare so it just works.
Patrick,
On the ADC topic, try this
in adc.c ADC_disableInt() function add
uint16_t clearValue = (intNumber & 0x1) ? (1 << 13) : (1 << 5); //different bit cleared if high or low interrupt in register
This was just reported by a customer and it looks legit (above is our replacement fix for his large compound code statement)
http://e2e.ti.com/support/microcontrollers/c2000/f/902/t/337602.aspx
Great to hear!
The 10A rating is for RMS current out of each half-bridge simultaneously. We basically took a fairly large motor and saw thermally what we could drive continuously at ambient temp. before we started getting close to thermal limits. This is a fairly safe limit and I am sure you could get more out of the board for short periods of time.
If you read 22A on a DC power supply then you were pumping some major power! Luckily it sounds like everything survived ok. I will always put a pretty tight clamp on high power supplies when I am working with them.
Thanks Chris and Nick...
Chris, I tried your suggestion but didn't have any luck... i'm content to just leave them clamped to zero since they don't do anything - at least until I finish writing the project up.
On to stranger requests...
As part of the course requirements, I have to present this at a graduating engineers conference in a few weeks as well as do up a poster that will hang in the main entrance for a year... Anyway, part of it is acknowledgements - I'd like to put the TI logo on the poster and in the power point (don't know if I need to get TIs approval since its a public presentation?) and, if either/both of you are interested, your names? Names would be on the poster and in the thesis - just a the author would like to acknowledge....
Let me know if either of you are at all interested in this?
Thanks
Patrick,
You don't need permission to use our logos/graphics or our names, though nice of you to ask.
Feel free to use anything off our website, or if you need a higher resolution image of the TI or InstaSPIN logos I can help you out, just message me your email address and let me know what you need.
I'd like to use your story for our own efforts as well - if you will allow - so any papers, posters, pictures, vids you want to share we would like to promote. And even though our InstaSPIN in Action tab has commercial customers, I thought it would be fun to add you as a University / Hobbyist example: http://www.ti.com/ww/en/mcu/instaspin/instaspin-etraction.shtml
Go for it. As Chris mentioned, we like featuring projects with our parts in action. Chris can loop me in if you shoot him an email. Looks like you have a pretty cool board.