We would like to use IQMath on TMS570 [1227]. We see it offered on C2000 and Stellaris but not TMS570. How do we proceed?
We are porting a Control Suite application from Piccolo 28035 to TMS570.
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.
We would like to use IQMath on TMS570 [1227]. We see it offered on C2000 and Stellaris but not TMS570. How do we proceed?
We are porting a Control Suite application from Piccolo 28035 to TMS570.
ray,
I am forwarding this to our SME and we will get back to you on this .
Hercules forum support
Hello Ray,
Today we do not have the IQMath library available for Hercules Safety MCUs. There has been some evaluation internal to our engineering team where a few functions have been brought over but no sort of an official release. I will raise your request in our engineering planning.
Today the Hercules family offers a CMSIS compatible Math and DSP Library. While this is not the same as the IQMath library, it may nonetheless be useful.
Let me know if this helps.
Hi Brian,
This is helpful. We are looking at the library that you mention. However, we are very interested in the response from the engineering team. The Control Suite application [8412 kit micro-stepper use 28035] that we are porting uses IQMath basic fixed point plus SIN and COS. Other than the library that you mention, we are looking a work-arounds [e.g. using floating point math] but we are concerned about the performance hit or non-exact functionality. Does your engineering team have an recommendations or work-arounds? Can we have the source code to the IQMath? Or can your team config/compile it for TMS570 and provide the source and library? Even though it may not be optimized for TMS570, it would address some of the concerns that we have and would allow us to progress on our very tight timeline. Looking forward to your response.
Thanks,
Ray
Hi Ray,
Thanks for your patience. As mentioned before, we have done just a small portion of 'optimized' IQMath functions to help improve our MotorWare performance. The library only inlcudes the following 10 functions. It will get published it to www.ti.com/hercules-wiki early next week (as included in an updated motor project). These functions are good enough to convert the PMSM and BLDC projects. I am not sure whether it will satisfy your project. Please note that atan2 and sincos have been done in assembly while the others are just more optimized C functions.
inline int _abs32(int var1);
inline int _neg32(int var1);
inline int _IQabs(int var1);
inline int _IQmpy(int a , int b);
inline int _IQmpy2(int a);
inline int _IQsat(int A, int Pos, int Neg);
extern int _IQNatan2PUA(int y, int x);
extern int _norm32_asm(int x);
extern void _IQNsincosPU(_iq Angle, _iq *SinCos, int IQ_Num);
extern _iq _IQNdivA32(_iq y, _iq x, int IQ_Num);
extern _iq _IQNdivA16(_iq y, _iq x, int IQ_Num);
Thank you Brian. I look forward to the publish to wiki and seeing what the updated motor project will be.