HVP-MC3PH 16A Current Mods: Software Triggering Non-Clearable Faults

cancel
Showing results for 
Search instead for 
Did you mean: 

HVP-MC3PH 16A Current Mods: Software Triggering Non-Clearable Faults

545 Views
Contributor II

Hello I have the HVPMC3PH.  I have made modifications to the HVPMC3PH along the lines of the 'Protection and Hardware Changesv4.pdf and AN5254, Adapting KMS for Custom Hardware.  All of the changes I have made are relatively straightforward and comparable changes to what is described in the 2 PDF's mentioned earlier that describe modifications to allow for higher current drive. 

  After making these changes I now have 2 "Non-clearable" faults that are listed below...

   1) Current Sensor Calibration Fault

   2)  ADC Offset Fault

KMS GUI also reports that the DC Bus voltage is 0V when I can clearly measure 1.2V at TP31(ADC input after Resistor Divider) and measure 160V @TP1(DCB_Pos).

In probing the PCB with a DMM it appears that something is being detected in software that is not allowing the PFC portion of the circuit to come 'alive' as there are no PWM signals driving the PWM_PFC1/PWM_PFC2 pins which control the Gates on the N-FETs Q1 & Q2 on page 3 of the HVPMC3PH schematic where all the PFC circuitry lies.  Being that Q2 and Q1 never turn on there is no signal feeding into the OpAmps U2A/U2B thus completing the loop of the fault. 

From what I can tell the faults shown above are something taht are being triggered by software not adjusting to the updated parameters put into the KMS.  I am following the exact procedure described in 'Protection and Hardware Changesv4.pdf'

and I can clearly see the header file gets updated and then the newly compiled program gets loaded onto the MKV31F after selecting "Run Project on MCU". 

Can someone that is familiar with the KMS GUI/Software and/or HVPMC3PH provide some insight here?  We simply can't make use of this design unless it can drive higher currents above 8A and the Fairchild 3PH Inverter can clearly handle currents well above 8A.  I realize 16A is pressing a bit but we will only see current spikes above 12-14A for very short durations upon startup.  Ultimately we will develop our own PCB of course suited for higher currents but we need to validate this design can drive our motor with at least a minimal load and right now 8A is not enough.

Any input/guidance would be greatly appreciated!!  I have attached the documents referred to in this and also a document that describes precisely the components we have changed to adapt the HVPMC3PH to allow 16A.

Regards,

Frank

Labels (1)
0 Kudos
14 Replies

41 Views
NXP Employee
NXP Employee

Hello Frank,

You are pressing the abilities of the HV platform by increasing the current to 16 Amps.  We recommend not exceeding the 1 KW rating of the platform.  We also recommend that once you have established your basic control of the motor that you design your own power stage that can match of the spec of your motor.

The PFC operation is determined with the software running in the MCU.  Since KMS did not implement the PFC control in the reference designs the PFC circuit is not operational.  Take a look here for some documentation on PFC implementation on KV46.  You will probably need the KV46 to implement KMS with PFC due to the addition high frequency PWMs that are available on the Kv46.  Good news, we just announced the release of KMS that supports the KV46. 

Best Regards,

Philip Drake

Systems Applications Engineer, NXP

0 Kudos

41 Views
NXP Employee
NXP Employee

Hello Frank,

the HV platform supports PFC functionality, but as mentioned above, it requires sw control of the PFC circuity. By defalut PFC is off.

There was released standalone PFC reference design based on HVP-MC3PH and HVP-KV46 boards.

PFC ref. desing

Regards,

Pavel

0 Kudos

41 Views
Contributor II

Hello Philip/Pavel well Yes I certainly am pressing the limits and blowing out the windows and doors on the HVP kit ;-)  With the Swap out of the Fairchild Driver for the 30A version I am able to handle Peak Phase currents of >40A and continuous currents depending on the RPM I am driving our motor at of close to 20A.  I had a Rectifier I had already ordered sometime back that was capable of up to 30A continuous so I had swapped that in place of the Rectifier already in the HVP.

At this point I have proven KMS can drive our motor and will start our own custom PCB.   The HVP Kit to me still seems under-powered at least for our motor for sure.  You guys could do a fairly simple upgrade to this kit to have a 30A version primarily by replacing the FNB41560(15A) with the FNB43060T2(30A) which is pin compatible with the FNB41560.  If the 43060T2 were to be used at least then someone would have the ability to drive higher currents for motors that need to drive a decent load.  I.E. - The HVP could still be configured for 8-10A to start but then all they would need to do is make the resistor divider changes to accomodate up to 30A continuous.  In doing so it would certainly make sense to swap the Rectifier for a 30A version also.

A couple of final questions that I have in 'tuning' the motor...

