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.

TMS320F28379D: best way to get started with sensored or sensorless FOC

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Hello,

I am using the TMS320F28379D C2000 LaunchpadXL to evaluate our inverter design driving a PMSM. We would like to quickly implement a sensored FOC algorithm to validate and test our design. What is the best way to get started doing this? Please recommend the libraries/modules/TI software I will need to get started.

Is there an example that I can quickly modify for my hardware configuration?

Also, if there are good options for sensorless control, that would be helpful as well.

Thanks.

  •  You may download and install the latest C2000Ware-MotorControl-SDK, and can find an example project for Incremental encoder based sensored-FOC on LAUNCHXL-F28379D with BOOSTXL-3PHGANINV

     

    C:\ti\c2000\C2000Ware_MotorControl_SDK_<version>\solutions\boostxl_3phganinv\f2837x

     

    There is a sensorless-FOC example project, universal motor control lab in  C2000Ware-MotorControl-SDK which is based on the F28002x device, but it's easy to be migrated to F2837x or other C2000 devices. The detailed introduction about the lab can be found in the lab user’s guide as the link below, the guide includes a section about how to migrate this lab to the other devices and inverter boards.

    Universal Project and Lab User’s Guide: https://www.ti.com/lit/ug/spruj26/spruj26.pdf

    Example lab project at the folder: C:\ti\c2000\C2000Ware_MotorControl_SDK_<version>\solutions\universal_motorcontrol_lab\f28002x

  • Thank you, I'm working on the second solution you proposed, using the universal motor lab from the MotorControl SDK based on the F28002x device and transferring over to the F28379D device. Here are the instructions for porting the reference code to a new device: 

    A few questions about this:

    1. For Step 3, I've altered the projectspec file so that all of the 28002x are now 2837xd and all of the 280025C are now 28379D. Is there anything else I need to do to this file? How do I know what to do with idiv_support for my device?

    2. For Step 4, how do I change the memory map for my device? It mentions that generic C2000ware cmd files can be used as a reference to do this, where do I find these?

  • 1. For Step 3, I've altered the projectspec file so that all of the 28002x are now 2837xd and all of the 280025C are now 28379D. Is there anything else I need to do to this file? How do I know what to do with idiv_support for my device?

    Refer to the drivelib guide in C2000Ware of the device to change the codes in hal.c and hal.h. You can find the information in the device datasheet if it supports idiv_support. The compiler will prompt warning message also if the device doesn't support idiv_support.

    2. For Step 4, how do I change the memory map for my device? It mentions that generic C2000ware cmd files can be used as a reference to do this, where do I find these?

    Yes., please refer to the .cmd for the device you used in C2000Ware You may take a look at the link below that helps you to understand how to change the .cmd according to the device

    [FAQ] Where can I find training content for C2000 devices?