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.

TMDS243EVM: Can't find MMC1.SDWP when configuring MMC using SysConfig tool

Part Number: TMDS243EVM
Other Parts Discussed in Thread: SYSCONFIG, AM2432

Tool/software:

Can't find MMC1.SDWP when configuring MMC using SysConfig tool, but there is MMC1.CLKLB.

Another question, why can't "Preferred Voltage"  be configured?  

  • Which version of SysConfig are you using?

    I checked the online version (1.23.0+4000) at https://dev.ti.com) and see the following pins  for ALV.  The ALX package has the same signals. 

    You can enable the preferred voltage by adding the voltage domains via the "Device Settings" tab - battery symbol at top left.. then clicking the "ADD' button. You can then select the voltages for each domain  

    --Paul

  • Thanks Paul!

    I got it from Reserve Peripherals->MMC0/1, why is it different with Software-> MMCSD? When to use Software and when to use Reserve Peripherals

  • OK, sounds like you are using the MCU SDK option.  I'll ask the the correct support contact to comment. 

    --Paul 

  • Hi,

    I got it from Reserve Peripherals->MMC0/1, why is it different with Software-> MMCSD? When to use Software and when to use Reserve Peripherals

    The Reserved Peripherals tab is used to reserve any particular hardware resource that your own custom code will handle, and it tells the sysconfig tool not to use that peripheral. The Sysconfig tool will not generated any code for the peripherals configured under Reserved Peripheral. This tab should not be used for any peripherals that you want to be configured by the tool.

    Regards,

    Tushar

  • Hi Paul, why doesn't my local SysConfig tool have "Device Settings" option.

  • Hi,

    Device setting option is available with the pinmux tool and is not available if any software product is selected.

    Leave the software product empty as shown below. Select the device and start the tool.

    Regards,

    Tushar

  • Thanks Tushar! I'm a little confused, if I design a new board and want to use the INDUSTRIAL COM SDK, can I still use SysConfig tool and how do I get started? How to generate my own bsp?

  • Hi,

    If you want to generate the pinmux file for all the pin configuration then use the pinmux tool as shown above.

    The above will generate pinmux config files. Please refer below image.

    For SDK, with every example there is an example.syscfg file which you can modify according to the usecase.

    Please refer SYSCONFIG_INTRO for details.

    Regards,

    Tushar

  • Thanks Tushar! I used the pinmux tool to generate  pinmux files, then how can I combine these files with INDUSTRIAL COMM SDK to generate my bsp?

  • Hi,

    how can I combine these files with INDUSTRIAL COMM SDK to generate my bsp?

    Please refer SYSCONFIG_INTRO guide to know how to use sysconfig with SDK.

    Regards,

    Tushar 

  • Hi Tushar,

    We designed a new board based on AM2432 device. If choose a specific "Software Product: INDUSTRIAL COMM SDK", some item can't be found in Software-> MMCSD, just like before  "MMC1.SDWP". Though I can find it in Reserve Peripherals->MMC0/1,  the Sysconfig tool will not generated any code for the peripherals configured. In this case, how should I do?

  • Hi,

    In this case, how should I do?

    All you need is to copy all the structure data with type pinmuxPerCfg_t from device_package_pinmux_data.c file generated via Sysconfig in your application code.

    Change the structure pinmuxPerCfg_t to Pinmux_PerCfg_t. Create your own function to do pinmux init. Make sure your pinmux config do not overwrite the pinmux setting configured for the application project.

    Please refer below code. The below is just sample code and is not tested for funtionality.

    /*
     *  Copyright (C) 2018-2021 Texas Instruments Incorporated
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    #include <stdlib.h>
    #include <kernel/dpl/DebugP.h>
    #include "ti_drivers_config.h"
    #include "ti_board_config.h"
    #include "FreeRTOS.h"
    #include "task.h"
    
    #define MAIN_TASK_PRI  (configMAX_PRIORITIES-1)
    
    #define MAIN_TASK_SIZE (16384U/sizeof(configSTACK_DEPTH_TYPE))
    StackType_t gMainTaskStack[MAIN_TASK_SIZE] __attribute__((aligned(32)));
    
    StaticTask_t gMainTaskObj;
    TaskHandle_t gMainTask;
    
    void hello_world_main(void *args);
    
    void freertos_main(void *args)
    {
        hello_world_main(NULL);
    
        vTaskDelete(NULL);
    }
    
    
    #include <drivers/pinmux.h>
    
    static Pinmux_PerCfg_t gMcu_uart0PinCfg[] =
    {
        /* MyMCU_UART1 -> MCU_UART0_CTSn -> D8 */
        {
            PIN_MCU_UART0_CTSN, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyMCU_UART1 -> MCU_UART0_RTSn -> E8 */
        {
            PIN_MCU_UART0_RTSN, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        /* MyMCU_UART1 -> MCU_UART0_RXD -> A9 */
        {
            PIN_MCU_UART0_RXD, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyMCU_UART1 -> MCU_UART0_TXD -> A8 */
        {
            PIN_MCU_UART0_TXD, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        {PINMUX_END}
    };
    
    static Pinmux_PerCfg_t gOspi0PinCfg[] =
    {
        /* MyOSPI1 -> OSPI0_CLK -> N20 */
        {
            PIN_OSPI0_CLK, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        /* MyOSPI1 -> OSPI0_CSn0 -> L19 */
        {
            PIN_OSPI0_CSN0, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        /* MyOSPI1 -> OSPI0_CSn1 -> L18 */
        {
            PIN_OSPI0_CSN1, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        /* MyOSPI1 -> OSPI0_CSn2 -> K17 */
        {
            PIN_OSPI0_CSN2, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        /* MyOSPI1 -> OSPI0_CSn3 -> L17 */
        {
            PIN_OSPI0_CSN3, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE) & (~PIN_PULL_DIRECTION & ~PIN_INPUT_ENABLE))
        },
        /* MyOSPI1 -> OSPI0_D0 -> M19 */
        {
            PIN_OSPI0_D0, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D1 -> M18 */
        {
            PIN_OSPI0_D1, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D2 -> M20 */
        {
            PIN_OSPI0_D2, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D3 -> M21 */
        {
            PIN_OSPI0_D3, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D4 -> P21 */
        {
            PIN_OSPI0_D4, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D5 -> P20 */
        {
            PIN_OSPI0_D5, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D6 -> N18 */
        {
            PIN_OSPI0_D6, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_D7 -> M17 */
        {
            PIN_OSPI0_D7, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        /* MyOSPI1 -> OSPI0_DQS -> N19 */
        {
            PIN_OSPI0_DQS, PIN_MODE(0) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
        },
        {PINMUX_END}
    };
    
    
    void MyPinmuxInit()
    {
        Pinmux_config(gOspi0PinCfg, PINMUX_DOMAIN_ID_MAIN);
        Pinmux_config(gMcu_uart0PinCfg, PINMUX_DOMAIN_ID_MCU);
    }
    
    int main(void)
    {
        /* init SOC specific modules */
        System_init();
    
        MyPinmuxInit();
    
        Board_init();
    
        /* This task is created at highest priority, it should create more tasks and then delete itself */
        gMainTask = xTaskCreateStatic( freertos_main,   /* Pointer to the function that implements the task. */
                                      "freertos_main", /* Text name for the task.  This is to facilitate debugging only. */
                                      MAIN_TASK_SIZE,  /* Stack depth in units of StackType_t typically uint32_t on 32b CPUs */
                                      NULL,            /* We are not using the task parameter. */
                                      MAIN_TASK_PRI,   /* task priority, 0 is lowest priority, configMAX_PRIORITIES-1 is highest */
                                      gMainTaskStack,  /* pointer to stack base */
                                      &gMainTaskObj ); /* pointer to statically allocated task object memory */
        configASSERT(gMainTask != NULL);
    
        /* Start the scheduler to start the tasks executing. */
        vTaskStartScheduler();
    
        /* The following line should never be reached because vTaskStartScheduler()
        will only return if there was not enough FreeRTOS heap memory available to
        create the Idle and (if configured) Timer tasks.  Heap management, and
        techniques for trapping heap exhaustion, are described in the book text. */
        DebugP_assertNoLog(0);
    
        return 0;
    }
    

    Hope the above information helps.

    Regards,

    Tushar

  • Thanks Tushar!

    If I got a new board, the first step is to generate AM243x_ALV_pinmux_data.c and AM243x_ALV_pinmux.h with pinmux tool, the second step is to generated files with SysConfig->Software, is that right? Do they match up properly?

  • Hi,

    The above files generated from pinmux tool will only do the pin muxing for functionality of the configured pins. The required pinmux setting is already done for the SOC in the example.syscfg file of the example project. Also the code generated from example.syscfg file configure drivers for the selected peripherals which Pinmux tool will not do.

    If I got a new board, the first step is to generate AM243x_ALV_pinmux_data.c and AM243x_ALV_pinmux.h with pinmux tool

    This pinmux data generated via Pinmux tool is not directly consumable by the application. As I specified in my earlier reply, you will need to change few things to integrate the changes. 

    Also please make sure the peripherals/modules configured inside example.syscfg should not be configured again via the Pinmux tool.

    Regards,

    Tushar

  • thanks Tushar!

    Is there any instructions or manual on how to create my own bsp for a new board?

  • Hi

    Is there any instructions or manual on how to create my own bsp for a new board?

    By bsp, do you mean pinmux configuration for the SoC?

    Regards,

    Tushar

  • No, I mean we designed a board ourselves, but the PIN configuration of the board cannot be done in SysConfig->Software, we have to use the pinmax tool to do it, in this case, whether SysConfig->Software is still applicable to the new board.

  • Hi,

    In you custom board also, At the end you will be running some application on specific core. For the application development, you will be using SDK where the drivers are already written and sample application is also provided. The necessary configuration is already done in the example.sysfg file for example to run.

    You don't need to use the Pinmux tool to configure extra pin configuration. Apologies but I am still not clear with your usecase why you want to configures pin that are available via Sysconfig -> Software.

    Please refer EXAMPLES_DRIVERS to check what config is required for which driver.

    Regards,

    Tushar

  • Some configuration options can't be found in SysConfig->Software, eg MMC->MMC1.SDWP, SOC_SPI->SPI0_CS1, SOC_SPI->SPI1_CS1, UART->UART0_RTS, UART->UART1_RTS and so on.

  • Hi 

    The pins which are not present via Sysconfig are either not supported or not needed. Please refer TRM & Datasheet for details.

     SOC_SPI->SPI0_CS1, SOC_SPI->SPI1_CS1

    This pins are available under Chip select section for McSPI. 

    If you still want to configure this pins, please refer method suggested here

    Regards,

    Tushar

  • Thanks Tushar! options in red box can't be found in SysConfig->Software.

  • Hi,

    You can use the Pinmux tool to configure such pins as described in earlier replies.

    Regards,

    Tushar