1)  The motor we are using is quite beefy and can handle >300V and >40A though once it is spinning with a typical load it is typically needing around 12-16A continuous depending on the RPM.  I have ran through the Automatic Parameter/System Inertia Measurements with the voltage of the motor set to 170 and then at 350V.  I did not see any significant difference in the values after the measurements.  In changing the Rated Current from 16 to 30A I do see some differences as to be expected as this will adjust the amount of current that is pumped through the motor during the Parameter Measurement.

   QUESTION:  What is the general effect that will occur during the tuning process from increasing the 'Rated Current'. 

             I.E. -  In general would you think I would end up with better tuning by providing the max Current or something a bit

                        smaller?  Also not entirely sure how the 'Rated Current' ties into the Inertia Measurement values.

2)  I was trying to find some further details on fine tuning the PLL(Estimator) and Current Regulator values.  I have experimentally came up with some values that appear to be working okay but I don't have what I would call a solid understanding of a 'Best Practice' for coming up with those values.  The default values that get populated after Auto Parameter Measurement are way off from where I end up needing to adjust them to to get our motor to start up reliably.

3)  Can you explain a bit about 'Service Factor'?  The KMS UsrGuide indicates that it allows the motor to run at a higher current than maximum but there is no real explanation as to how one might make use of changing this value from the Default Value of 1?  I.E. - If my 'Rated Current' for my motor is set to 30A and I set 'Service Factor' to 1.2 would the Motion Controller allow up to 36A? 

4)  Lastly while I have empirically come up with an 'Acceleration Limit' and 'Jerk Limit' value to get our motor to start up reliably I am not entirely sure of a best practice in coming up with a 'Jerk Limit' value in particular.  Being the Jerk Limit is the derivative of the Acceleration correct me if I am wrong but if I need our motor to start quickly I would set a rather high jerk limit.  If I want the motor to go from 0 to 2200rpm at a slower rate I would decrease this value, correct?

Thanks for all the help Everyone!!

Regards,

Frank

0 Kudos

41 Views
Senior Contributor I

Frank,

Please see my answers to your questions below.

1. The biggest impact of changing the Rated Current is that this will adjust how much current the speed controller will use to hold the command speed.  You should set this value to the maximum RMS current you wish to apply and tune with that.

2. The initial values for the PLL and Current Bandwidths are set to "best guess" based on the collected motor information.  In my experience, the Current Bandwidth doesn't tend to need adjusted unless you are running a high speed motor or a motor with low inductance.  The PLL Bandwidth establishes how quickly the PLL assumes that the motor can accelerate, so for large inertia systems this needs to be reduced.

3. I wouldn't use the Service Factor for anything, it is better to set things via Rated Current.

4. When I set up these systems I will set the jerk to be fairly large, and tend to control the ramp up more using the acceleration. I find this is more intuitive. My recommendation would be to set the jerk to the maximum you need and leave it there.

0 Kudos

41 Views
Senior Contributor I

Frank,

The non-clearable faults that you are seeing are due to issues with the phase current measurements.  The Phase Current signals running back to the MCU need to be setup such that they measure 1.65V when there is zero phase current flowing through the sense resistor.  You need to use the DMM to see what the voltage is on the Phase Current sense pins routed to the MCU. Specifically look at TP45, TP40, TP37.  

If those non-clearable faults are active, than nothing else in KMS will work.

For reference, the PFC portion of the HV Kit is not used by KMS.  The DC bus is based on pure rectification.

0 Kudos

41 Views
Contributor II

Hi Adam,

  Thank You Sooo Much for the responses and obvious knowledge of the HVP-MC3PH. I will probe the TP's a bit later today. 

I have 2 questions posed at the bottom...

As you have read earlier I have modified the Gain of the OpAmps U11A/U11B to have the output be 3.3V @16A  per my attached Word Doc earlier and per the description below...

  • I_SENSE Calculations (schematic pg 8)

Gains are applied by U11A/B, U8A to the voltage drop across the Phase Current across Rshunt(0.05).  A 1.65V offset is applied to the signal (3.3V/2) so that both negative and positive currents can be measured.

 

Gain OpAmp U11A = R114 / (R109 + R110)

V_ADC(I_sense_A,B,C) = (Iph * Rph) * (R114 / (R109 + R110) ) +Voffset

 

Default values: R114=7.5K, R109=1.6K, R110=220

G = 7.5K / (1.6K + 220) = 4.121    V_ADC = 3.3V @8A

 

Solve for G @ Iph = 16A:

G = (V_ADC – Voffst) / Vsh         => Vsh = Iph * Rph = 16A * 0.05 = 0.8V

G = (3.3-1.65)/0.8 = 2.0625

 

