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.

TMS320F28035: Problem with 28035's cla computing capacity

Part Number: TMS320F28035


Hi Team,

I used pwm to trigger task1 of cla, and then the frequency of pwm was set as 19.2k. When I ran the following code, if I only calculated sClaAtaMsgReal[eAtmInvVolReal] and sClaAtaMsgReal[eAtmLineVolReal], the interruption frequency of cla was 19.2k. If I calculated one more sClaAtaMsgReal[eAtmInvIndCurReal], the frequency of cla would drop to about 9.8k. If I calculated all 5, it would only be about 6k. Is this because of cla's insufficient computing capacity?

sClaAtaMsgReal[eAtmInvVolReal] =
sClaAtaMsgEpm[eMtaInvVolK]*(ADC_INV_V - sClaAtaMsgAdc[eMtaInvVolMid]) + sClaAtaMsgEpm[eMtaInvVolB];

sClaAtaMsgReal[eAtmLineVolReal] =
sClaAtaMsgEpm[eMtaLineVolK]*(ADC_LINE_V - sClaAtaMsgAdc[eMtaLineVolMid]) + sClaAtaMsgEpm[eMtaLineVolB];

sClaAtaMsgReal[eAtmInvIndCurReal] =
sClaAtaMsgEpm[eMtaInvIndCurK]*(ADC_IND_I - sClaAtaMsgAdc[eMtaInvIndCurMid]) + sClaAtaMsgEpm[eMtaInvIndCurB];

sClaAtaMsgReal[eAtmInvOutCurReal] =
sClaAtaMsgEpm[eMtaInvOutCurK]*(ADC_OUT_I - sClaAtaMsgAdc[eMtaInvOutCurMid]) + sClaAtaMsgEpm[eMtaInvOutCurB];

sClaAtaMsgReal[eAtmInvVolBiasReal] =
sClaAtaMsgEpm[eMtaInvVolBiasK]*(ADC_BAIS_V - sClaAtaMsgAdc[eMtaInvBiasVolMid]) + sClaAtaMsgEpm[eMtaInvVolBiasB];

sClaAtaMsgReal[eAtmBusHVolReal] =
sClaAtaMsgEpm[eMtaBusHVolK]*ADC_BUSH_V + sClaAtaMsgEpm[eMtaBusHVolB - csClaMtaEpmBottom];

The RAM where the data is stored, namely the cla's own RAM, is as follows.

#pragma DATA_SECTION(sClaAtaMsgReal, "Cla1DataRam1");
int16 sClaAtaMsgReal[csClaAtaAdcLen];
#pragma DATA_SECTION(sClaAtaMsgAdc, "Cla1DataRam1");
Uint16 sClaAtaMsgAdc[csClaMtaAdcFixLen + csClaMtaAdcLen];
#pragma DATA_SECTION(sClaAtaMsgEpm, "Cla1DataRam1");
Uint16 sClaAtaMsgEpm[csClaMtaEpmLen];

Kind regards,

Katherine