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.

INSTASPIN-BLDC: Developing a high precision gimbal system with InstaSpin Motion and absolute encoder input.

Part Number: INSTASPIN-BLDC
Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F28069M, BOOSTXL-DRV8301

Hi, I'm considering and studying avaiable technology to do FOC control of a 3-axis gimbal system that I'm developing. The gimbal needs very high precision in position feedback to achieve a 85 µrad RMS stability requisite. This is impossible with Hall effect or ABI incremental with direct drive.

I'm Planning to use a 21bit absolute optical encoder. It uses SSI or SPI to deliver data. 

To choose TI's InstaSping motion as a solution to my project, I have to guarantee that is possible to read the sensor data and feed it to the MCU. So, I have some questions:

1 - Is it possible to acquire absolute angle data from an external sensor with SPI or another way of comunication and feed it into the instaSpin Motion code?

2 - What kind of adaptation I would need to do? I would be able to use auto tune calibration with this kind of feedback?

3 - What is the maximum resolution TI's MCUs support for position feedback with Instaspin Motion? I could not utilize ST or Trinamic solutions because of the limitation of 16 bits.

4- How many MCUs I would need to control the 3 motors? Is it possible to put some other basic logic in the MCU while running instaspin motion? (For example, one MCU pulls the roll, pitch and yaw  data from a master controller and controls 1 motor, and other MCU receives 2 of the axis data from the firs MCU and control the remaining 2 motors).

Thanks for helping me in advance.

  • Please see my answers below. Let me know if you have further questions.

    1 - Is it possible to acquire absolute angle data from an external sensor with SPI or another way of comunication and feed it into the instaSpin Motion code?

    Yes. The position feedback is feed to SpinTAC via the function static inline void STPOSCTL_setPositionFeedback_mrev(ST_POSCTL_Handle handle, _iq24 posFdb). You can feed position feedback from any source through the posFdb input.

    2 - What kind of adaptation I would need to do? I would be able to use auto tune calibration with this kind of feedback?

    The only parameter you will need to adapt to the particular load you put onto the gimbal will be the system inertia. The default inertia estimation routine come with InstaSPIN Motion needs to turn the motor for certain time, which may not fit your particular application. You may need to develop your own inertia estimation / let user key in type of load on the gimbal. The tolerance on inertia mismatch is quite wide.

    3 - What is the maximum resolution TI's MCUs support for position feedback with Instaspin Motion? I could not utilize ST or Trinamic solutions because of the limitation of 16 bits.

    The feedback signal is feed into the controller with PU _iq value. Based on default setting, _iq value have 24 bit of resolution per revolution.

    4- How many MCUs I would need to control the 3 motors? Is it possible to put some other basic logic in the MCU while running instaspin motion? (For example, one MCU pulls the roll, pitch and yaw  data from a master controller and controls 1 motor, and other MCU receives 2 of the axis data from the firs MCU and control the remaining 2 motors).

    It is possible to control dual motor with one MCU. Please refer to lab13f in motorware for a dual motor position control example.

  • OK, thanks to answering most of my issues.

    Now I'm confident to start developing the gimbal system, I decided to use the LAUNCHXL-F28069M board with the BOOSTXL-DRV8301 controller for the motors. I still have some questions:

    1- How much busy the F28069M stays when controlling 2 motors with instaspin motion? What kind of code could be executed alongside instaspin? Is it possible to connect 2 boost boards to the XL launchpad and control 2 motors, correct?

    2- What is the difference between motorware and motor control SDK? Is the M.C. SDK a newer revison of the motorware software? Why MC SKD doesn't list InstaSpin Motion in the features (only FOC)? What should I pick for my project? It seems that MCUs either work with motorware or MC SDK.

    3 - To achieve the precision and acuracy I need, it's necessary a 20 to 23 bit absolute optical encoder to measure the angle. Most of the supplyers of this kind of sensor uses SSI protocol, or BISS-C. Is there a way to interface with those protocols with my launchpad for position feedback? (Any kind of converter chip or even of the shelf board?).

    4- Do you know or recomend any non magnectic encoder with this kind of precision that could interface with this board?

    Thanks in advance.

  • 1- How much busy the F28069M stays when controlling 2 motors with instaspin motion? What kind of code could be executed alongside instaspin? Is it possible to connect 2 boost boards to the XL launchpad and control 2 motors, correct?

    I don't have the CPU usage number on hand for this example. But yes, it is designed to control two motor with two boosterpack.

    2- What is the difference between motorware and motor control SDK? Is the M.C. SDK a newer revison of the motorware software? Why MC SKD doesn't list InstaSpin Motion in the features (only FOC)? What should I pick for my project? It seems that MCUs either work with motorware or MC SDK.

    Motor control SDK is our new platform to support motor control for our new generation of devices starting from F2837xS/D and F28004x. F28069M will still be supported with motorware together with the InstaSPIN-Motion.

    3 - To achieve the precision and acuracy I need, it's necessary a 20 to 23 bit absolute optical encoder to measure the angle. Most of the supplyers of this kind of sensor uses SSI protocol, or BISS-C. Is there a way to interface with those protocols with my launchpad for position feedback? (Any kind of converter chip or even of the shelf board?).

    For BISS-C encoder, TI have a support library through Position Manager. However, this is only supported on new devices starting from F2837xS/D and F28004x that contains CLB. But InstaSPIN-Motion is no longer supported on these newer devices.

    4- Do you know or recomend any non magnectic encoder with this kind of precision that could interface with this board?

    I have used hiperface encoder in the past which uses RS485 for reading absolute initial position and use sin/cos encoder for high resolution incremental position. This can be supported on F28069M with SCI + QEP + ADC.