Solve for R114:  G = R114 / 1.82K               => R114 = 2.0625 * 1.82K = 3.75K

 

3.74K 200V 0805 100mW

https://www.mouser.com/ProductDetail/TE-Connectivity-Holsworthy/CPF0805B3K74E1/?qs=sGAEpiMZZMu61qfTU...

 

Replace R114, R95, R65, R93, R89, R83, R85 with 3.74K Resistor.

pastedImage_2.png

1) Can you direct me to where in the Project/Source the settings for the check for 1.65V is if I need to modify this down the road?  Or is this fixed in the Library we don't have access to?

2)  Seems like maybe I should have left R93/R89/R83/R85 as 7.5K resistors?  I will go back through and redo some calculations a bit later today.

Regards,

Frank

0 Kudos

41 Views
Senior Contributor I

Frank,

1. 

The measured ADC midpoint value is captured as soon as the software begins executing.  It stores the result for each channel in: adc.calib.offsetIa, adc.calib.offsetIb, & adc.calib.offsetIc.  It then compares the captured value to ensure it is between ADC_MIN_OFFSET_COUNT & ADC_MAX_OFFSET_COUNT defined in the feedback_3ph.c file.  The ideal value for the ADC midpoint is 2048 which is exactly 1.65V on the ADC.

If your ADC midpoint isn't correct, I would strongly suggest that you resolve the circuit issue instead of modifying the software.

0 Kudos

41 Views
Contributor II

Hi Adam,

  Some Success!!  You were correct there was a Resistor that had not been updated(R82) in the I_sense_C signal chain.  Making that update the system now gets past the hard fault.  Thanks for pointing me in the right direction!!

Now onto actual Motor Tuning.  We are driving a custom 12pair, >300V, >10A capable motor.  We have not had this fully characterized yet but have already done extensive testing with another HV Motor driver that is in the Open Source world that was found originally that is widely used in the drone, electric skateboard, etc products and drives this motor under heavy loads no problem at all.  The issue with that design is that it only drives up to 60V and we want to drive the system off of Rectified Line voltage ~170(120VAC) or >300V(220-240VAC) and the HVP-MC3PH with the PFC front end matches this capability quite well. 

That being said and after the Mods to make it capable of Peak Currents of 16A I am seeing the following scenarios...

1)  Even though I update Max Phase Current & Instantaneous Over-Current to 16A I am still limited to setting the Motor Rated Current on the Identity Page to 10A?  This ultimately after doing the Automatic Parameter Measaurement/Inertia Measurement and storing the parameters then forces the Steady State Current back to 10A and with only a partially loaded motor the Over-Current trips trying to get it started.

That being said I have 2 questions...

1) Is there a way to force the system to allow the Motor Rated Current to accept 16A to avoid having the Steady Current constantly trigger a fault?  It appears there is a ratio between what is allowed to be entered here based on the Max Phase Current as if I enter 18A in the Max Phase Current I can then enter 11A in the Rated Current in the Motor settings and thus allows 11A for Steady State.

2)  I am starting to look at this but thought I would ask.  Ultimately we are going to need much higher current capability to handle some dynamic loads in the 30-40A range peak possibly.  Do you know if Fairchild has a pin compatible version of the FNB41560 that can handle higher currents that I could possibly swap in its place?  OnSemi/Fairchild has a plethora of these sort of Inverter IC's and I have yet to find a good concise document that describes the families at a high level.  Secondarily the FNB41560/B2 almost appears as if it is "not recommended for new designs" as it does not show up in the Products Listing for Intelligent Power Modules?  You can only find it by specifically searching for that product.  On the product page it shows...

pastedImage_1.png

which I am guessing the "Not Rec"  is a cut off version of Not Recommended for New Designs though I could be wrong...

I am currently going through the finer details in the KMS User Guide, API Guide and Lab Guide for finer guidance on how to tune heavily loaded motors though I am starting to think that even 16A is just not enough to drive this as the other Open Source product drives this no problem at all and can handle what is claimed as 240A for a couple seconds and 50A continuous.

We are driving this with FOC...

Regards,

Frank

0 Kudos

41 Views
Senior Contributor I

Frank,

1. The difference you are seeing between the Max Phase Current and Motor Rated Current comes down to peak vs RMS.  The Max Phase Current establishes the maximum possible current in KMS.  So all limits are derived from this value.  So the Motor Rated Current will be less than the Max Phase Current to ensure a margin of safety between the largest possible phase current and what is readable on the phase current sensor.  Additionally, the Max Phase Current is a peak value and Motor Rated Current is an RMS value.

1. After a successful Motor Parameter Identification, you should be able to increase the Steady State Overcurrent threshold to 16A.  The maximum value of that parameter is limited to the Max Phase Current.

