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.

CCS/MSP432E401Y: Configure Timer CCP outputs, ADC compare regs

Part Number: MSP432E401Y
Other Parts Discussed in Thread: SYSCONFIG,

Tool/software: Code Composer Studio

I cannot find any way to use Sysconfig to set up Timer CCP (PWM mode) output pins.

Am I missing something or is this just done with register writes?

While I am at it, I plan to use the ADC peripheral compare registers and I do not see them in Sysconfig either.  Are those configured manually also?

  • Hey Barry,

    I'm not very familiar with Sysconfig, but I'll take a look at it early next week get back to you.  

    Thanks,

    JD

  • I am not married to Sysconfig.  I thought I saw that the PinMux Tool had now fallen out of favor, and Sysconfig was the recommended way to assign pins moving forward.

    I am happy to use whatever method of pin assignment / IO configuration is best supported.

  • Part Number: MSP432E401Y

    I configured 2 ADCBuf using Sysconfig.

    The second call to ADCBuf_open always returns a NULL handle regardless of which ADCBuf is opened first.

    I found another E2E issue mentioning the timers.  The second call fails whether they are both configured for the same timer or for different timers.

    Any progress on this issue?

  • I did get them both to work if they use the same timer and the same samplingFrequency for both ADCBufs.

    I was trying to use different samplingFrequencies.

    Should this be possible?

  • Barry,

    The SysConfig tool is an evolution of the PinMux tool. If working with an SDK, It includes additional software configuration (TI drivers, connectivity stacks) and code generation capabilities. The starting point for SDK users is to start from an example project and click on the included .syscfg script to launch SysConfig. If you are doing bare metal development (which I assume you are) you can choose "None" from the "Software Products" drop down and get the exact same functionality as in the PinMux tool. Note that as SysConfig includes the core PinMux tool functionality the PinMux Tool will be deprecated in favor of SysConfig in the next quarter. To provide a seamless migration experience Legacy .pinmux design files will still be supported in SysConfig.

    Regards,

    Mandeep

  • Thank you for the explanation.  It seems with the PinMux tool you could assign timer CCP pins, but with SysConfig, you cannot.

    What is the preferred method now to assign timer CCP pins using the newer SysConfig methodology?

  • Barry,

    Currently, there is no way to achieve that using the SysConfig user interface.

    Could you briefly explain what you're trying to achieve in your project? Do you intend to use any of the software libraries provided with the SDK in '/source/ti/'?

    Thanks,
    Derrick

  • Thank you for the response Derrick.

    One of the many functions we are implementing in this design are PWM outputs using the integrated timer peripherals in PWM mode.  (We already use the PWM peripheral outputs for another function.)  To get these timer signals off the chip, we need to configure the pins as timer CCP outputs.

    So far for this design we used SysConfig and the SimpleLink libraries in /source/ti/ to set up all the other peripherals and pins: GPIO, I2C, ADC, Buttons, and LEDs.  FYI the project is also TI-RTOS/CCS based.

    We tried to choose the most supported path.  Have we reached a dead end?

  • Barry,

    We currently do not support the Timer peripheral in PWM mode via the software provided in 'source/ti/drivers'.

    However, you are able to make use of software provided in 'source/ti/devices' to configure the Timer peripheral. If you choose to go this route:

    1. You'd be responsible for fully configuring the Timer peripheral and performing the pin configuration settings.
    2. You'd be responsible for ensuring safe RTOS practices
      1. Using an RTOS aware interrupt service routine using the TI-RTOS (SYS/BIOS) Hardware Interrupt (Hwi) Module
      2. Ensuring your code is thread safe
        1. This may entail disabling/enabling interrupts through the Hwi Module
        2. Use Mutexes, Semaphores...etc

    If you need pinout.c, there is a method to follow to generate that source. I will refer that to Mandeep.

    Regards,
    Derrick

  • Disappointing.

    The hardware features are all clearly detailed in the device documentation.

    Is there any cross reference list indicating which of these features are supported by SimpleLink / SysConfig?  

    I suspect I will find more.  It is painful to discover missing features deep into the design process.

  • Barry,

    All hardware features are supported by software in 'ti/devices'. There is no additional configuration needed to configure such software--therefore, there is no SysConfig user interface content to configure it.

    Best,
    Derrick

  • Sorry, I do not understand "there is no additional configuration needed".  Maybe I am missing something.  

    I still have to configure the Timer CCP pins, and if SysConfig can not configure all the pins it really isn't much use.  

    PinMux could configure the Timer CCP pins, so SysConfig seems a step backward in this respect.

  • Barry,

    The 'ti/devices' software is not configurable--however, the software exist such that you can take full advantage of it.

    The previous PinMux tool did generate a function which performed the 'mux' for the peripheral pins. That function in particular used APIs available in 'ti/devices'.

    As I mentioned before, there is a workaround such that you can still generate that function (into pinout.c). I have reached out to Mandeep who may assist you with that.

    Regards,
    Derrick

  • Barry,

    I am not sure how familiar you are with the SDK. But, for context the SDK includes TI Drivers (located at <sdk_root>/source/ti/drivers) APIs, which are built on top of low level TI Devices/DriverLib APIs (located at <sdk_root>/source/ti/drivers).  Unfortunately, out of the box the SDK only ships with TI Drivers examples and when you start SysConfig by clicking the .syscfg file in the example it only has support for configuring TI Drivers. You are running into a case where TI Drivers does not provide the necessary functionality you need and thus would need to implement custom code against the low level TI Devices APIs yourself. For this scenario you should be able to do the following. 

    1. Start SysConfig from an example by clicking .syscfg file

     - Configure TI-Drivers

     - The drivers will expose pin mux configuration options for pins they manage.

    2. Reserve any peripherals used outside of TI-Drivers by clicking on the "Reservation" tab. This will ensure these peripherals/pins are accounted for when validating/assigning pins managed by TI-Drivers

     

    3. Generate low level (TI Devices/DriverLib) code to set up the pin mux configuration code for non TI-Drivers managed peripherals.

      * Go to dev.ti.com, click on the SysConfig

      *  Select your device (Do not select a product). This will start SysConfig in PinMux mode.

      *  Add and configure only the peripherals you wish to write custom code for

      *  Manually copy the generated pinout.c/h into your example project

    I understand this flow is not ideal. I am going to try to get improvements to this prioritized for future releases of the SDK/SysConfig.