I am using a MCSPTR2A5775E Motor Control Kit with the delivered application software.
For my application I want to use a different motor/resolver. So, I need to change the resolver excitation signal. My measurement shows, it currently is 10 kHz, 5V peak to peak. I need to increase the amplitude but keep the frequency.
Can anyone guide me in this, resp. does anybody know, if this is even possible?
Thanks in advance!
Motor control development kit MCSPTR2A5775E is using resolver excitation signal generator based on a Sallen Key 3rd-order filter.
You can find full schematic in link below.
The purpose of this filter is to get a sine wave from a square wave signal. The resulting filtered signal, output from the Sallen Key third order filter is going through the adapter which is changing the excitation signal magnitude.
If you want to modify excitation signal magnitude for different types of resolvers you shod change passive components values in this adapter. Please focus your attention on R91.
One note :
Any type of resolver should work with the default settings of the excitation filter. It depends mostly on the Resolvers transformation ratio how big magnitude is visible at the resolver's output. Our experience shows correct function even in use when -+7V is required for excitation.
thank you for your transparent reply and for sharing your experience that the lower exciation voltage might be no issue. Accordingly, in the meantime, I figured out that the root cause of my problem might be a different one.
For the background: we want replace the kit's demo motor by our own PMSM and resolver with 2 pole pairs each.
For this, I modified the pole pair numbers in the application software (original NXP software for Kit) and then debugged using the .elf file.
I am then able to get the new motor running in scalar control mode. However, the resolver position evaluation signal still looks the same as for the 3p demo motor, which cannot be. When enabling any FOC control mode, the application runs into a failure. So, I suppose the debug sequence is loading the "old" software version and is not taking over the new parameter values.
How can we load a "new" software version with our new pole pair parameters? I opened a new case (00498617) on this and would be happy if you could have a look.
Motor control kit MCSPTR2A5775E has equipped with SW tools FreeMaster and MCAT. The Motor Control Application Tuning tool is specifically designed for this action. Based on your description it looks like we should start to verify all necessary SW modifications.
You can download app note specifically targeting PMSM motor control and application tuning via MCAT here : https://www.nxp.com/webapp/Download?colCode=AN4642
Please verify if all PMSM machine parameters are correct. Parameters can be added to the MCAT Parameters page. For the first experiments please verify especially pp and align voltage. After you modify the Parameters please use the MCAT buttons to store data and update target.
In page sensors please add the correct number for resolver pole pairs. Once again uses MCAT buttons to store data and update target.
In the Output file page please verify all modifications in the code. If you see modified parameters in this part please use generate configuration file button. This action generates a header file in design studio PMSM_appconfig.h
Please open the design studio and verify if the header file was generated correctly. New parameters should be visible there. Now your code is ready to Build.
If you still see some issues with parameters please clean all projects and build it again.
For more information about MCAT please visit this link :
Thank you for your quick response. I am aware that the MCAT tool allows parameters to be set. However, when I try to modify the resolver pole pairs and click "Update Target" I receive an error:
Moreover, I receive a fault when trying to generate the file ("File Closing Error").
What exactly do you mean by "[...] clean all projects and build it again"? Do you mean the following:
After that, is it also necessary to debug / load againg using the .elf file?
Thanks and br
I reinstalled everything, downloaded a recent copy of the application software, and included a new version of AMCLIB to make sure, the setup is clean.
However, it is still not possible to change the parameters from MCAT without an error message (see below). Hence, I changed the parameters directly in the code, specifically, in the "M1_params" file. I set RES_PP=2 and pp=2. Then I rebuilt the project and loaded it to the MCU and the new parameters are actually displayed in FreeMaster/MCAT thereafter.
-Speed FOC still fails during alignment
-Current FOC reaches run state but motor won't move
-In scalar control at 100rpm set point I observe the following for the resolver position:
To me this doesnt look plausible. For 2 pole pairs I would expect either two or four teeth per revolution. So, I really dont see what else could be done to make the application accept my values.
Thank you in advance
I tried to find the part of the code, where the resolver and motor pole pair information is processed. I looked into "pospe_sensor.c", which is where I believe the resolver position is converted to speed.
I figured out that you splitted the multiplication by the number of motor pole pairs in two steps using motor_PP_gain and shift operation. I managed to adapt this for my 2pp motor.
However, I find it very irritating that the resolver pole pair number is never used in the code. Screened the project for RES_PP. Its only defined in PMSM_appconfig and M1_params.
So, how can I adjust the resolver pole pair number?
thank you for your quick response.
I am aware that the MCAT tool allows parameters to be set/modified. Unfortunately, when I try to update the resolver pole pair number and click "Update target" I receive an error:
Do you have any idea, why I am receiving this message?
In addition, for your statement
"If you still see some issues with parameters please clean all projects and build it again.",
what do mean exactly by "build it again". Do you mean the following option:
If yes, after that, would I also need to debug again?
Thanks for your help and best regards