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.

customized inverter setting

Hello,

has anybody try to use 28027f launchpad+ with their own inverter system? my question is related to how to setup the adc reading adjustment (in the software) since the input signal level is different from the original boostxl-drv8031. in my system:

i have two current sensor (phase A and C): at 0 current, the input voltage at the ADC equals to 1.66V,   the max current at the full adc range (3.3v) is 84.8A;

for voltage: when phase A, B and C voltage is 0 voltage, the input voltage at the ADC equals to 1.27V, the max voltage at the full adce range (3.3v) is 137V; same thing for the DC bus voltage.

the question is how to change the code to reflect these difference?  here is the original code:

Phase voltage:
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_4);
value = _IQ12mpy(value,voltage_sf) - obj->adcBias.V.value[0]; // divide by 2^numAdcBits = 2^12
pAdcData->V.value[0] = value;

Phase current:
//value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_2);
//value = _IQ12mpy(value,current_sf) - obj->adcBias.I.value[1]; // divide by 2^numAdcBits = 2^12
//pAdcData->I.value[1] = value;

value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_7); // divide by 2^numAdcBits = 2^12
value = _IQ12mpy(value,voltage_sf); //
pAdcData->dcBus = value;

  • for voltage you should have 0 V in your system = 0 V at the ADC and 137V = 3.3V at the ADC.
    You don't need to measure negative voltage.

    for the current that looks ok. make sure you review 5.2.2 polarity topic in SPRUHJ1

    update the user.h values for ADC_CURRENT, ADC_VOLTAGE, IQ_CURRENT, and IQ_VOLTAGE per SPRUHJ1
  • my adc input signal for the phase voltage is coming from an op-amp, and it has a 1.27v offset when the phase voltage equals to 0, so basically, my adc input change from 1.27 to 3.3 when the phase voltage go from 0 to 137v. i'm a little confused by the _iq function, my understanding is that it take the raw adc output, which is in 2^12 format then divide it by 2^12, therefore the output of _iq function is a ratio, am i right?  and during the motor identification, why it change to Q24 format? are the gmotor.I and .v value represent actual voltage and current number?

    i had read the user guide, still not clear.

  • "my adc input signal for the phase voltage is coming from an op-amp, and it has a 1.27v offset when the phase voltage equals to 0, so basically, my adc input change from 1.27 to 3.3 when the phase voltage go from 0 to 137v. "

    change your hardware and use one of the circuits we have recommended. What you have done will not work with how the software expects to get the ADC data.

    the _iq function just casts the value as a global IQ value. Then the _IQ12mpy function multiplies the ADC value - which was already in 12-bit - by the scale factor created based on the ADC_VOLTAGE and IQ_VOLTAGE (or current). And then the bias (offset) is subtracted.
  • don't you think it's easier to change the software instead? the original circuit is for low voltage application, i need the isolation for high voltage.. if you care to answer my question, please try to be more clear, so far, i don't get much from it..