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.

DRV8316REVM: Facing problems with migrating Universal Motor Control Project from F280025C to F280049C

Part Number: DRV8316REVM
Other Parts Discussed in Thread: DRV8316, TMS320F280025C, TMS320F280049C, C2000WARE, SFRA

Hey Team,

We have been working on developing motor controls and add features like FOC FW and MTPS using InstaSpin motion Library on LaunchXL - F280049C and DRV8316, but have been failing to find support or even proper documentation on how to develop source code for the same, For now we have been using this Universal Motor Control Project Manual and following the steps to use a custom board as we were not able to find any pre written example for DRV8316 with LaunchXL F280049c so we took a sample example for F280025c and then are trying to migrate it for F280049c. But there was no luck going ahead with that, that even created more build errors for us, We have made the following changes to the project configurations as well.

  1. Changed the Board and device type by double clicking on the .ccxml files in the project folder
      
  2. Renamed the .ccxml files to our processor from TMS320F280025C to TMS320F280049C
  3. Made changes to the pin configs according to pin mapping of f280049c
  4. We even changes the build configurations for the project

These are the errors that we encountered.

 

We think these errors are because the files in src_device are for f28002x but we need those for f28004x, can you aid us on how and where to get the device files for our specific controller.


Thanks 
Shlok Desai 

  • Hi Shlok,

    These errors must be due to the files for F28004x not being included properly. Did you follow the procedure to edit the .projectspec file before importing? Proper steps to include F28004x device files need to be completed.

    I had previously converted the F28002x project to F28004x device in C2000Ware_MotorControl_SDK_4_01_00_00. You can download and place these files in the directory below and try using this project instead. It may work for MCSDK v4_02 as well.

    C:\ti\c2000\C2000Ware_MotorControl_SDK_4_01_00_00\solutions\universal_motorcontrol_lab

    f28004x.zip

    Best,

    Kevin

  • Hey Kevin,

    Thanks for the help,

    Did you follow the procedure to edit the .projectspec file before importing? Proper steps to include F28004x device files need to be completed.

    For the last time I think we had followed incorrect porting steps and didn't change the .projectspec file but after your suggestion and closely following the steps in the documentation I think we have moved a bit ahead bit still not resolved the problem, just so you don't get confused from the previous Screenshots and the ones added in this reply, we have changed the project name. 

    There are these new linker issues which have popped up now which suggest that there were problems resolving driverlib.lib files to driverlib_eabi.lib files and it's not able to locate the driverlib_eabi.lib files.

    As far as my understanding exists (which is at a very preliminary level) I presume that driverlib.lib builds all the .C files inside "src_device>driverlib>" which is where the project encounters an issue of not being able to find/resolve the symbols for ADC_setVREF, CMPSS_configFilterHigh, CMPSS_configFilterLow, CPUTimer_setEmulationMode etc. and causing this error (Correct me if my understanding is wrong):


    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "attempt2_f28004x.out" not built

    Surfing the web for this error code we found out this documentation from TI on the linker errors and tried following the troubleshoot steps, but this didn't help out.

    So that you can know the problem in depth I am attaching our project zip file with you, we are using DRV8316R as the motor driver so you might have to change the build configs to Flash_Lib_DRV8316RT_3SC as when zipping or sending the C files we observed that the project moves back to the default DRV 8323RS. 

    attempt2_f28004x.zip

    Below is the list of all the predefined symbols in the project properties if you want to replicate the project on your end to check what the problem might be: 
    ${COM_TI_MOTOR_CONTROL_C2000WARE_SDK_SOFTWARE_PACKAGE_SYMBOLS}
    _INLINE
    _FLASH
    _F28004x
    _FULL_FAST_LIB
    BSXL8316RT_REVA
    MOTOR1_FAST
    MOTOR1_ESMO_N
    MOTOR1_ENC_N
    MOTOR1_HALL
    HALL_CAL
    MOTOR1_OVM_N
    MOTOR1_FWC
    MOTOR1_MTPA
    MOTOR1_SSIPD_N
    MOTOR1_VOLRECT_N
    DATALOGF2_EN_N
    DAC128S_ENABLE_N
    DAC128S_SPIB_N
    CPUTIME_ENABLE_N
    TEST_ENABLE_N
    SFRA_ENABLE_N
    STEP_RP_EN_N
    CMD_POT_EN_N
    CMD_CAP_EN_N
    CMD_SWITCH_EN_N
    CMD_CAN_EN_N

    We are using C2000Ware_MotorControl_SDK_4_02_01_00 for now. 

     We will be highly grateful if you could help us out with this problem.

    Thanks
    Shlok Desai 

  • Hi Shlok,

    I think these latest errors may be related to the warning below. Can you try and make sure 'driverlib_eabi.lib' is being used for DriverLib functions.

    As far as my understanding exists (which is at a very preliminary level) I presume that driverlib.lib builds all the .C files inside "src_device>driverlib>" which is where the project encounters an issue of not being able to find/resolve the symbols for ADC_setVREF, CMPSS_configFilterHigh, CMPSS_configFilterLow, CPUTimer_setEmulationMode etc. and causing this error (Correct me if my understanding is wrong):

    Close, just the functions are all per-compiled in the .lib file. The source files in the driverlib folder seem to be excluded, using the .lib as the source instead.

    Best,

    Kevin

  • Hello Kevin,

    The code works well now, for anyone facing a similar issue we checked on weather the driverlib_eabi.lib files were being linked or not (to check this, one may checkout the make files available in the project directory) and then had to make changes in the project properties () in the c2000 linker to search for the library files in the particular path required for linking, don't know why it was not included by default in the example project but that's fine maybe happened because we ported the project for f280049c, will attach a screenshot for the same.

    The code has no linker issues post this change, thanks for the troubleshooting steps and all the help that you provided.


    Best,

    Shlok