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.
Tool/software: Code Composer Studio
Hello Champs,
I have connected a PMSM motor with T-format encoder to TMDXIDDK379D (with F28379D controlCARD in H1):
Motor U/V/W to TB1, encoder Data+ to pin6 of H6, encoder Data- to pin 8 of H6, encoder 5V to pin7 of H6, encoder GND to pin1 of H6.
I have import below project "fcl_f2837x_tmdxiddk" in CCSv10.1.0 (CGT version is v20.2.1.LTS):
C:\ti\c2000\C2000Ware_MotorControl_SDK_3_00_01_00\solutions\tmdxiddk379d\f2837x\ccs\sensored_foc
1) According to user guide, In "fcl_f2837x_tmdxiddk_settings.h", BUILDLEVEL is set to FCL_LEVEL2 and POSITION_ENCODER is set to T_FORMAT_ENCODER :
--------------------------------------------------------------------------------------------------------------------------------------------------
#define CGND COLD
#define BUILDLEVEL FCL_LEVEL2
#define SAMPLING_METHOD SINGLE_SAMPLING // DOUBLE_SAMPLING //
#define FCL_CNTLR PI_CNTLR // CMPLX_CNTLR //
#define CURRENT_SENSE LEM_CURRENT_SENSE // SD_CURRENT_SENSE //
#define POSITION_ENCODER T_FORMAT_ENCODER //QEP_POS_ENCODER
--------------------------------------------------------------------------------------------------------------------------------------------------
After the codes are being compiled and loaded into RAM, set "enableFlag" to 1, and then set "runMotor" to Motor_RUN, the motor cannot run and the "runMotor" is always showing "Motor_STOP" status.
If I changed the "POSITION_ENCODER" to "QEP_POS_ENCODER", compiled and then loaded the code again, set "enableFlag" to 1, and then set "runMotor" to Motor_RUN, the motor can successfully run.
My question is: Why did the motor not run with the settings of "T_FORMAT_ENCODER"?
2) If BUILDLEVEL is set to FCL_LEVEL3 and POSITION_ENCODER is set to T_FORMAT_ENCODER :
--------------------------------------------------------------------------------------------------------------------------------------------------
#define CGND COLD
#define BUILDLEVEL FCL_LEVEL3
#define SAMPLING_METHOD SINGLE_SAMPLING // DOUBLE_SAMPLING //
#define FCL_CNTLR PI_CNTLR // CMPLX_CNTLR //
#define CURRENT_SENSE LEM_CURRENT_SENSE // SD_CURRENT_SENSE //
#define POSITION_ENCODER T_FORMAT_ENCODER //QEP_POS_ENCODER
--------------------------------------------------------------------------------------------------------------------------------------------------
After the codes are being compiled and loaded into RAM, set "enableFlag" to 1, and then set "runMotor" to Motor_RUN, the motor cannot run and the "runMotor" is always showing "Motor_STOP" status.
The "tripFlagDMC" has not been set. I have tried swapping two phase of the motor and run the codes again but the issue still existed.
My question is: why was "runMotor" always set to Motor_STOP and why did the motor not run in level3?
Would you please kindly help? Thanks!
Best Regards,
Linda
Hello Ramesh,
Would you please update whether there is any suggestion to solve this issue or not? Thanks!
Best Regards,
Linda
Linda,
Apologies for the delay. I ran the test again and did not see any issue.
If the encoder handshake does not happen, then it will lead to this problem. The T-format encoder may need bit more current and the power supply switch to the encoder may not be turning ON properly. In the BiSS/ENDAT macro of IDDK kit, there is a capacitor C5 whose value need to be changed from 330pF to 10nF.
In the user guide, there is a mention about this. Look at section 5.1.3.1.
Hello Ramesh,
This issue still exists after changing C5 to 10nF. Would you please kindly suggest? Thanks!
Best Regards,
Linda
Hello Ramesh,
5V0 in M12 has been connected with 5V0-Enc pin on the header H6, but the issue still cannot be solved.
Would you please kindly help again? Thanks!'
Best Regards,
Linda
Linda,
I think the problem is somewhere else that we have not seen. At this point, it is not IDDK problem. Check with another encoder, or atleast verify the software again. Our code, out of the box, should work fine if the user guide instructions are followed.
rgds,
ramesh
Hello Ramesh,
I have got another PMSM motor with 17-bit T-format encoder and the issue remained the same on it.
Would you please kindly suggest whether it's possible to connect T-format encoder to run motor using IDDK and record a video to show us how to configure at your side or not? Thanks!
Best Regards,
Linda
Hmm, I suspect if there is any issue with encoder resolution. Can you compare the bit size of the demo encoder vs the one you are checking. Meanwhile, I will check here as well. Let me know if you find some discrepancies.
Hello Ramesh,
The T-format encoder I used is 17-bit resolution, are there any other parameters about resolution I need to check?
Would you please kindly share the update at your side? Thanks!
Best Regards,
Linda
Linda,
Can you check if the C28x is sending a packet to the encoder? Check the interface signals - the C28x will send them once, and then wait for a response. So you will need to setup a trigger to catch the waveform. I believe there is a probe point on the IDDK to check these signals.
Check that the encoder is powered properly and not current limited. It is better to provide the power externally as some t-format encoders draw a rush current on power-on which is not supported by the board.
Regards
Lori