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: Guidance for Configuring Peripherals on C2000 DSP

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

Tool/software:

Dear TI Support Team,

I am currently working on a project using a C2000 DSP and need to configure multiple peripherals, including:

  • ePWM
  • SDFM
  • eCAP
  • SPI
  • eQEP
  • SCI
  • CMPSS
  • I2C
  • ADC
  • McBSP
  • DAC
  • Watchdog Timer
  • DMA
  • CLA
  • CAN
  • USB
  • GPIO
  • EMIF

I would like to ask if there are any general guidelines or recommended initialization sequences for configuring these peripherals effectively. Specifically, I am looking for best practices to avoid conflicts and ensure proper synchronization between peripherals, especially for time-critical systems.

Here are a few specific questions I have:

  1. Is there a recommended order to configure peripherals (e.g., should clocks and GPIOs always be initialized first)?
  2. Are there dependencies between peripherals (e.g., using ePWM to trigger ADC or DMA) that I should be aware of? Specifically, in cases where one peripheral (e.g., ePWM) serves as a trigger for another (e.g., ADC), which peripheral should be configured first to ensure proper operation?
  3. For the example application as a 6-switch boost PFC rectifier: Is it recommended to configure the GPIO pins for PWM outputs before initializing the ePWM module itself? Are there any specific considerations or potential issues I should be aware of to ensure proper functionality and avoid conflicts during the initialization process?

I have reviewed the Technical Reference Manual and C2000Ware examples, but I want to ensure I am following best practices, especially for systems involving multiple peripherals operating simultaneously.

Thank you for your assistance. I look forward to your guidance.

Best regards,

Thao

  • Hi Thao,

    Those are a lot of peripherals listed to address- we generally use E2E to address specific questions related to one category/peripheral of focus so that they can be handled by the correct subject matter expert (SME). I can direct you to the C28x Academy (https://dev.ti.com/tirex/global?id=C28X-ACADEMY) which has starting documentation for C28-based C2000 MCUs as well as peripheral videos and hands-on labs. 

    Regarding the peripherals - the TRM and register descriptions there will indeed be the most detailed resource. The Academy also has modules of learning content for many of the peripherals and there are typically links to collateral at the bottom of those pages as well (User guides, app notes, etc.). For a "golden" example of peripheral initializations (proper order, etc.), please refer to the C2000Ware examples as these showcase the general best practice order of configuration (GPIOs, clocks, etc.) all in the main C file. I would also add that using our SysConfig GUI will take care of peripheral configuration orders for you - all you need to do is put the configurations into the interface and the C code is auto-generated for you. There are videos and documentation for SysConfig available online and in the Academy as well.

    If you could please create separate threads for more specific/targeted questions, that would be best so that they can be answered by the right SME Slight smile

    Thanks & Regards,

    Allison

  • Hi Allison

    Thank you for the guidance and resources.

    However, I’d like to clarify that my goal is to configure the DSP without using SysConfig. I want to build a deep, general understanding of how to combine and coordinate all peripherals, not just handle individual peripherals in isolation.

    The examples in C2000Ware are helpful, but they mostly focus on single peripherals. I’m looking for a system-level approach that demonstrates how to properly combine and initialize multiple peripherals in an application. Specifically, I’m interested in understanding the initialization order and dependencies between GPIOs, clocks, and other modules.

    I understand that the TRM is a detailed reference, and I am already using it extensively. I’m also familiar with the C28x Academy, but it seems to not fully address my focus on combining peripherals.

    Are there any additional resources, guides, or examples that explicitly cover the interaction and proper initialization order of multiple peripherals? Any pointers would be greatly appreciated.

    Thanks and best regards,

    Thao

  • Hi Thao,

    Glad you were able to go through the examples and Academy. These are the greatest software resources in terms of learning the peripherals. If you are looking for integrated solutions, my next recommendation would be to utilize our reference designs and the software/hardware implementations there which combine peripheral use for specific end-equipments. Links to these can be found on ti.com or on the C28x Academy end-equipments page. Is there a certain application you are targeting or combination of peripherals you are seeking?

    Best Regards,

    Allison