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.

LP-AM243: LP-AM243

Part Number: LP-AM243


Tool/software:

Hi,

I have AM243x-LP and modified sample code. "C:\ti\motor_control_sdk_am243x_09_02_00_09\examples\position_sense\bissc_diagnostic\single_channel\am243x-lp".  Code is modified to integrate a Biss-C encoder.  I have used a 8 poles ( 4 pole pairs) 2.6 Amps continuous current PMSM motor and run  this motor without problems. Now I have a different servo which is main component of the system. It has 20 poles and 15 Amps continuous current. I can not run the code.

rtuSddfIrqHandler routine simply detects ADC offsets at SDFM and to get the mechThetaOffset it blocks the motor. When this is completed gSDDFOffsetComplete is set and CLOSED_LOOP_SPEED shoud run. It runs but PWM at motor phases disappear. Is there a trip zone running behind or is this an overcurrent at SDFM? This motor has no load and should run at 2-3 Amps...

#define APP_EPWM_OUTPUT_FREQ ( APP_EPWM_OUTPUT_FREQ_20K ) /* init freq */

#define ISR_PRD_IN_SECONDS 0.000050

cmp3 = 15000;
cmp0 = 5000;

300000000, /*Value of IEP clock*/
20000000, /*Value of SD clock (It should be exact equal to sd clock value)*/

Biss-C working well but in "rtuSddfIrqHandler" routine the following code generates an arror, since rotor is blocked I see PWM sihnals at motos phases. After cmp0,cmp1,cmp2 calculation, setting these values collapses PWM ( in  pruEncoderIrqHandler).

/* ADC offset complete, lock the rotor to electrical 0 */
computeCmpx(0.167, gEpwmPrdVal, &dc0, &cmp0);
computeCmpx(-0.167, gEpwmPrdVal, &dc1, &cmp1);
computeCmpx(-0.167, gEpwmPrdVal, &dc2, &cmp2);

/* Write next CMPA values. Swap cmp0 and cmp2 because the HW connect PWM0 to Phase C and PWM2 to Phase A */

writeCmpA(gEpwm0BaseAddr, cmp2);
writeCmpA(gEpwm1BaseAddr, cmp1);
writeCmpA(gEpwm2BaseAddr, cmp0);

Regards,

Vedat