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.

TMS320F28388D: Syscfg in C2000Ware_DigitalPower exemplary project

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE, TIDM-1000, POWERSUITE, SYSCONFIG

Dear TI experts,

I am reaching out to seek clarification on a couple of issues I encountered with the Syscfg tool in the C2000Ware_DigitalPower exemplary project, post-installation (as shown below).

(1) I noticed a setting labeled "INCR_BUILD" in the Syscfg tool. I assumed changes to this setting would reflect in the "VIENNA_INCR_BUILD" value in the code snippet. However, altering the "INCR_BUILD" value seems to have no effect on the corresponding code. Could you provide guidance on how this setting is supposed to interact with the code?

(2) Additionally, the Syscfg tool typically auto-generates "board.c" or "board.h" files in many exemplary projects within C2000Ware. In this instance, I was unable to locate these files. Does Syscfg create a different set of files in this context, or how should the absence of these usual files affect the code structure?

Thanks,

Eric

  • Hi Eric,

    For C2000Ware_DigitalPower_SDK, most of the reference solution used a trimmed down version of syscfg, which we called it powerSUITE. It doesn't generate or provide options to configure device modules, it only provides configurations that is specific to the reference design (TIDM-1000). So here you won't see board.c or board.h that syscfg uses to address device modules, those are included mannually within the code.

    Regarding "INCR_BUILD", it is reflecting "VIENNA_INCR_BUILD",  it might be that you didn't re-compile the project which only by compile-time would the build tool invoke syscfg to re-compile and alter the generate source code. 

    I hope this helps, please let me know if you have any further questions.

    Best,

    Sen Wang

  • Hi Sen,

    Thank you for your previous response. I have two follow-up questions to further clarify the functionality of the Syscfg tool or PowerSUITE in this example project:(1) Regarding the Syscfg settings for general EPWM, ADC, etc., are you suggesting these are dummy settings because they do not generate a corresponding "board.c" file? If so, could you explain the intended functionality of these settings within this Syscfg tool? (2) How does PowerSUITE impact the value of "VIENNA_INCR_BUILD"? I noticed that the parameters are defined in "vienna_settings.h," which appears to be the only file autogenerated by PowerSUITE that affects the code. Could you provide more details on how changes in PowerSUITE translate to modifications in this file?

    Thanks,

    Eric

  • Hi Eric,

    I think I understood your confusion, even though powerSUITE uses syscfg GUI framework, they serves two completely different purpose:

    • C2000ware syscfg: Auto code generation tool for device-specific modules (ADC,EPWM,UART, CRC, some software libs etc.)
    • powerSUITE: Auto configuration generation tool for TI reference design-specific settings (Controller parameters, Open/close loop, mode of operation etc.)

    Board.c is a generated artifact for syscfg that sets up device modules. TIDM-1000 (and most other DPSDK designs) doesn't use c2000ware syscfg. These  device module configuration and setups are hand-written in TIDM-1000, you can find those hand-written code within files that ends with suffix "hal". ("vienna_hal.c" and "ethernet_hal" under DPSDK/solutions/tidm_1000/device_name/drivers/)

    For your 2nd question, powerSUITE will generate the value of "VIENNA_INCR_BUILD" based on your input on the GUI. We provided four different operating modes, and by selecting each mode in GUI (the GUI when you opened up main.syscfg in CCS), the generated artifact will update the "VIENNA_INCR_BUILD" macro value. That macro value is referenced in the actual code to determine the workflow of program, by using C preprocessors like #ifdef, #if etc.

    If you wanted to simplify things and not use powerSUITE, we also provide a .projectspec that does not use powerSUITE when you import the project to CCS.

    I hope this helps, please let me know if you have any further questions.

    Best,

    Sen Wang

  • Hi Sen,

    I understand that powerSUITE is specifically designed for certain TI reference designs. However, when I open main.syscfg, a GUI appears with two setting options in the left column, which I believe correspond to PowerSUITE and C2000Ware syscfg. My remaining question is: does the C2000Ware syscfg within main.syscfg function properly If I want to add some functions? Because there is no board.c autogenerated"

    Thanks,

    Eric

  • Hi Eric, 

    The reserved peripherials are still part of PowerSUITE, and unfortunately these peripherials doesn't generate any dependencies or function calls like C2000ware syscfg does. 

    Best,

    Sen Wang

  • Hi Eric,

    Another alternative if you wanted to have C2000Ware syscfg support and auto generate device files is to use the projectspec that has nonpowerSUITE in its name, and add the following lines with in projecspec itself, within "projects"

    sysConfigBuildOptions="--product ${COM_TI_DIGITAL_POWER_C2000WARE_SDK_SOFTWARE_PACKAGE_INSTALL_DIR}/c2000ware/.metadata/sdk.json
    ${POWERSUITE_ROOT}/.metadata/product.json --device=F28003x --output=${PROJECT_ROOT} package 100PZ --part F28003x_100PZ"

    The --device, package and --part values will be different according to your device, you can use an example sysconfig project in C2000Ware to figure out what values these parameter would be.

    Once you imported the project into CCS, right click on the project itself and select properties, make sure you have C2000Ware_DIgitalPower_SDK as a product, or the macro ${COM_TI_DIGITAL_POWER_C2000WARE_SDK_SOFTWARE_PACKAGE_INSTALL_DIR} will not work.

    Then the last step would be to add a c2000ware syscfg file to the workspace, you can copy the (.syscfg) file from the same example sysconfig project that you found in C2000Ware.

    This way, however, would meant that you'll no longer to be to configure powerSUITE parameters via GUI, and had to manually edit "settings.h" in order to interact with the code like how powerSUITE does.

    Best,

    Sen Wang