2. I'm not very familiar with Fairchild's offering.  I don't believe that the FNB 45 series can support that much current.  It looks like there are devices that support more current but are in a different package on their site.

It might be useful to capture the motor phase current using a phase current probe and oscilloscope on your other motor control product during startup to assess how much current you need during startup.

0 Kudos

41 Views
Contributor II

Hello Adam,

  Thanks again for your responses.  So I was relatively successful on getting our motor to spin under minimal load with the Fairchild driver that comes with the HVP kit. 

I have found a pin compatible 30A version of the Fairchild Driver that I have already made the Mods necessary to the HVP to accomodate this and successfully got it up and running. 

I have one MAJOR QUESTION:

In the schematic in the PFC section there are 2 Chokes that are shown L20/L30 and then 2 inductors shown L2/L3.  In upgrading the HVP to 30A I pulled from the BOM the part number for L20/L30 and found a Schurter Common Mode Choke that will get me to ~30A with a 330uH Common Mode Choke. 

In going to actually do the Mod to the HVP I quickly realized that even though the schematic shows L20/L30 these Chokes are not populated onto the Board?  Only L2/L3 are populated onto the HVP?  So my question comes in should I simply be upgrading L2/L3 to 30A compatible 650uH inductors OR should I really be fitting in the ~300uH Chokes?  It is not entirely clear what the intricate details on the PFC design are and realizing that L20/L30 are not actually populated has furthered a bit of confusion in this area.

Ultimately for the sake of Testing I would be perfectly fine if I could simply bypass these inductors if it is not going to cause some unforeseen issue in the ability of the PFC circuit to work.  I.E. - If L2/L3 are simply to reduce EMI/Noise could I bypass/short across L2/L3 terminals? 

Regards,

Frank

0 Kudos

41 Views
Senior Contributor I

Frank,

I'm glad you were able to get the motor spinning successfully.

In the KMS software, the PFC circuitry is not used (unless you have added this capability yourself).  The DC Bus is generated from rectification of the AC signal only.  You should make sure that the Bridge Rectifier (D6) is sized correctly for your higher power requirements.

0 Kudos

41 Views
Contributor II

Hi Adam,

  Thanks for the quick response.  Wow OK that is enlightening.  So essentially the majority of the page 3 of the SPF-28118.pdf schematic is non functional and the PFC_Overcurrent fault check and the OpAmps U2A/U2B are non-functional.  I was under the understanding that it was functional.

That being said I have scoured the documents covering the HVP-MC3PH and I don't see anywhere where the PFC functionality is discussed as to being able to turn it ON/OFF?  I would assume this would be enabled in the software project or is this something that the user needs to write their own Software on the MKV31F themselves??

Regards,

Frank

0 Kudos

41 Views
Contributor II

Hello as a comment after reviewing the IAR project generated for the HVPKV31F via the KMS GUI.  It appears these hard faults are being set by functions in the feedback_3ph.c file.  In particular the function FEEDBACK_checkfaults() checks both the OffsetFault and gainFault by calling functions that check both constants such as ADC_MIN_OFFSET_COUNT and ADC_MAX_OFFSET_COUNT for the OffsetFault and then for the gainFault it is checking v->calib.gains.kIa, v->calib.gains.klb, v->calib.gains.klc or the 3 Phase current gains though I am not entirely clear where these initial values are calculated. 

Regardless it appears that there are some predefined thresholds that are causing this issue with the Hard Faults though I don't know enough about how these values were calculated initially to know what they should be modified to?

It feels like in modifying the OpAmp gains that there is some sort of check that is performed upon Initializing the system that is not reading a high enough voltage with the gains being adjusted to a lower value to allow higher current.

Any ideas on what to change these values to based on my hardware modifications?

Regards,

Frank

0 Kudos

41 Views
Senior Contributor I

Frank,

The initial value for the v->calib.gains.x is set to 1.0  This is configurable in the KMS GUI, it is really for users who have done a thorough characterization of their ADC opamps circuits and have been able to characterize how close the true gain is to the theoretical gain.  

We configured those predefined thresholds as "best practices" values for how far off the ADC offset should be.  If the ADC offset it wildly off from the center of the ADC range this can limit the maximum current sense range and will cause clipping on the measured phase currents.  You are free to change those #define values, but it is typically indicative of larger issues in your analog circuitry.

You can look at what the calculated offset values for each channel are in the variables: 

adc.calib.offsetIa

adc.calib.offsetIb

adc.calib.offsetIc

Based on the changes you may have made when following the guide, I would not recommend changing any values that are #define inside KMS.  I would instead recommend that you debug the issues in the analog circuitry.

0 Kudos